Если вы некоторое время пользовались ZFS, а затем решили от неё отказаться, то эта заметка для вас.
Когда я первый раз строил NAS, то наслушавшись советчиков выбрал файловую систему ZFS и сделал рейд из 3х дисков. Спустя некоторое время у меня появилась возможность увеличить вместимость NAS путём замены дисков на более ёмкие. И тогда, уже некоторое время попользовавшись ZFS и составив о ней своё мнение, я решил что, а) на моём железt ZFS ворочается довольно медленно и б) она для меня избыточна.
Поизгалявшись с перегоном данных на свободные носители переразбил диски под ext4, настроил RAID1 на паре из них и один оставил как файлопомойку.
Прошло много времени, диск с файлопомойкой был заменён на другой более ёмкий и продолжал использоваться, а ещё спустя некоторое время решил заменить диски в RAID1 и переделать структуру дисковой системы отказавшись от зеркалирования в пользу бэкапа данных на разные носители. Одновременно решил обновить используемую версию openmediavault, а поскольку за несколько лет издевательств над системой в ней накопились ошибки решил поставить и настроить новую версию с нуля, а не заниматься выискиванием ошибок мешающих обновлению и их устранением. После обновления системы планировалось сделать копию данных с RAID1 на новые диски и настроить rsync для важных данных.
В идеале после обновления openmediavault должен был увидеть существующий RAID, останется только смонтировать файловую систему и заниматься переносом данных, но не тут то было… Openmediavault увидел RAID, но в упор не видел на нём файловой системы. Ещё одна причина делать бэкапы перед внесением изменений в работающую систему.
Путём долгих поисков проблемы я стал замечать сообщения на форумах типа «А небыло ли у вас до этого на дисках ZFS?». Покопавшись в интернете выяснил, что даже после удаления разделов и создания новых, форматирования, на диске могут остаться следы ZFS (не все йогурты утилиты разметки дисков одинаково полезны).
Затем наткнулся на сообщение от ananas на форуме openmediavault и решил проверить свои диски по описанной методике. Для этого коннектимся к серверу по SSH под root’ом и далее выполняем следующие команды
- Если у вас диски не в RAID blkid — отобразит ваши диски с их UUID типами FS и прочее. Но эта команда не показывает md raid.
- По этому если у вас есть диски в RAID выполняем lsblk — отобразит все диски, их размер, точку монтирования и т.д.
- Смотрим номер после md (у меня это md127) и выполняем следующую команду wipefs -n /dev/md127. Если делаете процедуру для отдельных дисков, то wipefs -n /dev/sdX где X буква диска к которому применяется операция.
- на выходе получим примерно следующее Видим что присутствуют заголовок ZFS и нам нужно избавится от него оставив ext4 с нашими данными. В дальнейшем нам понадобится значение offset (у вас оно будет отличатся, по этому команду ниже перестраиваем под себя)offset type
—————————————————————-
0x82fcbbefc00 zfs_member [filesystem] LABEL: pool1 UUID: 17414797601597129307
0x438 ext4 [filesystem] LABEL: data1 UUID: 870cef82-b75f-4c78-a111-213389d87c3f
- Для очистки ZFS мусора вбиваем команду wipefs -b -o 0x82fcbbefc00 -t noext4 /dev/md127 не забыв поменять 0x82fcbbefc00 на своё значение, так же меняем md127 на свой диск если проводим операцию не над массивом.
- Повторяем пункты 3-5 пока не увидим что следов ZFS больше нет
offset type
—————————————————————-
0x200 gpt [partition table] - Идём в «Хранилище — Файловые системы» и проверяем, должна появится наша потерянная файловая система.
Может понадобится довольно большое количество повторений пунктов 3-5, у меня для двух дисков это было порядка 70 правок.
