Переход с ext3 на ext4

23 February 2009 #ext4#ext3#fs

Сегодня мало спал. Лег в 12 ночи, проснулся в 5 утра. Причина неизвестна.

Но когда проснулся – появилась твердая уверенность, что пора переходить на новую файловую систему ext4.  Так как часто использую torrent, и часто приходиться выделять большое пространство под файлы. На ext3 это занимает определенное время, так же как и удаление больших файлов.

Предварительно решил проверить, не появилась ли новая версия ядра? Хотя в новостях ничего не было слышно, на kernel.org увидел, что последнее обновление было 20 февраля, то есть три дня назад. Версия ядра 2.6.28.7.  Изменений много и большая часть была посвящена именно файловой системе ext4.

Обновил ядро. Более подробно по процедуре обновления ядра я расскажу в отдельной статье.

После проверки работоспособности нового ядра переходим к конвертированию файловой системы.

Во время установки у меня образовалась следующая конфигурация разделов:

/dev/sda1  /boot  - ext2
/dev/sda2  swap
/dev/sda3 /  - ext3
/dev/sda4 /home  - ext3</pre>

Раздел /boot оставляем без изменений, так как необходимости использовать на нем новую файловую систему просто нет необходимости. Для изменения корневой файловой системы необходимо использовать livecd, с которого осуществляется загрузка и конвертирование осуществляется на отмонтированной файловой системе. Так как livecd с поддержкой ext4 под рукой не оказалось оставил его без изменения.

Теперь приступаем к самой ковертации. Перезагружаем компьютер и когда появляется приглашение grub изменяем пункт, отвечающий за загрузку нашего нового ядра. Для этого нажимаем клавишу e в тот момент, когда курсор находиться над нужным пунктом. Появляются несколько строк, отвечающих за передачу параметров нашему ядру.

Так же нажатием на e переходим в режим редактирования строки. И в конец дописываем цифру 1 чтобы получилось нечто, похожее на это:

kernel /vmlinuz26 root=/dev/disk/by-uuid/e8cb29e8-ff8b-4f08-ae93-e7e63e27d9be ro quiet vga=791 1

Жмем Enter для того, чтобы выйти из режима редактирования и b для того, чтобы приступить к загрузке нашего ядра с новыми параметрами. Переданная единица указывает ядру загружаться в режиме init 1, то есть однопользовательский режим администрирования. Что позволит нам спокойно работать с файловыми системами.

Во время загрузки у нас спросят пароль администратора, который мы и введем. Оказавшись сразу в командной строке bash.

Отмонтируем раздел /home

umount /home

И затем непосредственно сама конвертация:

# tune2fs -O extents,uninit_bg,dir_index /dev/sda4
# fsck -pf /dev/sda4

Первая команда выполняется почти мгновенное, вторая чуть дольше. На моем разделе в 140 гигобайт пришлось ждать порядка 15 минут.

После конвертации изменяем файл /etc/fstab, заменив в строке нужного нам раздела значение ext3 на ext4. После чего можно спокойно перезагружаться.

Тесты производительности не проводил – и поэтому пока ничего не могу сказать о том, насколько лучше или хуже стало работать. Этому будет поясвящена отдельная статья.