9.9. Монтирование и демонтирование съёмных дисков

Проблема

Как вставлять и удалять съёмные диски — дискеты, компакт-диски или флэш-диски с интерфейсом USB?

Решение

Используйте команды mount и umount.

Пример монтирования дисковода CD-ROM:

# mount -r -t iso9660 /dev/scd0 /cdrom

Ключ -r означает доступ только для чтения; ключ -t определяет тип файловой системы. Строка /dev/scd0 указывает имя, назначаемое устройству ядром, а /cdrom — каталог, в который монтируется устройство. Он должен присутствовать в системе до монтирования диска.

Тип файловой системы можно определить с помощью команды file:

$ file /dev/scd0
/dev/scd0: ISO 9660 CD-ROM filesystem data 'Data1'

При монтировании CD-ROM можно не указывать ключ -r. Команда выведет предупреждение, но диск всё равно будет смонтирован:

# mount -t iso9660 /dev/scd0 /cdrom
mount: block device /dev/scd0 is write-protected, mounting read-only

Следующая команда монтирует дискету для чтения и записи:

# mount -w /dev/fd0 /floppy

Для монтирования флэш-диска с интерфейсом USB рекомендуется использовать ключ noatime для носителей с ограниченным количеством операций перезаписи (таких как CD/DVD-RW или флэш-диски):

# mount -w -o noatime /dev/sda1 /memstick

Смонтированное устройство можно демонтировать с помощью команды:

# umount /memstick

Если вы получите сообщение:

umount: /memstick: device is busy

Это означает, что приложение или командный интерпретатор использует данные с устройства. Для получения дополнительной информации используйте команду lsof:

$ lsof /memstick
COMMAND  PID  USER   FD   TYPE  DEVICE SIZE  NODE  NAME
gs       938  dawnm  128r DIR   2.0    1024  12    /memstick/may-04.pdf
bash     938  dawnm  129r DIR   2.0    1024  24    /memstick

Далее можно либо закрыть эти приложения, либо завершить их с помощью команды:

# kill -9 $(lsof -t /memstick)

Команда mount может быть выполнена только суперпользователем root. Чтобы позволить обычным пользователям монтировать съёмные диски, нужно отредактировать файл /etc/fstab (см. следующий раздел).

Комментарий

Ошибка umount "Device is busy" чаще всего возникает, если терминал с подключённым устройством открыт как текущий рабочий каталог. Пример:

carla@windbag:/floppy$

Очень важно, чтобы диск был демонтирован перед его отключением. Это позволяет системе завершить операции записи и обеспечить корректное отключение устройства. В более новых версиях Linux указание типа файловой системы не обязательно, так как команда mount автоматически определяет её.

См. также

mount(8); раздел 9.10.