Конвертирование Reiserfs в Ext4

Всети множество информации, как конвертировать без форматирования ext3 до ext4, к примеру здесь. Но у меня сложилась иная ситуация, использую на винте размером в 500 гигов reiserfs — меня вполне удовлетворяла, однако новшества ext4 очень и очень стали для меня соблазнительны. Проблема осложнялась тем, что винт забит на две трети, забекапить всё и тупо форматнуть винт не было возможности.

Поэтому пришлось достичь желанного в два подхода, первое конвертировать reiserfs в ext3, второе, как выше указано, из ext3 в ext4.

Для начала необходимо установить пакеты anyfs и anyfs-tools. Далее отмонтируем необходимый для конвертирования раздел, для примера будет использоваться /dev/sdb1. Далее запускаем первый пункт конвертирования, т.е. из reiserfs в ext3:

sudo anyconvertfs —dontstop /dev/sdb1 ext3

ключ —dontstop не даёт программе делать паузы между этапами конвертирования, которые предусмотрены для контроля со стороны пользователя и для возможности отмены конвертирования, но следует учитывать, что процесс будет долгим в зависимости от размера конвертируемого диска и мощности системы, у меня на указанном винте заняло около 9 часов. До указанной команды могу предложить запустить программу с ключом —dry, чтобы узнать о возможности конвертирования, и на каком этапе произойдут необратимые изменения в исходной файловой системе, т.е. после чего процесс ни в коем случае прерывать нельзя. Подобной командой можно сконвертировать не только из reiserfs, ext2/3/4 и др., а также из ntfs, только нужно аналогично примеру указать исходную ntfs-3g перед конечной ext3 или той, что вам нужно.

Далее, когда процесс конвертирования будет закончен, делаем следующее, чтобы полученную ext3 сделать ext4:

sudo tune2fs -O extents,uninit_bg,dir_index /dev/sdb1

необходимо проверить фс на ошибки, следующая команда автоматически исправит те ошибки, что возможно сделать без вмешательства пользователя:

sudo e2fsck -fpD /dev/sdb1

и по необходимости, в случае, если последняя проверка сообщила о неисправимой автоматически ошибке, проверим и исправим самостоятельно:

sudo e2fsck -fD /dev/sdb1

Все, далее монтируете фс как ext4 и пользуетесь, не забудьте подправить строку в /etc/fstab.

UPD: некоторые дополнительные замечания:
для тех, кто пользуется не Arch Linux и не может найти (собрать) пакет под свой дистрибутив, предлагаю следующее решение:
скачать образ ArchIso — это богатый на инструментарий и широту применения livecd, как видно из названия, собран на основе Arch Linux. Записать образ, загрузиться. Логин/пароль: arch/arch

Замечу, что archiso монтирует все диски автоматом в /mnt, поэтому перед конвертированием, убедитесь, что конвертируемые диски отмонтированы.
Далее установить пакты anyfs и anyfs-tools командой sudo pacman -U имя_пакетов, последнюю версию пакетов anyfs и anyfs-tools можно скачать здесь.
И далее по инструкции с самого начала.

Добавлю, что если вы конвертируете и корень файловой системы, то обязательно нужно править не только /etc/fstab на диске к примеру /dev/sda1, но и /boot/grub/menu.lst, где параметр root= установить в значение соответственно /dev/sda1 или прописать новый uuid, и также установить следующий параметр rootfstype=ext4

Плюс рекомендовал бы, если конвертировался загрузочный раздел, заново перенастроить grub, т.е. запускаем grub:
далее: find /boot/grub/stage1
в ответ получим типа: (hd0,0)
далее:

parttype (hd0,0) 0x83
root (hd0,0)
setup (hd0)
quit


и всё…

Добавить комментарий

Войти с помощью: