headermask image

Notice: Undefined variable: t in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15

Notice: Undefined variable: r in /var/www/user97185/data/www/system-administrators.info/yandex-ad.php on line 15
Рекомендую: Фриланс-биржа | Кэшбэк-сервис | Интернет-бухгалтерия

LPI 101: Устройства, файловые системы Linux и стандарт FHS. Монтирование и размонтирование файловых систем

Файловая система Linux представляет собой единое большое дерево с корнем /. Тем не менее мы говорим о файловых системах различных устройств и разделов. Сейчас мы разрешим это кажущееся несоответствие. Корневая файловая система монтируется в процессе инициализации. Все остальные созданные нами файловые системы не могут быть использованы системой Linux, пока они не будут смонтированы в точку монтирования.

Точка монтирования – это просто каталог в текущей совокупности смонтированных файловых систем, где файловая система данного устройства прикрепляется к общему дереву. Монтирование – это процесс, который делает файловую систему устройства частью единой файловой системы, доступной для Linux. Например, можно монтировать файловые системы на разделах жесткого диска, таких как /boot, /tmp или /home, а также на дискетах – /mnt/floppy и на CD-ROM – /media/cdrom1.

Кроме файловых систем на разделах, дискетах и CD, существуют и другие типы файловых систем. Мы вкратце упоминали файловую систему tmpfs, являющуюся файловой системой в виртуальной памяти. Также можно монтировать одну файловые системы одного компьютера на другом компьютере, используя сетевые файловые системы, такие как NFS или AFS. Можно создать файл в файловой системе, отформатировать его как файловую систему (возможно, другого типа) и смонтировать эту новую файловую систему.

Хотя процесс монтирования фактически монтирует файловую систему какого-либо устройства (или другого ресурса), принято говорить, что вы “монтируете устройство”, понимая под этим “монтирование файловой системы устройства”.

Базовая форма команды mount имеет два параметра: устройство (или ресурс), содержащие монтируемую файловую систему, и точка монтирования. Например, смонтируем наш раздел с системой FAT32 /dev/hda8 в точке монтирования /dos, как показано в листинге 25.

Листинг 25. Монтирование /dos

root@pinguino:~# mount /dev/hda8 /dos

Точка монтирования должна существовать прежде, чем в нее что-либо будет смонтировано. В результате монтирования файлы и подкаталоги монтируемой файловой системы становятся файлами и подкаталогами точки монтирования. Если каталог точки монтирования уже содержал файлы и подкаталоги, они становятся невидимыми до тех пор, пока файловая система не будет демонтирована. Хороший способ избежать этого – использовать в качестве точек монтирования только пустые каталоги.

После монтирования файловой системы файлы и каталоги, созданные или скопированные в точку монтирования или в ее подкаталог, будут располагаться в смонтированной файловой системе. Так, в нашем примере, файл /dos/sampdir/file.txt будет создан в системе FAT32, смонтированной в точке /dos.

Обычно команда mount автоматически определяет тип файловой системы. Но иногда может потребоваться явное задание типа файловой системы, для чего используется опция -t, как показано в листинге 26.

Листинг 26. Монтирование с явным заданием типа файловой системы

root@pinguino:~# mount -t vfat /dev/hda8 /dos

Чтобы увидеть, какие файловые системы смонтированы, используйте mount без параметров. В Листинге 27 приведен пример для нашей системы.

Листинг 27. Просмотр смонтированных файловых систем

/dev/hda6 on / type reiserfs (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
usbfs on /proc/bus/usb type usbfs (rw)
tmpfs on /lib/modules/2.6.12-10-386/volatile type tmpfs (rw,mode=0755)
/dev/hda2 on /boot type ext3 (rw)
/dev/hda8 on /dos type vfat (rw)
/dev/hda7 on /home type xfs (rw)
/dev/hda1 on /media/hda1 type ntfs (rw)
tmpfs on /dev type tmpfs (rw,size=10M,mode=0755)

Аналогичную информацию можно просмотреть с помощью команд /proc/mounts или /ets/mtab; обе они выводят информацию о смонтированных файловых системах.

Опции монтирования

Команда mount имеет несколько опций, которые меняют ее поведение по сравнению с поведением по умолчанию. Например, можно смонтировать файловую систему «только для чтения», указав атрибут -o ro. Если файловая система уже смонтирована – добавьте remount, как показано в листинге 28.

Листинг 28. Установка атрибута “только чтение”

root@pinguino:~# mount -o remount,ro /dos

Замечания:

  • указывайте опции через запятую;
  • при перемонтировании уже смонтированной файловой системы достаточно определить либо точку монтирования, либо название устройства. Указывать и то и другое не обязательно;
  • нельзя перемонтировать файловую систему, созданную только для чтения, в режим чтения/записи. Неизменяемые носители, например, на CD-ROM, автоматически монтируются только для чтения.
  • для перемонтирования устройства, допускающего запись, в режим чтения/записи введите -o remount,rw

Команды перемонтирования не будут выполнены, если какой-либо процесс имеет открытые файлы или каталоги в перемонтируемой файловой системе. Для нахождения открытых файлов используется команда lsof. За более подробной информацией о дополнительных опциях команды lsof обращайтесь к документации man.

fstab

Из руководства к теме 102 “Экзамену LPI 101. Установка Linux и управление пакетами”, вы узнали, как с помощью параметра root= в GRUB и LILO сообщить загрузчику о том, какая файловая система монтируется в качестве корневой. Смонтировав эту файловую систему, процесс установки запускает mount с опцией -a для автоматического монтирования набора файловых систем. Этот набор задается в файле /etc/fstab. В листинге 29 показан файл /etc/fstab для системы Ubuntu, установленной на файловые системы, созданные ранее в данном руководстве.

Листинг 29. Пример использования fstab

root@pinguino:~# cat /etc/fstab
# /etc/fstab: sttic file system information.
#
#<file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/hda6       /               reiserfs defaults       0       1
/dev/hda2       /boot           ext3    defaults        0       2
/dev/hda8       /dos            vfat    defaults        0       0
/dev/hda7       /home           xfs     defaults        0       2
/dev/hda1       /media/hda1     ntfs    defaults        0       0
/dev/hda5       none            swap    sw              0       0
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

Строки, начинающиеся символом #, являются комментариями. Остальные строки содержат шесть полей. Поскольку эти поля позиционные, все они должны быть заполнены.

file system
Для вышеупомянутых примеров имя должно быть задано как /dev/hda1.
mount point
Это точка монтирования, рассмотренная в разделе Монтирование файловых систем. Для пространства подкачки это поле имеет значение none. Для файловых систем ext2, ext3 и xfs можно также указывать метку тома, например: LABEL=XFSHOME. Это делает систему более устойчивой при установке и удалении устройств.
type
Определяет тип файловой системы. CD/DVD-диски часто имеют разные файловые системы – ISO9660 или UDF – поэтому вы можете перечислить различные возможности в виде списка, разделенного запятыми. Если вы хотите, чтобы mount автоматически определила тип, используйте auto, как сделано в последней строке для дискеты.
option
Определяет параметры монтирования. Для монтирования со значениями по умолчанию используйте defaults. Несколько полезных опций:
* rw и ro указывают монтирование файловой системы в режиме чтения/записи или только для чтения.
* noauto указывает, что файловая система не должна автоматически монтироваться при загрузке или при выдаче команды mount -a. В нашем примере эта опция применена для съемных устройств.
* user
* определяет, что пользователь, не имеющий прав root, может монтировать или демонтировать данную файловую систему. Это особенно полезно для съемных носителей. Эта опция должна быть задана в /etc/fstab, а не в команде mount.
* exec или noexecопределяют, позволять ли исполнение файлов из данной файловой системы. Для файловых систем, монтируемых пользователем, по умолчанию устанавливается значение noexec, если только после поля user не указано exec.
* noatime отключает запись атрибута времени доступа к файлу. Это может повысить производительность.

dump
Определяет, будет ли команда dump включать данную файловую систему ext2 или ext3 в резервные копии. Значение 0 означает, что dump игнорирует данную файловую систему.
pass
Ненулевые значения pass определяют порядок проверки файловых систем во время загрузки, как описано в теме Проверка файловых систем.

Для монтирования файловых систем, перечисленных в /ect/fstab, достаточно задать либо имя устройства, либо точку монтирования. Оба параметра одновременно задавать не нужно.

За более подробным описанием функций fstab и mount, включая не рассмотренные здесь опции, обращайтесь к документации man.

Размонтирование файловых систем

Все смонтированные файловые системы обычно автоматически размонтируются системой при перезагрузке или выключении. При размонтировании файловой системы все кэшированные данные файловой системы сохраняются на диск.

Также можно размонтировать файловую систему вручную. В действительности это необходимо делать всякий раз, когда вы удаляете записываемый съемный носитель – дискету, USB-диск или флэш-накопитель. Прежде чем размонтировать файловую систему, следует убедиться в отсутствии работающих процессов, которые имеют открытые файлы в этой файловой системе. Затем используйте команду umount, указав в качестве аргумента либо имя устройства, либо точку монтирования. Несколько примеров успешного и безуспешного размонтирования приведено в листинге 30.

Листинг 30. Размонтирование файловых систем

root@pinguino:~# lsof /dos
root@pinguino:~# umount /dos
root@pinguino:~# mount /dos
root@pinguino:~# umount /dev/hda8
root@pinguino:~# umount /boot
umount: /boot: device is busy
umount: /boot: device is busy
root@pinguino:~# lsof /boot
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
klogd 6498 klog 1r REG 3,2 897419 6052 /boot/System.map-2.6.12-10-386

После размонтирования файловой системы файлы в каталоге, использовавшемся в качестве точки монтирования, снова становятся видимыми.

Пространство подкачки

Вы могли заметить, в описании команды fstab, что пространство подкачки не имеет точки монтирования. В процессе загрузки система обычно активизирует пространство подкачки, указанное в /etc/fstab, если не указана опция noauto. Для управления пространством подкачки в работающей системе, например, для добавления нового раздела подкачки, используются команды swapon и swapoff. Подробнее см. документацию man.

Для просмотра активизированных в данных момент устройств подкачки используйте cat /proc/swaps.

Взято с ibm developerworks

Похожие посты
  • LPI 101: Устройства, файловые системы Linux и стандарт FHS. Установка владельца и группы файла
  • LPI 101: Устройства, файловые системы Linux и стандарт FHS. Жесткие и символические ссылки
  • Описание более 350 команд Linux c примерами.
  • LPI 101: Устройства, файловые системы Linux и стандарт FHS. Целостность файловых систем
  • Mac4Lin: как Linux превратить в Mac
  • LPI 101: Устройства, файловые системы Linux и стандарт FHS. Дисковые квоты
  • LPI 101: Устройства, файловые системы Linux и стандарт FHS. Поиск и расположение системных файлов
  • LPI 101: Устройства, файловые системы Linux и стандарт FHS. Создание разделов и файловых систем
  • LPI 101. Аппаратные средства и архитектура. Коммуникационные устройства
  • Ubuntu 7.10