3. Команди mount і umount

Тепер, коли файлову систему створено, ви можете примонтувати розділ. Спочатку він буде порожнім, бо система не мала доступу до файлової системі, щоб додати в неї файли. Команда для монтування файлових систем - mount , а її синтаксис наступний:

mount [опції] <-t тип> [-o опції монтування] <пристрій> <точка монтування>

У нашому випадку ми хочемо тимчасово примонтувати наш розділ в /mnt/new (або в будь-яку іншу обрану вами точку монтування; але пам'ятаєте, що точка монтування має існувати). Команда для монтування нашого новоствореного розділу:

$ mount -t ext3 /dev/hdb1 /mnt/new

Опція -t використовується для вказівки типу файловій системи, яка очікується на розділі. Ось файлові системи, з якими ви будете зустрічатися найчастіше: ext2FS (файлова система GNU/Linux) чи ext3FS (вдосконалена версія ext2FS з можливостями журналювання), VFAT (майже для всіх розділів DOS/Windows®: FAT 12, 16 чи 32), NTFS (для новіших версій Windows®) і ISO9660 (файлова система CD-ROM'ів). Якщо ви не зазначили ніякого типу, mount спробує самостійно визначити, яка файлова система знаходиться в розділі, шляхом зчитування суперблоку.

Опція -o використовується для вказівки однієї чи кількох опцій монтування. Опції, застосовні до певних файлових систем, залежатимуть від того, яка використовується файлова система. За докладнішою інформацією звертайтеся до сторінці керівництва mount(8).

Тепер, коли ви примонтували свій новий розділ, настав час скопіювати в нього весь каталог /usr:

$ (cd /usr && tar cf - .) | (cd /mnt/new && tar xpvf -)

Після того, як файли скопійовано, ми можемо відмонтувати наш розділ. Для цього скористайтеся командою umount. Її синтаксис простий:

umount <точка монтування|пристрій>

Таким чином, щоб відмонтувати наш новий розділ, ми можемо запровадити:

$ umount /mnt/new

або:

$ umount /dev/hdb1
[Підказка]Підказка

Іноді може статися так, що пристрій (зазвичай CD-ROM) виявляється зайнятим. У цьому разі більшість користувачів вирішують цю проблему перезавантаженням свого комп'ютера. Проте, якщо команда umount /dev/hdc не спрацьовує, ви можете спробувати “лінивийumount. Її синтаксис досить простий:

umount -l <точка монтування|пристрій>

Ця команда, якщо це можливо, відключає пристрій і закриває всі відкриті його обробники (handle). Зазвичай ви можете отримати диск за допомогою команди eject <точка монтування|пристрій>. Тому, якщо команда eject нічого не робить, а ви не хочете перезавантажуватись, використовуйте ліниве розмонтування.

Через те, що цей розділ має “стати” нашим каталогом /usr, нам необхідно повідомити про це системі. Для цього ми відредагуємо файл /etc/fstab. Він дозволяє автоматизувати монтування певних файлових систем, особливо при завантаженні системи. У ньому містяться рядки з описом файлових систем, їх точок монтування та іншими опціями. Ось приклад такого файла:

/dev/hda2 / ext3 defaults 1 1
/dev/hdd /mnt/cdrom auto umask=0022,user,iocharset=utf8,noauto,ro,exec,users 0 0
/dev/fd0 /mnt/floppy supermount dev=/dev/fd0,fs=ext2:vfat,--,umask=0022,iocharset=utf8,sync 0 0
/dev/hda1 /mnt/windows ntfs umask=0,nls=utf8,ro 0 0
none /proc proc defaults 0 0
/dev/hda3 swap swap defaults 0 0

Кожен рядок складається з:

Зажди існує пункт для кореневої файловій системи. Розділи swap є спеціальними, тому їх не видно в деревоподібної структурі, а поле точки монтування для цих розділів завжди містить ключове слово swap. Що ж до файлової системи /proc, докладніше її буде описано в Розділ 5, Файлова система /proc. Іншою особливою файловій системою є /dev/pts.

Також зверніть увагу на те, що у вашій системі можуть бути пункти, котрі автоматично додаються і видаляються з цього файла. Це виконується командою fstab-sync, яка отримує спеціальні події від системи рівня абстрагування від апаратних засобів (HAL, Hardware Abstraction Layer), і оброблює файл /etc/fstab. Для отримання додаткового інформації перегляньте сторінку керівництва fstab-sync(8).

Повернемось до зміни нашої файловій системи. На даний момент ми перенесли всю ієрархію /usr на /dev/hdb1, і тепер нам потрібно, щоб цей розділ було примонтовано як /usr під час завантаження системи. Для цього додайте наступний пункт в файл /etc/fstab:

/dev/hdb1 /usr ext3 defaults 1 2

Тепер розділ буде монтуватися при кожному завантаженні системи, а за необхідності він буде перевірятися на помилки.

[Примітка]Примітка

Якщо тип вашого розділу не ext3FS, ви повинні будете змінити його на правильний тип. Спільними опціями можуть бути ext2 і reiserfs. Також зверніть увагу, що останнє полі містить значення 2. Це означає, що розділ буде перевірений після всіх пунктів зі значенням 1, і після інших файлових систем на тому ж жорсткому диску з таким самим пріоритетом, перелічених до нього в /etc/fstab. Тільки кореневий розділ (/) повинен мати значення 1.

Існують дві спеціальні опції: noauto і users. Опція noauto вказує на те, що файлова система не буде монтуватися при завантаженні, а лише в ручному режимі. Опція users вказує на те, що будь-який користувач може монтувати чи розмонтувати цю файлову систему. Зазвичай ці дві опції використовуються для приводів CD-ROM і дисководів. Існує ще багато інших опцій, а для файла /etc/fstab є своя сторінка man (fstab(5)), яку ви можете прочитати для одержання додаткової інформації.

Однією з переваг використання /etc/fstab є спрощення синтаксису команди mount. Щоб примонтувати файлову систему, описану у файлі, ви можете вказати просто точку монтування чи пристрій. Щоб примонтувати дискету, ви можете запровадити:

$ mount /mnt/floppy

або:

$ mount /dev/fd0

Щоб закінчити з нашим прикладом перенесення розділу, давайте повторимо те, що ми вже зробили. Ми скопіювали ієрархію /usr і змінили /etc/fstab, щоб новий розділ монтувався при завантаженні системи. Але, хвилиночку, адже старі файли /usr все ще залишаються на своєму старому місці на диску, тому ми повинні видалити їх, щоб звільнити дисковий простір (що й було нашої вихідної метою).

Ось все. Тепер повертаємося назад в багатокористувальницький режим (telinit 3 для стандартного текстового режиму чи telinit 5 для графічного режиму), і, якщо більше не залишилося ніякої адміністративної роботи, залишаємо обліковий запис root'а.