Учитывая ваше точное описание, нет, это невозможно, потому что вы также потеряете часть дерева метаданных (и, если вам действительно не повезет, вы потеряете дерево фрагментов (Системные фрагменты в btrfs fi df
вывод ), что эквивалентно очистке суперблоков и части таблиц инодов в файловой системе ext4 ). Эти отсутствующие метаданные являются частью того, почему вы были вынуждены монтировать только для чтения -.
По умолчанию BTRFS использует режим dup
для метаданных. Это означает, что он хранит 2 копии каждого блока метаданных, но обе хранятся на одном устройстве (, даже если у вас более одного устройства ). В результате этого, если вы потеряете одно устройство из тома BTRFS с несколькими -устройствами, использующего этот профиль метаданных, вы, вероятно, ()потеряете часть своих метаданных. Если дерево метаданных настолько повреждено, у вас, вероятно, будут отсутствовать большие части файловой системы, а также, вероятно, вы вообще не сможете смонтировать файловую систему.
Вам нужно будет использовать режим raid1
для метаданных. Серьезно, это не так сильно влияет на производительность, как вы думаете, особенно если вы не выполняете регулярную запись в файловую систему.и это предотвратит отказ одного устройства от уничтожения всей файловой системы.
При этом в случае отказа устройства:
mount -o remount,rw,degraded
, чтобы сделать файловую систему снова доступной для записи. НЕ ОСТАВЛЯЙТЕ ФАЙЛОВУЮ СИСТЕМУ РАБОТАТЬ ТАК, ЕСЛИ ВЫ НЕ ИСПРАВЛЯЕТЕ ЭТО! Серьезно, очень плохие вещи могут случиться, если вы оставите файловую систему деградированной, но доступной для записи. btrfs device delete
для удаления неисправного устройства (, если устройство полностью отсутствует, вы можете использовать btrfs device delete missing
, чтобы избавиться от него ). Использование btrfs replace
в этом сценарии, вероятно, приведет к сбою и не улучшит производительность. Использование btrfs device delete
также устраняет требование, чтобы новое устройство было не меньше старого (и, таким образом, облегчает вашу жизнь, поскольку вы не имеете дело с устройствами одинакового размера ). btrfs device add
для добавления заменяющего устройства, а затем btrfs balance start -musage=100
для повторной балансировки фрагментов метаданных (фрагменты данных будут естественным образом перебалансироваться при копировании потерянных файлов в ). rsync
или аналогичный инструмент, чтобы скопировать отсутствующие элементы. Обновление :проблема заключалась в брандмауэре маршрутизатора. Даже при низкой безопасности он блокировал входящий трафик. Похоже на зияющую уязвимость для брандмауэра, который требует больше времени для запуска, чем маршрутизатор @xfinity (, поэтому я смог использовать ssh только в течение нескольких минут после запуска ). Ок, спасибо всем!