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

Для начала займёмся разделами, содержащими / и /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. (картинки кликабельны)
- Затем используя gparted отрезаем кусок свободного места от ntfs раздела.
- На получившемся свободном месте создаём новый раздел ext4.
- Копируем с нашего ntfs раздела данные на свежеразмеченный ext4.
- Опять дефагментируем, опять отрезаем освободившееся место.
- Ресайзим Ext4.
- Повторяем пункты до тех пор, пока ntfs раздел не исчезнет. Таким образом наш ntfs раздел плавно и неторопливо перетек в ext4.
- Затем копируем на ext4 всё то, что удалось распихать по другим разделам с самого начала.
- Радуемся полному переходу на ext4.
Было написано для Ubuntu 9.04, но так же можно использовать для любого дистрибутива linux(для других файловых систем), главное убедиться, что ваше ядро поддерживает ext4. Ну и наконец: всё делаете на свой страх и риск.
p.s. прокомментируйте пожалуйста целесообразность описанного метода миграции с ntfs на ext4, т.к. хотелось получить на уже имеющихся файлах такие фичи, как экстенты, поэтому не хотелось прибегать к помощи конвертеров.
_________
Текст подготовлен в
- +8
- l0ser140
- 29 июня 2009, 23:01
Получается что ext3/ext4 теряют сколько-то полезного места на диске?
Попробовал отформатировать одинаковые 1TB диски: в xfs и ntfs остается примерно 931MB, а ext4 только 916MB, а при заполнении файлами — на ext свободное место уменьшается быстрее чем на ntfs/xfs.