словник | перекладачка | факти | тексти | програми
щодо | посилання | новини | гостьова книга | пошук
початок << тексти  << автор  << зміст  << сторінка

next up previous contents index
Далі: Перевірка цілісності файлових систем Вгору: Файлові системи Назад: Створення файлової системи

  
Монтування та розмонтування

Перед тим, як користуватися файловою системою, її треба змонтувати. Після монтування, для того, щоб підтримувати в робочому порядку, система переймає на себе обов'язки по контролю файлової системи. Оскільки всі файли в Юніксі розташовані в єдиному дереві, після монтування виявляється, що все, що знаходилось до монтування в окремій файловій системі, стає складовою директорією в цьому дереві.

Наприклад, рисунок [*] показує три окремі файлові системи, кожна зі своїм власним коренем (кореневою директорією). Після того, як дві останні файлові системи змонтовані в точках /home  та /usr  першої файлової системи, утворюється єдине дерево директорій показане на рисунку [*].


  
Рисунок: Три окремі файлові системи.
\includegraphics{disks/hd-mount-separate.ps}


  
Рисунок: /home  та /usr  змонтовано.
\includegraphics{disks/hd-mount-mounted.ps}

Операції монтування виконуються наступними командами:

$ mount /dev/hda2 /home
$ mount /dev/hda3 /usr
$
$

Команді mount  потрібно давати два арґументи. Перший з них - це спеціальний файл пристрою, який відповідає диску чи підрозділу з файловою системою. Другий - директорія, в якій потрібно змонтвуати дану файлову систему. Після того, як виконано ці дві команди, все, що знаходиться в змонтованих фалових системах, буде виглядати як склад директорій /home  та /usr . Кажуть, що ``/dev/hda2  змонтовано на /home '', і, аналоґічно для /usr . Щоб подивитися, що знаходиться в тій, чи іншій файловій системі (після її монтування), слід дивитися, що знаходиться в тій директорії, на якій ця файлова система змонтована, так, як ніби-то це - звичайна директорія. Відмітьте різницю між спеціальним файлом пристрою (/dev/hda2  та директорією, на яку його змонтовано (/home . Перший з них дає доступ до ``сирого'' диску (або розділу), в той час, як друга - описує доступ до ``готової'' директорії на диску. Директорію, в якій проводиться монтування файлової системи, називають точкою монтування.

Лінаксом, як уже відмічалося, підтримуються файлові системи багатьох типів. Команда mount  намагається вгадати тип файлової системи, яку вона монтує. Але крім цього можна також користуватися параметром -t тип_файлової_системи, щоб явно вказати тип. Інколи це необхідно, бо буває, що шлях здогадок підводить. Наприклад, щоб змонтувати файлову систему DOS на дискеті, потрібно виконати команду:

$ mount -t msdos /dev/fd0 /floppy
$

Від директорії, на вершині якої монтується файлова система, не вимагається, щоб вона була пустою, але необхідно, щоб вона існувала. Однак, всі файли, які існували в цій директорії до монтування будуть недоступними після того, як файлова система змонтована. (Будь які файли, відкриті на час монтування будуть залишатися доступними, так само, як і файли в даній директорії, які мають жорсткі ссилки на себе з інших частин файлової системи, можуть бути доступними з використанням цих інших імен.) Цим не завдається жодної шкоди, і інколи такий ефект можна використати на користь. Наприклад, уявімо собі, що /tmp  та /var/tmp  є синонімами, та /tmp  є символічною ссилкою на /var/tmp . Під час старту системи, коли файлова система /var  ще не змонтована, для тимчасових файлів використовується директорія /var/tmp , яка знаходиться на кореневій файловій системі. Після того, як /var  змонтована, директорія /var/tmp  в кореневій директорії робиться недоступною, і замість неї використовується змонтована на її вершині файлова система. Якби директорія /var/tmp  не існувала, то було б неможливо користуватися тимчасовими файлами до того, як змонтована /var .

Якщо Ви не збираєтесь записувати нічого в файлову систему, яку монтуєте, Ви можете скористуватися параметром -r для того, щоб змонтувати цю файлову систему в режимі тільки читання81. Отримавши цей параметр, ядро зупинить будь-яку спробу записати що-небуть в файлову систему і ядро не буде змінювати час доступу82 до inode'ів файлів в даній файловій системі. Монтування в режимі ``тільки читання'' необхідне для носіїв, на які запис неможливий, таких, наприклад, як компакт-диски83.

Уважний читач мабуть уже відмітив одну головоломку, а саме: як же монтується ``сама перша'' файлова система - та, яка називається кореневою файловою системою84, бо вона містить кореневу директорію. Звичайно ж, із зрозумілих причин, цю файлову систему не можна змонтувати на вершині іншої. Відповідь в цьому випадку дуже проста - це звичайно ж фокус.8586. Коренева файлова система чарівним способом виявляється змонтованою при запуску системи, і можна завжди розраховувати на те, що вона змонтована - якщо неможливо змонтувати кореневу файлову систему, система просто не загрузиться. Назва тої файлової системи, яка магічно монтується як коренева, або компілюється безпосередньо в саме ядро, або встановлюється за допомогою LILO чи rdev 87.

При старті системи коренева система завжди монтується спочатку в режимі ``тільки читання''. Пізніше із стартових скриптів запускається fsck  для перевірки цілісності файлової системи, і потім файлова система перемотовується88 в режимі дозволу запису. Загалом команда fsck  не повинна виконуватися на змонтованих файлових системах, оскільки будь-які зміни до файлової системи, над якою вона виконується, викличуть великі проблеми. Але, оскільки коренева система в даному випадку змонтована з доступом тільки на читання, fsck  може коригувати потрібні ділянки без проблем, і операція перемонтування запише всі потрібні зміни з пам'яті на диск.

В багатьох системах при старті потрібно монтувати також інші файлові системи (крім кореневої та своп). Всі вони описуються в файлі /etc/fstab 89. Подробиці про формат файлу є в сторінці підказки fstab . Те, як конкретно додаткові файлові системи монтуються залежить від багатьох факторів, і це може конфіґурувати кожен окремий системний адміністратор так, як це потрібно. Коли розділ про процес старту системи буде закінчено, в ньому можна буде це прочитати.

Якщо файлова система більше не потрібна, її можна розмонтувати командою umount 90. Для umount  потрібен один параметр - або точка монтування файлової системи, або її спеціальний файл. Наприклад, щоб розмотувати директорії, змонтовані в попередньому прикладі, потрібно виконати команди:

$ umount /dev/hda2
$ umount /usr
$ $

Подальші відомості про команду дивіться в сторінці підказки по ній. Не забудьте, що завжди потрібно розмонтовувати змонтовану дискету. Не витягуйте просто так дискету з дисководу! Через кешування диску в пам'яті, дані можуть справді записуватися на диск багато пізніше і не обов'язково записані на диск, якщо його ще не розмонтовано 91. Отже, якщо Ви витягнете дискету зарано - отримаєте сміття замість даних. Якщо Ви тільки читали з дискети, то, можливо нічого страшного не трапиться, але, якщо записали щось (навіть випадково), результатом може бути катастрофа.

Для монтування та розмонтовування файлових систем потрібно мати привілеї супер-користувача, тобто тільки користувач root  може це робити. Причиною цього є те, що, якщо будь-хто може монтувати чи розмонтовувати, скажімо дискету на будь-якій директорії, то, в цьому випадку було б дуже просто створити, наприклад, Троянського коня замаскованого під /bin/sh , або іншу часто вживану програму. Однак, звичайним користувачам інколи треба монтувати дискети, і для цього існує кілька способів:

  • Дати користувачеві пароль root 'а. Звичайно ж це найгірше рішення з точки зору безпеки, але і найпростіше. Воно спрацьовує в тих випадках, коли немає необхідності турбуватися про безпеку, тобто годиться на багатьох персональних системах не підключених до мережі.

  • Скористуватися програмою типу sudo  щоб дозволити користувачам користування програмою mount . Це все ще не ідеальне рішення з точки зору безпеки, але все-таки не дає користувачам безпосереднього доступу до паролю root 92.

  • Рекомендувати користувачам вживати пакет програм mtools , для оперування файлами DOS без монтування файлових систем. Цей пакет - дуже зручна штука, якщо все, що потрібно, це копіювати файли з DOSівських дискет і назад, але страшенно незручний в усіх інших випадках.

  • Перечислити пристрої дисководів разом з відповідними параметрами для монтування в файлі /etc/fstab .
Для реалізації останнього варіанту треба додати до /etc/fstab  приблизно такий рядок:
/dev/fd0 /floppy msdos user,noauto 0 0

Стовпчики в рядку такі: пристрій, який треба змонтувати, директорія, в якій потрібно монтувати файлову систему, тип файлової системи, параметри, частота створення резервних копій (використовується командою dump ), та номер проходу для fsck  (Цей параметр служить для того, щоб встановити порядок, в якому команда fsck  повинна перевіряти файлові ситеми при старті системи. 0 означає, що перевірка не потрібна).

Параметр noauto запобігає монтуванню даної файлової системи при старті системи (тобто команда mount -a  не змонтує цю файлову систему). Параметр user дозволяє монтувати цю файлову систему будь-якому користувачеві, і, (з міркувань безпеки) забороняє виконання будь-яких програм (як нормальних, так і з встановленим setuid) та використання будь-яких спеціальних файлів пристроїв із змонтованої таким чином файлової системи.93 Якщо такий рядок включено в файл /etc/fstab , то будь-який користувач може змонтувати дискету виконавши команду:

$ mount /floppy
$
Дискету можна (і, звичайно ж, потрібно) розмонтовувати відповідною командою umount .

94 Якщо Вам потрібно забезпечити можливість монтування кількох типів дискет, Ви повинні забезпечити також і відповідні точки монтування для всіх них і відповідні рядки для кожного типу в /etc/fstab . Параметри можуть бути різними для них всіх. Наприклад, щоб дати доступ до обох файлових систем - MS-DOS та ext2 на дискетах, Вам потрібно мати такі рядки в /etc/fstab :

/dev/fd0    /dosfloppy    msdos   user,noauto  0  0
/dev/fd0    /ext2floppy   ext2    user,noauto  0  0

Для файлових систем MS-DOS (не тільки дискети, а взагалі - всі з них), було б бажано обмежети доступ використанням uid чи gid та параметром umask , які в подробицях описані в сторінці підказки mount . Якщо Ви не надто безпечні, то монтування файлової системи MS-DOS дає (як мінімум) доступ на читання для будь-кого, що взагалі-то не бажано.


next up previous contents index
Далі: Перевірка цілісності файлових систем Вгору: Файлові системи Назад: Створення файлової системи
Dmytro Kovalev
1999-06-10
вгору
 
Без реклами
2004-03-23 13:51:18
TopList
© 2000-2003, Київ, Соломко Валентин -- ідея та наповнення, графічне опрацювання -- проєкт дизайн, змiнено -- 08.06.2003 14:25:50