Що таке файл / etc / fstab і для чого він потрібен
Один з конфігураційних файлів в Лінукс-системах носить ім'я fstab. Він містить інформацію про всі розділи жорсткого диска та інших носіях інформації в комп'ютері. Цей файл знаходиться в каталозі / etc, ось чому повний шлях до нього виглядає як / etc / fstab.
В / etc / fstab прописано, куди і як розділи вінчестера та інші носії повинні бути примонтировать. Якщо ви не маєте доступу до Windows розділу, не можете примонтировать CD, не в змозі записати, як пересічний користувач, файл на дискету, або відчуваєте труднощі з CD-RW, то, швидше за все, у вас невірно налаштований / etc / fstab. Редагуючи цей файл, зазвичай вирішують всі проблеми з монтуванням.
Як виглядає файл / etc / fstab
У кожній конкретній системі файл / etc / fstab виглядає не так, як в інший, адже розділи, пристрої, і їх властивості, розрізняються в різних системах. Але скелет структури файлу завжди однаковий. Ось приклад вмісту файлу / etc / fstab:
Що ж означає вся ця тарабарщина? Як легко помітити, кожен рядок містить інформацію про один розділі або пристрої. Перший стовпець містить ім'я пристрою, другий - точку його монтування, третій - тип файлової системи, четвертий - опції монтування, п'ятий (число) - опції дампа, шостий (число) параметри перевірки файлової системи. Давайте детально розглянемо всю цю інформацію.
Перший і другий стовпці: Пристрій і точка монтування
Перший і другий стовпці прості і зрозумілі. Вони містять рівно те ж саме, що ви пишете в командному рядку, коли даєте команду mount, тобто ім'я пристрою (розділу) і точку його монтування. Точка монтування, зазначена в / etc / fstab, є точкою монтування за замовчуванням. Ця та директорія, куди буде примонтировать пристрій, якщо ви не вказали інший, коли давали команду mount.
Більшість дистрибутивів Лінукса створюють спеціальні директорії для точок монтування. Більшість дистрибутивів створюють їх в каталозі / mnt, деякі (в тому числі і SuSE), в каталозі / media. Як ви можливо здогадалися, дивлячись на роздруківку fstab, я навела як приклад саме точки монтування SuSE.
Що все це означає практично? Якщо я дам команду:
то моя дискета буде змонтована в / media / floppy, тому що ця точка монтування вказана в / etc / fstab і тому використовується за умовчанням. Ось якщо рядки / dev / fd0 в моєму файлі / etc / fstab не виявиться, то команда mount буде сильно збентежена, тому що не буде знати, куди слід монтувати дискету.
Точки монтування за замовчуванням легко змінити, якщо вони вас чомусь не влаштовують. Для цього потрібно замінити директорії в файлі / etc / fstab на будь-які інші, реально існуючі директорії. Якщо відповідних не існує, то просто створіть їх.
Деякі розділи і пристрої монтуються автоматично, в процесі завантаження системи. Погляньте на наведений вище приклад. Бачите два рядки:
Вони означають, що / dev / hda2 буде примонтовано в директорію /, а / dev / hdb1 - в директорію / home. Це станеться автоматично, коли система завантажується. Якщо цього не відбудеться, то система не зможе працювати, так як всі програми знаходяться саме в директорії /, і, якщо вона не змонтована, то і доступу до програм немає! Звідки система дізнається, куди ви хочете примонтировать / dev / hda2, а куди / dev / hdb1? Подивившись файл / etc / fstab, звичайно.
Третій стовпець: Файлова система
Третій стовпець файлу / etc / fstab вказує тип файлової системи розділу або пристрою. Підтримується безліч різних файлових систем, але ми розглянемо тільки найбільш уживані.
ext2 і ext3 З великою ймовірністю ваші Лінукс-розділи відформатовані в Ext3. Раніше стандартом була система Ext2, але в наші дні майже всі дистрибутиви використовують за замовчуванням Ext3 або ReiserFS. Ext3 більш сучасна система, ніж Ext2 і відрізняється від неї своєї журнальованою. Це, в практичному плані, означає, що, якщо ви знеструмити ваш комп'ютер, замість того, щоб вимкнути його за всіма правилами, то ви не втратите інформацію, і не будете довго чекати при наступному включенні, поки ваш комп'ютер перевіряє файлову систему.
reiserfs Цілком можливо, що ваші Лінукс-розділи відформатовані в ReiserFS. Подібно Ext3, ReiserFS теж журнальована файлова система, але вона є набагато більш "просунутої". Багато дистрибутиви Лінукс (включаючи SuSE) використовують ReiserFS за замовчуванням.
swap Своп значить підкачка. Файлова система типу "swap" використовується в розділах підкачки.
auto Ні-ні, це не тип файлової системи :-) Опція "auto" просто означає, що тип файлової системи визначається автоматично. Якщо знову поглянете на приклад файлу / etc / fstab, наведений вище, то побачите, що і floppy і CD-ROM - обидва - мають замість типу файлової системи опцію "auto". Чому? - Справа в тому, що в цих пристроях можуть застосовуватися різні типи файлових систем. Одна дискета може бути відформатована для Windows, інша - для Лінукс (Ext2). Досить розумно дозволити системі самої визначити тип файлової системи на носіях на зразок дискет і оптичних дисків.
Четвертий стовпець: Опції монтування
У четвертому стовпці перераховані всі опції, з якими пристрій або розділ будуть змонтовані. За сумісництвом, це ще і найскладніший для заповнення стовпець, але, знаючи деякі найбільш вживані опції, ви уникнете більшості непорозумінь. Я розгляну тільки найбільш широко поширені опції, а щодо решти - дивіться ман-сторінку mount.
auto і noauto Якщо задана опція auto, то пристрій буде змонтовано автоматично під час запуску комп'ютера (або по команді mount -a). Ця опція включена за замовчуванням. Якщо вам не потрібно, щоб пристрій монтувалось автоматично, ви повинні прописати опцію noauto в / etc / fstab. З опцією noauto, пристрій або розділ можуть бути змонтовані тільки явно.
exec і noexec Якщо хочете запускати виконавчі програми, які знаходяться в даному розділі, то застосовуйте опцію exec, а якщо не хочете - то noexec. Останнє може бути корисно, якщо на розділі містяться програми, які не можуть працювати у вашій системі, наприклад Windows- додатка, або програми, небажані до запуску з тієї чи іншої причини.
Опція exec включена за замовчуванням, і дуже добре, що включена. Уявіть, що було б, якби ви помилково використали для монтування свого кореневого розділу опцію noexec.
ro Монтує файлову систему в режимі "тільки читання".
rw Монтує файлову систему в режимі "читання і запис". Застосування даної опції вилікує головний біль багатьох нових користувачів Лінукс, що рвуть волосся від того, що не можуть записувати: на дискету, в Windows-розділи або куди-небудь ще.
sync and async Ці опції визначають як здійснюється введення / виведення в дану файлову систему: синхронно або асинхронно. Зверніть увагу, що в прикладі опція sync застосована з дискетою. Попросту кажучи, коли ви копіюєте файл на дискету, то запис фізично відбувається в той самий момент, коли дана команда копіювати. Якщо ж застосовується опція async, введення і виведення відбуваються неодночасно (асинхронно). У випадку з дискетою це означає, що фізично запис може статися набагато пізніше команди. В цьому немає нічого поганого, і в багатьох випадках навіть переважно, але може мати неприємні побічні наслідки: якщо витягнути дискету, що не отмонтировать її, скопійованого файлу на ній може не виявитися.
За замовчуванням застосовується опція async. Але, може бути, варто для дискети прописати sync, особливо якщо ви звикли витягати неотмонтірованние дискети, подібно до того, як це робиться в Windows.
defaults За замовчуванням включені наступні опції: rw, suid, dev, exec, auto, nouser і async.
П'ятий і шостий стовпчики: Опції dump і fsck
П'ятий стовпець файлу / etc / fstab - це опція дампа, виражена числом. Від значення цього числа залежить, чи буде створюватися резервна копія даної файлової системи. Якщо це нуль, програма dump проігнорує таку файлову систему. Як видно з прикладу, в більшості рядків в п'ятому стовпці нулі.
У шостій колонці опція програми fsck (filesystem check- перевірка файлової системи). Програма fsck використовує значення чисел в цьому стовпці, щоб визначити, в якому порядку перевіряти файлові системи. Якщо там нуль, то файлова система взагалі не буде перевірятися.
Приклади записів в файл / etc / fstab
Для прикладу ми розберемо два випадки, які частіше за інших засмучують нових користувачів Лінукса: дискета і CD-ROM (хоча дискети останнім часом вживаються всі рідше).
Цей рядок означає, що дискета монтується за замовчуванням з директорію / media / floppy і що тип файлової системи при цьому визначається автоматично. Це корисно, тому що тип файлової системи на дискетах може бути різним. Особливу увагу зверніть на опції rw і user. вони обов'язково повинні бути прописані, якщо ви хочете монтувати дискету і записувати на неї, будучи рядовим користувачем. Якщо це не виходить, перевірте файл / etc / fstab на предмет наявності цих опцій. Ще зверніть увагу на опцію sync. З таким же успіхом може бути і async, з причин, які ми вже обговорили.
Знову відзначте опцію user. що дозволяє пересічному користувачеві монтувати компакт диски. Опція ro встановлена тому, що немає сенсу монтувати CD-ROM в режимі "читання-запис", адже на нього все одно нічого не запишеш. А ось опція exec дуже до речі, якщо треба запустити будь-яку програму з компакт-диска.
Зверніть також увагу на застосування опції noauto як з дискетою, так і з CD-ROM, це означає, що вони не будуть автоматично змонтовані при запуску системи. Це дуже розумно для знімних носіїв, яких при запуску може просто не бути в дисководах, адже немає сенсу намагатися монтувати то, чого немає.