Російська версія Linux ext3 FAQ: «Відповіді на типові запитання про файлову систему Linux ext3».
Російська версія Linux ext3 FAQ. «Відповіді на типові запитання про файлову систему Linux ext3».
1. Де я можу знайти цей FAQ?
Ext3 - журнальована файлова система, розроблена Стівеном Твіді (Stephen Tweedie). Вона сумісна з ext2; фактично її можна розглядати як файлову систему ext2 з журналированием. Можливість журналирования позбавляє вас необхідності чекати роботи fsck і турбуватися про пошкодження метаданих. Окремо варто відзначити, що ви можете безпроблемно перемикатися з ext2 на ext3 і назад на обраному розділі жорсткого диска (partition) - досить лише поставити правильний тип файлової системи для команди монтування (mount).
4. Де знайти ext3 для Linux?
Починаючи з Linux-ядра версії 2.4.15 (не використовуйте цей реліз!) Ext3 включена в стандартне ядро, так що вам не потрібні додаткові патчі.
На момент написання цього FAQ останньою версією ext3-патча для Linux-ядер 2.2 була досить застаріла 0.0.7a. Зараз роботи над ext3 для Linux 2.2 не ведуться.
5. Що мені потрібно для збірки Linux-ядра з ext3?
Для Linux починаючи з версії 2.4.16 вам потрібен тільки архів з ядром.
Інструкція нижче призначена для ядер 2.2, однак повинна працювати і для старих Linux-релізів з гілки 2.4, у яких немає підтримки ext3. Вам знадобиться архів з ядром і патчі ext3:
При установці патча виникне помилка в оновленні Makefile через невідповідність підверсії ядра. Можете це спокійно проігнорувати.
Після цього потрібно налаштувати ядро (за допомогою make config або make menuconfig) і встановити включеними параметри CONFIG_EXPERIMENTAL і CONFIG_EXT3_FS (CONFIG_EXPERIMENTAL = y, CONFIG_EXT3_FS = y), після чого зібрати ядро.
Крім того, знадобиться пакет e2fsprogs (щонайменше, версія 1.25) з підтримкою ext3, який можна знайти на сайті проекту (e2fsprogs.sourceforge.net).
6. Як конвертувати розділ ext2 в ext3? (Як мені використовувати ext3?)
Перед тим, як ви зможете примонтировать розділ жорсткого диска як ext3, необхідно створити журнал на ньому. Найпростіший спосіб зробити це - виконати наступну команду:
(Замість hdaX необхідно підставити відповідний пристрій.)
Команду можна виконувати на примонтировать і на демонтувати розділах жорсткого диска. При створенні журналу на примонтировать файлової системи з'явиться файл .journal. не намагайтеся видалити його, не створюйте його резервних копій і не намагайтеся відновити з backup'а! При запуску tune2fs -j на демонтувати розділі буде створений невидимий файл журналу.
Тепер можна монтувати файли систему як ext3 за допомогою mount:
Відформатувати розділ жорсткого диска як ext3 можна за допомогою наступної команди:
(В такому випадку / dev / hdaX можна буде використовувати і в якості розділу ext2).
7. Як мені відновити вилучені файли з розділу жорсткого диска з файлової системою ext3?
Фактично ніяк. Ось що з цього приводу сказав Andreas Dilger, один з розробників:
- Для перевірки можливості безпечного продовження разлінковкі (unlink) після падіння файлова система ext3 обнуляє покажчики на блоки в inode'ах, а ext2 просто позначає ці блоки як невикористовувані, inode'и - як віддалені, залишаючи покажчики недоторканими.
Єдине, що вам залишається робити, - викликати grep для знаходження частин видалених файлів і сподіватися на краще.
8. Чому команда df повідомляє, що розділ заповнений, а du вказує на вільний простір?
- Звичайною причиною для цього є який-небудь призначений для користувача процес, який зберігає відкритим віддалений файл. Коли подібне відбувається, du не бачить займане цим файлом місце, т. К. Його вже більше немає в дереві каталогів. Однак дисковий простір, займане файлів, все ще не звільнено. Такі випадки можливі лише тоді, коли останній процес з відкритим файлом закриває дескриптор або ж цей процес завершується.
Можете скористатися програмою lsof для з'ясування, який процес зберігає файл відкритим. Звичайно це який-небудь лог-файл або великий файл бази даних, який вже був змінений, однак більш старий процес продовжує тримати його відкритим.
9. Я скомпілював ext3 модульно, а мій кореневий розділ (/) монтується як ext2. (Це питання спочатку запропонував Boris Wesslowski; пізніше його значно переробив Theodore Ts'o.)
Якщо у вас ext2 зібрана в ядрі монолітно, а ext3 - модульно, і файлової системою є ext2 / 3, ядро завжди буде монтувати кореневий розділ як ext2, а не ext3, т. К. Під час монтування ядром кореневого розділу файлової системи у нього ще немає доступу до модулів в зв'язку з тим, що вони розташовані на цьому самому кореневому розділі. (Традиційна проблема курки і яйця.)
Якщо у вас є вибір, варто подумати про доцільність складання ext3 модульно. Якщо хочете використовувати ext3 на кореневої файлової системи, модуль ext3 завжди буде завантажений, і ви не зможете вивантажити його назад, так що, ймовірно, варто його скомпілювати монолітно. Більш того, на модулі витрачається трохи більше пам'яті (в середньому, 2k на модуль), і для нього потрібна додаткова запис в кеші TLB - ледь вловимий, а можливо, і зовсім непомітний недолік, однак якщо у модульної збірки ext3 немає ніяких переваг , чи варто так робити?
Якщо ви все ж хочете скомпілювати ext3 модульно і використовувати його для своєї кореневої файлової системи, необхідно завантажитися на образ initial ramdisk (initrd) як на кореневої образ (root image). Образ initrd буде містити необхідні модулі (scsi, ext3 і т.п.), так що можете примонтировать свою «справжню» кореневу файлову систему і потім скористатися pivot_root для заміни кореневої файлової системи initrd на «справжню».
Більшість дистрибутивів виконують дію pivot_root автоматично, але існують відмінності в тому, як повинна бути викликана утиліта, яка створює образ initrd.
- В системі SUSE вам необхідно додати jbd ext3 (в цьому порядку!) В настройку YaST під назвою INITRD_MODULES, а потім викликати mk_initrd.
- У системах Red Hat досить просто виконати mkinitrd.
- В системі Debian (woody і пізніших) необхідно виконати наступну команду:
Де 2.4.18-386 потрібно замінити на версію використовуваного в системі Linux-ядра з Debian-пакета. Зверніть увагу на те, що ця операція вимагає наявності встановленого пакета initrd-tools, і якщо ви не використовуєте налаштування initrd, необхідно налаштувати конфігураційні файли завантажувача (LILO або GRUB) таким чином, щоб вони завантажували ядро з образом initrd.
10. Як конвертувати мій розділ з файловою системою ext3 назад в ext2?
Насправді, потреба в цьому мінімальна, тому що в більшості випадком цілком достатнім буде примусово примонтировать розділ жорсткого диска як ext2. Якщо ж ви все-таки хочете повернути розділу ext2 замість ext3, то потрібно виконати наступну команду на демонтувати пристрої:
Про всяк випадок після цієї операції корисно запустити перевірку з fsck:
Тепер можна спокійно видаляти файл .journal, якщо такий є.
11. Якщо завершення роботи системи пройшло аварійно, чи треба навіть при включеному журнал запускати e2fsck?
E2fsck автоматично запустить журнал, і якщо в файлової системі збереглася цілісність, утиліта не буде проводити повну перевірку.
Якщо ж в файлової системі виявлені якісь проблеми (бо під час попереднього запуску ядро помітило деякі протиріччя), e2fsck автоматично проведе повну перевірку, якщо це необхідно.
Якщо у вас багато дисків, fsck запустить безліч процесів e2fsck в паралельному режимі, тим самим прискоривши час завантаження, якщо ви дозволите ядру відтворювати журнал для кожної файлової системи, яку воно намагається примонтировать, - інакше доступ до журналу буде здійснюватися послідовно, а не паралельно.
12. Які максимальні обсяги файлової системи ext3 і файлів на ext3? (Надихнув на публікацію відповіді на це питання Andreas Dilger, а запропонував його - Christian Kujau.)
Файлова система ext3 може підтримувати файли розміром до 1 ТБ. З Linux-ядром 2.4 обсяг файлової системи обмежений максимальним розмір блочного пристрою, що становить 2 терабайта. В Linux 2.6 (для 32-розрядних процесорів) максимальний розмір блокових пристроїв становить 16 ТБ, однак ext3 підтримує тільки до 4 ТБ.
13. Як конвертувати файл журналу першої (V1) версії в другу (V2)?
Для конвертації старої (ext3 v0.0.3 або більш ранні релізи) файлової системи в новий формат журналу скористайтеся командою
14. Як конвертувати мою кореневу файлову систему першої (V1) версії в другу (V2)?
І перезавантажте систему.
15. Я оновив ext3. Переконвертувати всі розділи жорсткого диска. Тепер при завантаженні я бачу повідомлення «EXT3-fs: mounted filesystem with ordered data mode». Це нормально?
Nigel Metheringham відповів на це питання в поштовій розсилці ext3-users:
- Все в порядку. Повідомлення EXT3-fs просто повідомляє вас про те, що монтування файлової системи пройшло успішно. Крім того, каже, який вид журналирования ви використовуєте.
У ext3 є журнали двох форматів:
- перша версія (version 1) - використовується за умовчанням тільки в релізах ext3 0.0.3 і більш ранніх;
- друга версія (version 2) - використовується за умовчанням в файлових системах ext3 останніх версій (починаючи з 0.0.4).
Журнали другої версії підтримують додаткову семантику, необхідну для журналирования метаданих, і надають дві форми журналирования: впорядковану (ordered) і зі зворотним записом (writeback). Журнали обох версій підтримують журнал даних (коли всі дані, що надходять на диск, журналіруются).
У дистрибутивному файлі CHANGES повідомляється наступне:
Подробиці доступні в «Release Notes» до Red Hat Linux 7.2.
16. Наскільки стабільна файлова система ext3?
На моєму досвіді ext3 стабільна так само, як і ext2.
17. На ext3 працює квотування?
Квоти повинні працювати з Linux-ядрами 2.4 (і 2.6 - прим. Перекл.). У мене були проблеми з 2.2, але у інших їх не спостерігалося.
18. LILO працює з ext3?