Linux программирование в примерах - Роббинс Арнольд
Шрифт:
Интервал:
Закладка:
README.es RELEASE-NOTES-de.html RPM-GPG-KEY
README.fr RELEASE-NOTES-es.html TRANS.TBL
# <b>cd</b> /* Сменить */
# <b>umount /mnt/cdrom</b> /* Демонтировать */
Возможность монтирования таким способом образа ISO 9660 особенно полезна при тестировании сценариев, создающих образы CD. Вы можете создать образ в обычном файле, смонтировать его и проверить, что он подготовлен правильно. Затем, убедившись, что все в порядке, можно скопировать образ на записываемый CD («прожечь» CD). Возможность кольцевого устройства полезна также для монтирования образов гибких дисков
8.1.4. Демонтирование файловых систем: umount
Команда umount демонтирует файловую систему, удаляя ее содержимое из системной иерархии файлов. Использование следующее:
umount <i>файл-или-устройство</i>
Демонтируемая файловая система не должна быть занята. Это означает, что нет процессов с открытыми в файловой системе файлами и что ни у одного процесса текущий рабочий каталог не находится в этой файловой системе:
$ <b>mount</b> /* Показать, что смонтировано */
/dev/hda2 on / type ext3 (rw) /* / находится на настоящем устройстве */
none on /proc type proc (rw)
usbdevfs on /proc/bus/usb type usbdevfs (rw)
/dev/hda5 on /d type ext3 (rw) /* To же c /d */
none on /dev/pts type devpts (rw,gid=5,mode=620)
none on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
$ <b>su</b> /* Переключиться на суперпользователя */
Password: /* Пароль не отображается */
# <b>cd /d</b> /* Сделать /d текущим каталогом */
# <b>umount /d</b> /* Попытка демонтировать /d */
umount: /d: device is busy /* Doesn't work; it's still in use */
# <b>cd /</b> /* Сменить /d */
# <b>umount /d</b> /* Еще одна попытка демонтировать /d */
# /* Молчание золото: umount работает */
8.2. Файлы для администрирования файловой системы
Файл /etc/fstab[81] перечисляет файловые системы, которые могут быть смонтированы. Большинство из них монтируются автоматически, когда система загружается. Формат следующий:
<i>устройство точка-монтирования тип-фс опции dump-freq fsck-pass</i>
(<i>dump-freq</i> и <i>fsck-pass</i> являются административными особенностями, не относящимися к настоящему обсуждению). Например, на нашей системе файл выглядит следующим образом:
$ <b>cat /etc/fstab</b>
# device mount-point type options freq passno
/dev/hda3 / ext3 defaults 1 1 /* Корневая файловая система */
/dev/hda5 /d ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
# Windows partition:
/dev/hda1 /win vfat noauto,defaults,user,uid=2076,gid=10 0 0
/dev/hda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0 /* Монтируемый */
/dev/fd0 /mnt/floppy auto noauto,owner 0 0/* Гибкий диск, то же самое */
Разрешены комментарии, начинающиеся с #. Вскоре, в разделе 8.2 1 «Использование опций монтирования», будет обсуждение различных опций.
Тот же самый формат файла используется для /etc/mtab, куда mount записывает информацию о файловых системах, когда они смонтированы; umount удаляет информацию из этого файла, когда файловая система демонтирована:
$ <b>cat /etc/mtab</b>
/dev/hda2 / ext3 rw 0 0
none /proc proc rw 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
/dev/hda5 /d ext3 rw 0 0
none /dev/pts devpts rw,gid=5,mode=620 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
/dev/hda1 /win vfat rw,noexec,nosuid,nodev,uid=2076,gid=10,user=arnold 0 0
Ядро делает доступным (почти) те же самые сведения в /proc/mounts, в том же формате:
$ <b>cat /proc/mounts</b>
rootfs / rootfs rw 0 0
/dev/root / ext3 rw 0 0
/proc /proc proc rw 0 0
usbdevfs /proc/bus/usb usbdevfs rw 0 0
/dev/hda5 /d ext3 rw 0 0
none /dev/pts devpts rw 0 0
none /dev/shm tmpfs rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
/dev/hda1 /win vfat rw,nosuid,nodev,noexec 0 0
Обратите внимание, что в /etc/mtab есть некоторые сведения, которые отсутствуют в /proc/mounts. (Например, см. строку для точки монтирования /win.) С другой стороны, возможно (используя 'mount -f') помещать в /etc/mtab элементы, которые не являются настоящими (эта практика имеет свое применение, см. mount(8)). Подводя итог, /proc/mounts всегда описывает, что смонтировано в действительности; однако, /etc/mtab содержит сведения об опциях mount, которых нет в /proc/mounts. Поэтому, чтобы получить полную картину, вам может понадобиться прочесть оба файла