howtoТотальный переход с ext3/ntfs на ext4.

Ext4 ImageПосле недавнего обновления ubuntu до версии 9.04 мне захотелось окончательно избавиться от windows-атавизмов, таких как 2 ntsf раздела, и заодно полностью перевести ubuntu на ext4. Всё это вылилось в небольшое howto, которое я вам и предлагаю

Для начала займёмся разделами, содержащими / и /home.
Задача: перевести разделы с ext3 на ext4.

Как известно, ext4 имеет обратную совместимость с ext3, но если просто примонтировать ext3 раздел, как ext4, то уже имеющиеся на разделе файлы, не будут использовать новые вкусности ext4 такие, как экстенты и т.п.
Решение: скопировать содержимое / и /home на другой раздел, отформатировать разделы в ext4, перенести всё обратно, поправить fstab и grub.

  • Загружаемся с live-cd, который поддерживает ext4(ubuntu 9.04, gparted live-cd и т.п.).

  • Заходим под рутом.
    sudo su

  • Монтируем наши разделы:
    / в /mnt/oldroot
    /home в /mnt/oldhome
    третий раздел, на который будем временно переписывать данные в /mnt/disk

  • Делаем бекап / и /home
    tar -ca /mnt/oldroot -v -f /mnt/disk/root.tar.gz
    tar -ca /mnt/oldhome -v -f /mnt/disk/home.tar.gz

  • При помощи gparted создаём на месте бывших разделов / и /home новые, но уже ext4.

  • Монтируем их в обратно /mnt/oldroot и /mnt/oldhome соответственно.

  • Распаковываем наши архивы обратно.
    tar -xvzf /mnt/disk/root.tar.gz -p
    tar -xvzf /mnt/disk/home.tar.gz -p

  • Изменяем fstab.
    gedit /mnt/oldroot/etc/fstab

    Изменяем файловые системы с ext3 на ext4.

  • Затем обновим grub для правильной загрузки, если нумерация разделов была изменена.
    update-grub

    (работает только в ubuntu)

  • Вынимаем live-cd, перезагружаемся.



Теперь займёмся нашими ntfs разделами.
Задача: перевести разделы с ntfs на ext4.
Наши действия: временно перенести все данные куда либо и отформатировать разделы в ext4. Но тут может быть два варианта развития событий, с обоими мне пришлось столкнуться:
1)Данных немного, есть куда их перенести полностью.
2)Все данные перенести некуда, но есть свободное место на этом разделе.

Первый вариант обсуждать смысла нету — здесь всё просто. Копируете данные, старый раздел удаляете, создаёте новый, переносите данные обратно.

Второй вариант несколько замороченней, занимает уйму времени, но работает. Если никак нельзя от второго варианта перейти к первому, то указания к действиям такие:
  • Освобождаем максимум свободного места на нашем ntfs разделе, копируем максимум того, что влезает на остальные разделы, флешки.

  • Тщательно дефрагментируем наш ntfs раздел, для этого я использовал имевшуюся в наличии windows xp. (картинки кликабельны)
    Image
  • Затем используя gparted отрезаем кусок свободного места от ntfs раздела.
    Image
  • На получившемся свободном месте создаём новый раздел ext4.
    Image
  • Копируем с нашего ntfs раздела данные на свежеразмеченный ext4.

  • Опять дефагментируем, опять отрезаем освободившееся место.
    Image
  • Ресайзим Ext4.
    Image
  • Повторяем пункты до тех пор, пока ntfs раздел не исчезнет. Таким образом наш ntfs раздел плавно и неторопливо перетек в ext4.
    Image
  • Затем копируем на ext4 всё то, что удалось распихать по другим разделам с самого начала.

  • Радуемся полному переходу на ext4.



Было написано для Ubuntu 9.04, но так же можно использовать для любого дистрибутива linux(для других файловых систем), главное убедиться, что ваше ядро поддерживает ext4. Ну и наконец: всё делаете на свой страх и риск.

p.s. прокомментируйте пожалуйста целесообразность описанного метода миграции с ntfs на ext4, т.к. хотелось получить на уже имеющихся файлах такие фичи, как экстенты, поэтому не хотелось прибегать к помощи конвертеров.
_________
Текст подготовлен в ХабраРедакторе

Комментарии (8)

Не особо вкурил способ с дефрагментацией диска %)
насколько я помню не так давно линус указал на некоторые критические недоработки в ext4. так что я думаю, пока рановато переходить на новую фс.
У меня уже как 2 месяца полёт нормальный.
я не говорю что переходить не надо. просто когда-нибудь эти недоработки покажут себя. поэтому моё мнение что ещё немного надо подождать. а вообще хорошо быть на переднем крае новых разработок.
Переносил данные с ntfs 1.5TB винта на такой-же ext4 — не поместилось около 50GB :(
Получается что ext3/ext4 теряют сколько-то полезного места на диске?
Попробовал отформатировать одинаковые 1TB диски: в xfs и ntfs остается примерно 931MB, а ext4 только 916MB, а при заполнении файлами — на ext свободное место уменьшается быстрее чем на ntfs/xfs.
Хочешь угадаю — у тебя там полно мелких файлов?
мелких (до 1МБ) не более 2000, все остальные крупнее 7МБ, в основном 170-400МБ файлы
У ext4 проблемы с фрагментацией. На ланчпаде по этому поводу даже бага лежит. А дефрагментаторов-то не ма!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.