Ext4 (Русский)

From ArchWiki
Revision as of 08:53, 11 July 2011 by Roma-n (talk | contribs)
Jump to navigation Jump to search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Ext4 - результат эволюции файловой системы ext3. Ext4 в сравнении с ext3 сильнее улучшена, чем ext3 по сравнению с ext2. В ext3 практически просто добавили журналирование, а ext4 изменена более кардинально. В результате получилась ФС с улучшенным дизайном, производительностью, стабильностью, и расширенными возможностями.

Source: Ext4 - Linux Kernel Newbies

Создание раздела ext4 с нуля

  1. Обновите систему: Template:Codeline
  2. Отформатируйте раздел: Template:Codeline (замените Template:Codeline устройством, которое собрались форматировать (например Template:Codeline))
  3. Монтируйте раздел
  4. Добавьте пункт в Template:Filename, в качестве типа ФС укажите ext4
Tip: Прочитайте ман по mkfs.ext4 для других опций; редактируйте Template:Filename чтобы изменить/посмотреть стандартные опции.

Миграция с ext3 на ext4 без потери данных

Есть два способа:

  • монтировать ext3 как ext4 без конвертирования (совместимость)
  • конвертировать раздел ext3 в ext4 (производительность)

Оба способа описаны ниже.

Монтировать ext3 как ext4 без конвертирования

Обоснование

Компромисс между полным преобразованием в ext4 и использованием ext3 это монтирование ext3 как ext4.

Плюсы:

  • Совместимость (ФС может быть монтирована как ext3 и ext4) – Это позволит пользователю читать ФС с дистрибьютивами/программами не поддерживающими ext4 (например Windows с драйвером для ext3)
  • Увеличенная производительность (менее производительно чем полное конвертирование) – Подробности: Ext4 - Linux Kernel Newbies

Минусы:

  • Используются не все возможности ext4
Note: Не считая относительной новизны ext4 (которую можно рассматривать как риск), однако крупных недостатков у этой техники нет.

Сам процесс

  1. Отредактируйте Template:Filename и поменяйте тип ФС с ext3 на ext4 для раздела, который хотите монтировать как ext4.
  2. Размонтируйте раздел/разделы, и снова примонтируйте.
  3. Готово.

Конвертирование ext3 в ext4

Обоснование

To experience the benefits of ext4, an irreversible conversion process must be completed.

Плюсы:

  • Лучшая производительность и все новые фичи ext4 – Подробности: Ext4 - Linux Kernel Newbies

Минусы:

  • Только чтение доступно из под windows (Ext2Explore), т.к. сейчас нет драйверов для записи.
  • Необратимость (Откат с ext4 до ext3 невозможен)

Требования

Необходим следующий софт:

При конвертации раздела /boot:

Note: Патч ext4 по умолчанию включен в пакет grub для Archlinux (по крайней мере на момент написания, но скорей всего он будет включен и позже). В противном случае можно установить grub2.
Warning: Загрузка с ext4 "официально" не поддерживается grub, и в grub2 в процессе разработке. While GRUB does currently work, the 'safe' option is to boot from an ext2 or ext3 /boot partition. Вы были предупреждены!

При конвертации корневого (/) раздела в ext4:

При конвертации корневого (/) загрузочного раздела на CD/USB диске в ext4:

Note: Рекомендуется использовать последний релиз Archlinux. Дистрибьютивы старее 2008.06 поставляются со старой версией Template:Codeline, но это решается с помощью Template:Codeline. Кстати, SystemRescueCd >= 1.1.4 содержит соответствующую версию, полезно иметь при себе liveCD.

Сам процесс

Следующие инструкции были обновлены из http://ext4.wiki.kernel.org/index.php/Ext4_Howto и http://bbs.archlinux.org/viewtopic.php?id=61602, они были проверены и подтверждены автором 16-ого января 2009 года.

  • Обновитесь! Обновите систему, чтобы все пакеты были последних версий: Template:Codeline
  • Резервное копирование! Скопируйте все данные с интересующего вас ext3 раздела. не смотря на то, что ext4 считается стабильным, это его довольно молодая и непроверенная ФС. Кроме того это руководство было протестировано на довольно "простой" системе, невозможно предсказать поведение множества программ установленных различными пользователями.
  • Редактируйте Template:Filename и смините тип ФС с ext3 на ext4 для интересующих вас разделов.
Warning: ext4 обратно совместима с ext3 пока расширения(?) и другие новые опции не включены. Вы сможете использовать ваш раздел как ext3 вплоть до следующего шага! После следующего шага ОС/программы не поддерживающие ext4 не смогут работать с вашим разделом.
  • Процесс конвертации Template:Codeline не может быть осуществлен, пока раздел монтирован. Если речь идет о корневом разделе (/), самы простой способ это загрузиться с liveCD/USB или другого диска/раздела.
    • Загрузитесь с live раздела (если необходимо).
    • Для каждого раздела, который необходимо конвертировать:
Note: Пользователь ДОЛЖЕН проверить раздел с помощью fsck, иначе раздел будет не читабилен! Запуск fsck нужен чтобы вернуть ФС в непротиворечивое(consistent) состояние. Обязательно обнаружатся ошибки -- это ожидается, так и должно быть. Параметр '-f' "говорит" fsck проверить раздел на ошибки даже если он кажется ему правельным. Параметр '-p' заставляет fsck автоматически устранять ошибки (иначе пользователю будет задан вопрос относительно каждой ошибки). Возможно вам придется запустить fsck -f вместо fsck -fp.
  • Перезапустите Arch Linux!
Warning: Если вы конвертировали ваш корневой (/) раздел, при загрузки может произойти kernel panic. Если это случилось, просто загрузитесь используя аварийный (fallback) ramdisk и пересоздайте дефолтный ramdisk: Template:Codeline

Migrating files to extents

Warning: Do NOT use the following method with Mercurial repository that have been cloned locally, as doing so will corrupt the repository. It might also corrupt other hard link in the filesystem.

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 kernel26

During the creation process, Template:Codeline correctly detected and included ext4 modules in the initial ramdisk.

Потеря данных

Некоторые из ранних пользователей ext4 столкнулись с потерей данных после жесткой перезагрузки (отключение питания или reset на системном блоке). Подробнее описано Ext4 data loss; explanations and workarounds.

С выходом ядра версии 2.6.30 ext4 считается безопасной. Некоторые патчи улучшили "стойкость", однако слегка снизили производительность. Можно использовать новую опцию монтирования Template:Codeline) чтобы отключить подобное поведение. Подробнее: Linux 2 6 30 - Filesystems performance improvements.

Для ядра старше 2.6.30 (<2.6.30), в качестве превентивной меры, можно добавить Template:Codeline в строку связанную с Template:Codeline в файле Template:Filename для grub.

E4rat

E4rat это программа, разработанная для ext4. Она следит за файлами, используемыми при загрузке системы, и оптимизирует их расположение на диске, чтобы уменьшить время доступа к ним, и подгружает их в самом начале процесса загрузки.