util: document recommended filesystems

In particular, recommend against using exFAT on MacOS as this is known
to cause breakages.

See #31454 for more context.
This commit is contained in:
willcl-ark 2024-12-10 14:27:20 +00:00
parent 83839a35f0
commit ee05e73046
2 changed files with 12 additions and 1 deletions

View file

@ -16,6 +16,8 @@
- [Legacy subdirectories and files](#legacy-subdirectories-and-files)
- [Filesystem recommendations](#filesystem-recommendations)
- [Notes](#notes)
## Data directory location
@ -123,6 +125,12 @@ Path | Description | Repository notes
`addr.dat` | Peer IP address BDB database; replaced by `peers.dat` in [0.7.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.7.0.md) | [PR #1198](https://github.com/bitcoin/bitcoin/pull/1198), [`928d3a01`](https://github.com/bitcoin/bitcoin/commit/928d3a011cc66c7f907c4d053f674ea77dc611cc)
`onion_private_key` | Cached Tor onion service private key for `-listenonion` option. Was used for Tor v2 services; replaced by `onion_v3_private_key` in [0.21.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.21.0.md) | [PR #19954](https://github.com/bitcoin/bitcoin/pull/19954)
## Filesystem recommendations
When choosing a filesystem for the data directory (`datadir`) or blocks directory (`blocksdir`), some filesystems should be avoided:
- **MacOS**: The exFAT filesystem should not be used. There have been multiple reports of database corruption when using exFAT on MacOS for Bitcoin Core. This appears to be due to filesystem-level issues with exFAT on MacOS. See [Issue #31454](https://github.com/bitcoin/bitcoin/issues/31454) for more details.
## Notes
<a name="note1">1</a>. The `/` (slash, U+002F) is used as the platform-independent path component separator in this document.

View file

@ -79,7 +79,10 @@ std::optional<ConfigError> InitConfig(ArgsManager& args, SettingsAbortFn setting
FSType fs_type = GetFilesystemType(check.path);
switch(fs_type) {
case FSType::EXFAT:
InitWarning(strprintf(_("Specified %s \"%s\" is exFAT which is known to have intermittent corruption problems on MacOS."), check.description, fs::PathToString(check.path)));
InitWarning(strprintf(_("Specified %s \"%s\" is exFAT which is known to have intermittent corruption problems on MacOS. "
"See https://github.com/bitcoin/bitcoin/blob/master/doc/files.md#filesystem-recommendations for more information."),
check.description,
fs::PathToString(check.path)));
break;
case FSType::ERROR:
LogInfo("Failed to detect filesystem type of %s: %s\n", check.description, fs::PathToString(check.path));