Как конвертировать ext2 в ext4?
Я установил Ubuntu 12.10, и я не знаю почему, у меня есть раздел ext2.
- Как я могу конвертировать это
ext2
файловая система кext4
? - Я потеряю все свои данные?
4 ответа
Следуйте инструкциям, приведенным в этом сообщении: конвертировать ext2/3 в ext4
Многое изменилось в ext4 с тех пор, как была написана статья, на которую есть ссылка в принятом ответе. Теперь можно включить гораздо больше функций ext4. Чтобы преобразовать файловую систему ext2 в полнофункциональную ext4 (на момент написания этой статьи), выполните команду:
tune2fs -O extents,uninit_bg,dir_index,has_journal,flex_bg,huge_file,extra_isize,dir_nlink,uninit_bg /dev/EXT2DEVICE
На самом деле больше нет набора «ext2», «ext3» или «ext4». Есть целый спектр возможностей. Чтобы просмотреть функции, включенные для вашей файловой системы extX, используйте команду:
dumpe2fs -h /dev/DEVICE
Основной набор функций для ext2: ext_attr,resize_inode,filetype,sparse_super,large_file. Как правило, ext3 считается ext2 плюс журнал. А ext4 — это, по сути, ext3 плюс любая комбинация остальных доступных функций. В будущем ее могут назвать ext5, 6 или 7. На самом деле это все одно семейство файловых систем с переменным набором функций.
Чтобы узнать, каков самый последний набор функций extWHATEVER на момент прочтения этой статьи, лучшее, что вы можете сделать, это просто создать небольшую файловую систему и просмотреть список ее функций. Для ext4 это:
dd if=/dev/zero of=ext4test bs=1M count=256
mkfs.ext4 ext4test
dumpe2fs -h ext4test
Посмотрите на строку с надписью «Функции файловой системы:», и она расскажет вам, какие функции были включены в эту файловую систему. На момент написания статьи это:
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Как только вы это сделаете, вы сможете создать свой собственный метод обновления extX до extLATEST. Сделайте dumpe2fs в файловой системе, которую вы хотите обновить, и сравните ее функции с функциями вашей тестовой файловой системы ext. Для некоторых или всех функций, отсутствующих в старой файловой системе, вы:
tune2fs -O <comma-delimited list of missing features>
Как только вы закончите добавлять функции, принудительно проверьте файловую систему с помощью:
e2fsck -f /dev/DEVICE
И вы только что убедились, что ваш extX стал ПОСЛЕДНИМ ext со всеми доступными функциями.
Краткая версия для нетерпеливых:
dev=/dev/sdXn # <-- Adjust this
затем
umount $dev && tune2fs -O extents,uninit_bg,dir_index,has_journal $dev && e2fsck -v -pf $dev
Если вы не можете размонтировать, потому что это ваш системный раздел, то, конечно, вам сначала нужно будет загрузиться с другой системы, например с Live CD.
И нет, вы не потеряете данные. Если не произойдет что-то очень странное, в этом случае вам придется обратиться к резервной копии. (Конечно, у вас есть резервные копии. Верно?)
- Переформатировать диск
- да
В качестве альтернативы, вы можете включить некоторые функции ext4, выполнив следующую команду и перезагрузившись:
sudo tune2fs -O has_journal,uninit_bg,extents /dev/sda1