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'а.