Control mounting and unmounting of filesystems (weight 3)

Candidates should be able to configure the mounting of a filesystem.
Manually mount and unmount filesystems.
Configure filesystem mounting on bootup.
Configure user mountable removeable filesystems.

The following is a partial list of the used files, terms and utilities:

/etc/fstab
/media
mount
umount

Содержание:
1 Монтирование файловых систем
2 Размонтирование файловых систем
3 Использование fstab
4 Вопросы по LPI (приблизительные)
5 Ответы

Монтирование файловых систем
mount утилита командной строки в UNIX-подобных системах. Применяется для монтирования файловых систем

Синтаксис команды mount

mount [-alrsvw] [-t fstype] [-o options] [device] [mountpoint]

Примонтируем раздел /dev/sdb1 в папку /mnt

# mount /dev/sdb1 /mnt/
# df -Th | grep sdb
/dev/sdb1     ext4     76M  5,6M   67M   8% /mnt

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

Опция -a указывает команде mount примонтировать все файловые системы расположенные в файле /etc/fstab

# mount -a

Монтирование с помощью labels и UUIDs

# blkid /dev/sdb1
/dev/sdb1: UUID="7e2db0b0-9542-4b78-9539-4460b2b848d2" TYPE="ext4" LABEL="disk2"
# mount LABEL="disk2" /mnt/
# mount UUID="7e2db0b0-9542-4b78-9539-4460b2b848d2" /mnt

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

# mount -t ext3 /dev/sdb1 /mnt/
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or helper program, or other error
       В некоторых случаях полезная информация может быть
       найдена в syslog - попробуйте dmesg | tail или что-то
       в этом роде
# mount -t ext4 /dev/sdb1 /mnt/

Типы файловых систем

ext2 (for ext2fs)
ext3 (for ext3fs)
ext4 (for ext4fs)
reiserfs (for ReiserFS)
jfs (for JFS)
xfs (for XFS)
vfat (for FAT with VFAT long filenames)
msdos (for FAT using only short DOS filenames)
iso9660 (for CD-ROM filesystems)
udf (for DVD and some CD-ROM filesystems)
nfs (for NFS network mounts)
smbfs (for SMB/CIFS network shares)

Чтобы посмотреть какие файловые системы смонтированы в данный момент, необходимо запустить mount без параметров

# mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro,user_xattr,commit=0)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /var/lib/ureadahead/debugfs type debugfs (rw,relatime)
192.168.0.111:/share on /home/bezha/popcorn type nfs (rw,addr=192.168.0.111)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
nfsd on /proc/fs/nfsd type nfsd (rw)
none on /proc/fs/vmblock/mountPoint type vmblock (rw)
/dev/sdb1 on /mnt type ext4 (rw)

Вывод с метками

# mount -l
/dev/sr0 on /media/Music 17.08.2010 type iso9660 (ro) [Music 17.08.2010]
/dev/sdb1 on /mnt type ext4 (rw) [disk2]

Аналогичный результат будет если запустить следующие команды

# cat /proc/mounts
# cat /etc/mtab

Опции команды mount

# mount -V показывает версию программы
mount from util-linux-ng 2.17.2 (with libblkid and selinux support)
# mount -h показывает help
# mount -v /dev/sdb1 /mnt/ выводить дополнительную информацию
mount: вы не указали тип файловой системы для /dev/sdb1
       я попробую тип ext4
/dev/sdb1 on /mnt type ext4 (rw)
# mount -n монтировать файловую систему без добавления ее в /etc/mtab
# mount -r монтировать файловую систему в режиме чтения
# mount -w монтировать файловую систему в режиме записи

Перемонтировать файловую систему в режим чтения

# mount -o remount,ro /mnt/
# mount | grep mnt
/dev/sdb1 on /mnt type ext4 (ro)

Перемонтировать файловую систему в режим записи

# mount -o remount,rw /mnt/
# mount | grep mnt
/dev/sdb1 on /mnt type ext4 (rw)

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

Размонтирование файловых систем
umount— утилита командной строки в UNIX-подобных системах. Применяется для размонтирования файловых систем, предварительно смонтированных посредством вызова утилиты mount.

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

Синтаксис команды umount

umount [-afnrv] [-t fstype] [device | mountpoint]

Размонтируем раздел /mnt

# umount -v /mnt
# umount -v /dev/sdb1

Опция -a указывает команде umount размонтировать файловые системы расположенные в файле /etc/mtab

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

# # umount -v /mnt
umount: /mnt: device is busy.
(In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))

Смотрим какие процессы мешают размонтировать файловую систему с помощью команд lsof и fuser

# lsof /mnt/
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
bash     6661 root  cwd    DIR   8,17     1024    2 /mnt
lsof    12218 root  cwd    DIR   8,17     1024    2 /mnt
lsof    12219 root  cwd    DIR   8,17     1024    2 /mnt
# fuser -v /mnt/
                     ПОЛЬЗ-ЛЬ PID ДОСТУП КОМАНДА
/mnt/:               root     kernel mount /mnt
                        root       6661 ..c.. bash

После закрытия процесса с pid 6661

# umount -v /mnt
/dev/sdb1 размонтирован

Опции команды umount

# umount -V Показать версию программы
umount (util-linux-ng 2.17.2)
# umount -h Показать help
# umount -v Показывать дополнительную информацию
# umount -n Размонтировать файловую систему без записи в файл /etc/mtab
# umount -f Принудительное размонтирование файловой системы
# umount -r Если не получиться размонтировать файловую систему, примонтировать ее в режиме чтения

Для того чтобы обычный пользователь мог размонтировать флешки и CD/DVD они монтируются с uid и gid пользователя.
Благодаря этому обычный пользователь сможет размонтировать файловую систему не обладая паролем суперпользователя.
# mount | grep sr0
/dev/sr0 on /media/Music 17.08.2010 type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500)
# id bezha
uid=1000(bezha) gid=1000(bezha) группы=1000(bezha),4(adm),20(dialout),24(cdrom),46(plugdev),111(lpadmin),119(admin),122(sambashare)

Использование fstab

Пример файла /etc/fstab

# vi /etc/fstab
# /etc/fstab: static file system information.
proc            /proc           proc    nodev,noexec,nosuid 0       0
UUID=d7f75420-0122-4fd5-b1d7-1df574591e20 none            swap    sw              0       0
192.168.0.111:/share /home/bezha/popcorn nfs defaults 0 0
UUID=78432857-fdf6-4ea1-8139-dc3ec8298b3f / ext4 errors=remount-ro 0 1

Может быть на примере /dev/sdb1
# blkid /dev/sdb1
/dev/sdb1: UUID=”7e2db0b0-9542-4b78-9539-4460b2b848d2″ TYPE=”ext4″ LABEL=”disk2″
имя устройства – /dev/sdb1
UUID устройства – 7e2db0b0-9542-4b78-9539-4460b2b848d2
LABEL устройства – 7e2db0b0-9542-4b78-9539-4460b2b848d2
Это точка монтирования.
Для файла подкачки это поле имеет значение none.

Определяет тип файловой системы. CD/DVD-диски часто имеют разные файловые системы – ISO9660 или UDF – поэтому вы можете перечислить различные возможности в виде списка, разделенного запятыми. Если вы хотите, чтобы mount автоматически определила тип, используйте auto.

Определяет параметры монтирования. Для монтирования со значениями по умолчанию используйте defaults.
– rw и ro указывают монтирование файловой системы в режиме чтения/записи или только для чтения.
– noauto указывает, что файловая система не должна автоматически монтироваться при загрузке или при выдаче команды mount -a.
– user определяет, что пользователь, не имеющий прав root, может монтировать или демонтировать данную файловую систему. Это особенно полезно для съемных носителей.
– exec или noexec определяют, позволять ли исполнение файлов из данной файловой системы.
– noatime отключает запись атрибута времени доступа к файлу.

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

Ненулевые значения pass определяют порядок проверки файловых систем во время загрузки, как описано в теме Maintain the integrity of filesystems

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

Файл подкачки
Файл подкачки не имеет точки монтирования. В процессе загрузки система обычно активизирует пространство подкачки, указанное в /etc/fstab, если не указана опция noauto.
Просмотр файла подкачки

# swapon -s
Filename				Type		Size	Used	Priority
/dev/sda5                               partition	3227644	0	-1
# cat /proc/swaps
Filename				Type		Size	Used	Priority
/dev/sda5                               partition	3227644	0	-1

Вопросы по LPI (приблизительные)

1) What mount point should you associate with swap partitions?
A. /
B. /swap
C. /boot
D. None
2) To access files on a USB pen drive, you type mount /dev/sdc1 /media/pen as root.
Which types of filesystems will this command mount?
A. Ext2fs
B. FAT
C. HFS
D. All of the above
3) Which of the following /etc/fstab entries will mount /dev/sdb2 as the /home directory
at boot time?
A. /dev/sdb2 reiserfs /home defaults 0 0
B. /dev/sdb2 /home reiserfs defaults 0 0
C. /home reiserfs /dev/sdb2 noauto 0 0
D. /home /dev/sdb2 reiserfs noauto 0 0
4) What filesystem options might you specify in /etc/fstab to make a removable disk (USB
pen drive, Zip disk, floppy disk, and so on) user-mountable? (Select all that apply.)
A. user
B. users
C. owner
D. owners
5)  What is the minimum safe procedure for removing a USB pen drive, mounted from
/dev/sdb1 at /media/pen, from a Linux computer?
A. Type umount /media/pen, wait for the command to return and disk activity lights to stop,
and then unplug the drive.
B. Unplug the drive, and then type umount /media/pen to ensure that Linux registers
the drive’s removal from the system.
C. Unplug the drive, and then type sync /dev/sdb1 to flush the caches 
to ensure problems don’t develop.
D. Type pendrive-remove, and then quickly remove the disk before its activity light stops blinking.
6) Which of the following files contains information on currently mounted file systems?
A. /etc/mtab
B. /etc/fstab
C. /proc
D. /dev
7) Which command is used to make a file system available to the system?
A. fsck
B. mount
C. fdisk
D. mkfs
8) User mountable file systems are specified in the ____________ file.
9) Before a file system can be examined using fsck it must first be ____________.

Ответы

1) The correct answer is D. 
Swap partitions aren’t mounted in the way filesystems are, so they have no associated mount points.
2)  The correct answer is D.  When typed without a filesystem type specification,
mount attempts to auto-detect the filesystem type. If the media contains any of the specified 
filesystems, it should be detected and the disk mounted.
3) The correct answer is B. 
The /etc/fstab file consists of lines that contain the device identifier, the mount point,
the filesystem type code, filesystem mount options, the dump flag, and the filesystem check
frequency, in that order. Option B provides this information in the correct order and so
will work. 
4) The correct answer is A, B, C
The user, users, and owner options in /etc/fstab all enable ordinary users to mount a filesystem, 
but with slightly different implications: 
user enables anybody to mount a filesystem, and only that user may unmount it; 
users enables anybody to mount a filesystem, and anybody may unmount it;
owner enables only the owner of the mount point to mount or unmount a filesystem.
5) The correct answer is A. 
Option A correctly describes the safe procedure for removing a removable medium that
lacks a locking mechanism from a Linux computer. (Instead of typing umount /media/
pen, you could type umount /dev/sdb1; in this context, the two commands are equivalent.)
6) The correct answer is A. The /etc/mtab file contains the currently mounted file systems. 
7) The correct answer is B. The mount utility allows a file system to be accessed by the system.
8) /etc/fstab. The /etc/fstab file specifies which file systems are mountable by users.
9) unmounted. A file system must be unmounted before it can be inspected with fsck.

Читать
Control mounting and unmounting of filesystems
Монтирование и размонтирование файловых систем