Linux btrfs как удалить несуществующую файловую систему из списка?

Linux btrfs как удалить несуществующую файловую систему из списка?

Я пробую 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, и неправильные записи волшебным образом исчезли!

Связанный контент