Я пробую btrfs. Я сделал несколько ошибок, которые хороши для обучения!
Я создал несколько файловых систем btrfs на разных устройствах (sdX, loop, lvm и т. д.). Во время этих тестов я удалил (внезапно) некоторые или все устройства, которые были частью файловой системы btrfs (fs были размонтированы в первую очередь).
Но теперь команда btrfs show
все еще показывает UUID файловых систем и список устройств. Я понимаю, что мне следовало сделать btfrs device del
ДО удаления устройств...
Но где btrfs хранит список обрабатываемых файловых систем? Есть ли где-то файл conf? Специальная команда в btrfs-tools?
Я не получил исчерпывающего ответа, читая вики и туториалы... Говорят, что мы можем восстановить мертвую файловую систему и смонтировать ее, mount -o recovery /dev/yourBTFSvolume /mount/point
но это подразумевает, что метаданные/данные и связанные с ними устройства все еще существуют, что в данном случае не так.
Здесь я не пытаюсь восстановить данные, я просто хочу очистить управление btrfs.
решение1
Я покопался в коде, чтобы увидеть, что происходит. Когда btrfs filesystem show
команда используется для отображения всех файловых систем на всех устройствах, она сканирует каждое устройство и раздел в /proc/partitions
. Каждое устройство и каждый раздел проверяются на предмет наличия «магического числа» BTRFS и связанной с ним допустимой корневой структуры данных, найденной по смещению 0x10040 от начала устройства или раздела.
Затем я использовал hexedit на диске, который неправильно отображался в моей ситуации, и, конечно же, там было магическое число BTRFS (которое является строкой ASCII _BHRfS_M
) из моих предыдущих экспериментов.
Я просто набрал это магическое число, перезаписав пару символов строки на «**», также используя hexedit, и неправильные записи волшебным образом исчезли!