Ext4 (Русский)
Ext4 - результат эволюции файловой системы ext3. Ext4 в сравнении с ext3 сильнее улучшена, чем ext3 по сравнению с ext2. В ext3 практически просто добавили журналирование, а ext4 изменена более кардинально. В результате получилась ФС с улучшенным дизайном, производительностью, стабильностью, и расширенными возможностями.
Source: Ext4 - Linux Kernel Newbies
Contents
Создание раздела ext4 с нуля
- Обновите систему:
pacman -Syu
- Отформатируйте раздел:
mkfs.ext4 /dev/sdxY
(заменитеsdxY
устройством, которое собрались форматировать (напримерsda1
)) - Монтируйте раздел
- Добавьте пункт в
/etc/fstab
, в качестве типа ФС укажите ext4
/etc/mke2fs.conf
чтобы изменить/посмотреть стандартные опции.Миграция с ext3 на ext4 без потери данных
Есть два способа:
- монтировать ext3 как ext4 без конвертирования (совместимость)
- конвертировать раздел ext3 в ext4 (производительность)
Оба способа описаны ниже.
Монтировать ext3 как ext4 без конвертирования
Обоснование
Компромисс между полным преобразованием в ext4 и использованием ext3 это монтирование ext3 как ext4.
Плюсы:
- Совместимость (ФС может быть монтирована как ext3 и ext4) – Это позволит пользователю читать ФС с дистрибьютивами/программами не поддерживающими ext4 (например Windows с драйвером для ext3)
- Увеличенная производительность (менее производительно чем полное конвертирование) – Подробности: Ext4 - Linux Kernel Newbies
Минусы:
- Используются не все возможности ext4
Сам процесс
- Отредактируйте
/etc/fstab
и поменяйте тип ФС с ext3 на ext4 для раздела, который хотите монтировать как ext4. - Размонтируйте раздел/разделы, и снова примонтируйте.
- Готово.
Конвертирование ext3 в ext4
Обоснование
To experience the benefits of ext4, an irreversible conversion process must be completed.
Плюсы:
- Лучшая производительность и все новые фичи ext4 – Подробности: Ext4 - Linux Kernel Newbies
Минусы:
- Только чтение доступно из под windows (Ext2Explore), т.к. сейчас нет драйверов для записи.
- Необратимость (Откат с ext4 до ext3 невозможен)
Требования
Сам процесс
Следующие инструкции были обновлены из http://ext4.wiki.kernel.org/index.php/Ext4_Howto и https://bbs.archlinux.org/viewtopic.php?id=61602, они были проверены и подтверждены автором 16-ого января 2009 года.
-
Обновитесь! Обновите систему, чтобы все пакеты были последних версий:
pacman -Syu
- Резервное копирование! Скопируйте все данные с интересующего вас ext3 раздела. не смотря на то, что ext4 считается стабильным, это его довольно молодая и непроверенная ФС. Кроме того это руководство было протестировано на довольно "простой" системе, невозможно предсказать поведение множества программ установленных различными пользователями.
- Редактируйте
/etc/fstab
и смините тип ФС с ext3 на ext4 для интересующих вас разделов.
- Процесс конвертации
e2fsprogs
не может быть осуществлен, пока раздел монтирован. Если речь идет о корневом разделе (/), самы простой способ это загрузиться с liveCD/USB или другого диска/раздела.- Загрузитесь с live раздела (если необходимо).
- Для каждого раздела, который необходимо конвертировать:
- Убедитесь, что раздел НЕ монтирован
- Запустите
tune2fs -O extents,uninit_bg,dir_index /dev/the_partition
(где/dev/the_partition
это интересующий нас раздел, например/dev/sda1
) - Запустите
fsck -fDp /dev/the_partition
- Перезапустите Arch Linux!
Migrating files to extents
Even though the filesystem is now converted to ext4, all files that have been written before the conversion do not yet take advantage of the new extents of ext4, which will improve large file performance and reduce fragmentation and filesystem check time. In order to fully take advantage of ext4, all files would have to be rewritten on disk. A utility called e4defrag is being developed and will take care of this task ; however, it is not yet ready for production.
Fortunately, it is possible to use the chattr program, which will cause the kernel to rewrite the file using extents. It is possible to run this command on all files and directories of one partition (e.g. if /home is on a dedicated partition): (Must be run as root)
find /home -xdev -type f -print0 | xargs -0 chattr +e find /home -xdev -type d -print0 | xargs -0 chattr +e
It is recommended to test this command on a small number of files first, and check if everything is going all right. It may also be useful to check the filesystem after conversion.
Using the lsattr command, it is possible to check that files are now using extents. The letter 'e' should appear in the attribute list of the listed files.
Советы и рекомендации
Удаление зарезервированных блоков
По умолчанию 5% ФС помечено как зарезервированное для пользователя root. Для современных дисков большого объема это более чем необходимо, особенно если раздел используется для системных файлов. Обычно безопасно можно снизить процент резервированных блоков, если раздел
- Очень большой (например больше 50 Гб)
- Не используется для системных файлов
Можно воспользоваться tune2fs для этого. Следующая команда устанавливает процент зарезервированных блоков на диске /dev/sdXY равным 1%:
tune2fs -m 1 /dev/sdXY
Возможные проблемы
Kernel Panic
One problem this author encountered was a kernel panic after converting the root (/) partition to ext4. This is because the initial ramdisk was detecting the partition as 'ext4dev', rather than 'ext4'. It was a simple matter to boot with the 'fallback' initial ramdisk and re-create the 'default' initial ramdisk :
- Remount the root partition in read-write mode; assuming 'XXX' is your root partition :
# mount /dev/XXX / -o remount,rw
- Manually mount the boot partition on /boot if it is on a separate partition.
- Re-create the ramdisk :
# mkinitcpio -p linux
During the creation process, mkinitcpio
correctly detected and included ext4 modules in the initial ramdisk.
Потеря данных
Некоторые из ранних пользователей ext4 столкнулись с потерей данных после жесткой перезагрузки (отключение питания или reset на системном блоке). Подробнее описано Ext4 data loss; explanations and workarounds.
С выходом ядра версии 2.6.30 ext4 считается безопасной. Некоторые патчи улучшили "стойкость", однако слегка снизили производительность. Можно использовать новую опцию монтирования auto_da_alloc
) чтобы отключить подобное поведение. Подробнее: Linux 2 6 30 - Filesystems performance improvements.
Для ядра старше 2.6.30 (<2.6.30), в качестве превентивной меры, можно добавить rootflags=data=ordered
в строку связанную с kernel
в файле menu.lst
для grub.
E4rat
E4rat это программа, разработанная для ext4. Она следит за файлами, используемыми при загрузке системы, и оптимизирует их расположение на диске, чтобы уменьшить время доступа к ним, и подгружает их в самом начале процесса загрузки.