Как конвертировать 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
Другие вопросы по тегам