Денис Колисниченко Ubuntu 10. Краткое руководство пользователя
  • Register

5.11. Монтирование файловых систем

5.11. Монтирование файловых систем

5.11.1. Команда mount

Чтобы работать с какой-либо файловой системой, необходимо примонтировать ее к корневой файловой системе. Например, подключив флешку, нужно подмонтировать файловую систему флешки к корневой файловой системе — только так мы сможем получить доступ к файлам и каталогам, которые записаны на этой флешке. Аналогичная ситуация с жесткими, оптическими дисками и другими носителями данных.

Если вы хотите заменить сменный носитель данных (флешку, дискету, компакт-диск), вам нужно сначала размонтировать файловую систему, затем извлечь носитель данных, установить новый и заново смонтировать файловую систему. В случае с флешкой о размонтировании должны помнить вы сами, поскольку при этом выполняется синхронизация буферов ввода/вывода и файловой системы, т. е. данные физически записываются на носитель, если это еще не было сделано. А компакт-диск система не разрешит вам извлечь, если он не размонтирован. В свою очередь, размонтировать файловую систему можно только, когда ни один процесс ее не использует.

При завершении работы системы (перезагрузке, выключении компьютера) размонтирование всех файловых систем выполняется автоматически.

Команда монтирования выглядит так:

# mount <устройство> <точка монтирования>

Точка монтирования — это каталог, через который будет осуществляться доступ к монтируемой файловой системе. Например, если вы подмонтирова-ли компакт-диск к каталогу /mnt/cdrom, то получить доступ к файлам и каталогам, записанным на компакт-диске, можно будет через точку монтирования (каталог /mnt/cdrom). Точкой монтирования может быть любой каталог корневой файловой системы, хоть /aaa-111. Главное, чтобы этот каталог существовал на момент монтирования файловой системы.

Примечание

Учитывая, что система монтирует сменные носители автоматически, вам не придется заниматься монтированием вручную, так что весь приведенный здесь материал, посвященный команде mount, нужен вам только для общего развития. Можно было бы даже даже не включать его в книгу, но кому была бы нужна тогда такая поверхностная книга по Linux? Ведь использовать графический файловый менеджер Nautilus может даже ребенок, а вы тем более разберетесь с ним без всяких осложнений. Зато теперь вы узнаете, как осуществляется монтирование носителей в Linux. А эти знания пригодятся вам при работе с любым дистрибутивом Linux, а не только с Ubuntu.

5.11.2. Файлы устройств

Отдельного разговора заслуживают файлы устройств. Для Linux нет разницы между устройством и файлом. Все устройства системы представлены в корневой файловой системе в виде обычных файлов. Как уже упоминалось, файлы устройств хранятся в каталоге /dev. Например, /dev/fd0 — это ваш дисковод для гибких дисков, /dev/sr0 — привод CD/DVD, /dev/sda — жесткий диск, /dev/sdb — второй жесткий диск или флешка.

Жесткие диски

Сначала разберемся с жесткими дисками. Как уже было отмечено, в современных версиях дистрибутивов все жесткие диски (ATA/SATA/SCSI) называются /dev/sdx, где x — буква, определяющая порядок подключения диска к контроллеру.

Жесткий диск часто разбивают на несколько логических дисков, или разделов. Каждый раздел — это отдельная файловая система. И каждый из разделов может быть отформатирован под свою собственную файловую систему (FAT, NTFS, ext4 и др.). Разделы именуются так: сначала идет название диска (например, /dev/sda), а затем следует номер раздела, например, /dev/sda1.

Узнать номер раздела очень просто — достаточно запустить терминал и ввести команду sudo fdisk -1. Просмотреть список смонтированных файловых систем можно на вкладке Файловые системы приложения Системный монитор (Система | Администрирование | Системный монитор). На рис. 5.6 изображены вкладка Файловые системы и вывод команды sudo fdisk -1.

5.11. Монтирование файловых систем

Более подробную информацию о смонтированных файловых системах можно получить, просмотрев файл /etc/mtab, куда эти сведения и заносятся. Разница огромна, ведь в mtab содержатся сведения также и о виртуальных псевдофайловых системах (например, о /proc и /sys).

Примечание

Обычному пользователю файловые системы proc и /sys нужны редко, поэтому они и не отображаются на вкладке Файловые системы. В данной книге файловая система /proc рассматриваться не будет.

Если вы хотите больше узнать о файловой системе Linux, настоятельно рекомендую прочитать мою книгу «Linux. От новичка к профессионалу» (http://bhv.ru/books/book.php?id=186944 ).

Приводы оптических дисков

Файл устройства для чтения CD- или DVD-дисков называется /dev/srN (или /dev/scdN), где N — номер устройства. Если компьютер оборудован всего одним оптическим устройством, то оно будет называться /dev/sr0 (или /dev/scd0). Когда система видит, что устройство является приводом CD-ROM, то автоматически создается ссылка /dev/cdrom. А если ваш привод умеет читать и DVD-диски, то появится еще одна ссылка — /dev/dvd. Монтирование привода для чтения оптических дисков осуществляется вводом одной из трех команд:

sudo mount /dev/sr0 /mnt/cdrom

sudo mount /dev/cdrom /mnt/cdrom

sudo mount /dev/dvd /mnt/cdrom

После этого обратиться к файлам, записанным на диске, можно будет через каталог /mnt/cdrom. Напомню, что этот каталог должен существовать.

Примечание

Приведенные здесь команды монтирования оптических приводов — более теория, нежели практика, поскольку сменные носители (CD/DVD- и USB-диски) в Ubuntu монтируются автоматически.

Обратите внимание — чуть ранее (см. разд. 5.4) было сказано, что есть некий каталог /cdrom, который не используется, а оптические диски монтируются к каталогу /media/<ID> (где ID — идентификатор монтируемого диска).

Здесь же я показываю монтирование дисков к каталогу /mnt/cdrom. Достаточно, чтобы окончательно запутаться, не правда ли? Но все это я сделал намеренно. Linux — система многогранная, и полиморфизм (решение одной и той же задачи различными способами) для нее норма. Проще, конечно, было бы вовсе не упоминать про каталог /cdrom, а работать только с каталогом /media, однако это вызвало бы еще большую путаницу. Теперь пришло время разложить все по полочкам:

? каталог /cdrom и вправду не используется, зачем он создан, я не знаю, может, перекочевал из Debian, где он в свое время использовался, может, остался по соображениям безопасности;

? когда система автоматически монтирует диск, то он, действительно, монтируется к каталогу /media/<ID>. В этом случае система все сделает за вас, вам останется только щелкнуть на пиктограмме диска на рабочем столе GNOME;

? а вот когда вы монтируете диск вручную, то можете подмонтировать его к любому каталогу: хоть к /mnt/cdrom, хоть к /cdrom, хоть к /abcd — лишь бы этот каталог существовал.

Дискеты

Аналогичная ситуация и с дискетами. В системе может быть установлено два дисковода для дискет: первый (/dev/fd0) и второй (/dev/fd1). Для их монтирования можно задать команды:

sudo mount /dev/fd0 /mnt/floppy

sudo mount /dev/fd1 /mnt/floppy

Напомню, что в Windows-терминологии устройство /dev/fd0 — это диск A:, а устройство /dev/fd1 — диск B:.

Флешки и USB-диски

Флешки и USB-диски в системе отображаются как обычные жесткие диски, имена у них такие же (/dev/sdx). Например, если у вас всего один жесткий диск (его имя /dev/sda) и вы подключили к компьютеру флешку, то ее имя будет /dev/sdb. Подмонтировать флешку (вот только зачем? — не забываем об автоматическом монтировании) можно так:

sudo mount /dev/sdb /mnt/usb

Перед физическим извлечением флешки и USB-винчестера (особенно винчестера, учитывая его физическое устройство) необходимо щелкнуть на значке флешки на рабочем столе и выбрать команду Безопасно отключить носитель (рис. 5.7).

5.11. Монтирование файловых систем

5.11.3. Примеры использования команды mount

Теперь, когда мы знаем номер раздела, можно его подмонтировать. В общем случае сначала командой mkdir создается точка монтирования (каталог, куда будет монтироваться раздел):

sudo mkdir <точка монтирования>

Затем к этой точке командой mount монтируется раздел:

sudo mount <раздел> <точка монтирования>

Например:

sudo mkdir /mnt/win_d

sudo mount /dev/sda5 /mnt/win_d

У команды mount довольно много опций, но на практике наиболее часто применяются только некоторые из них: — t, — r, -w, -a.

? Опция — t позволяет явно задать тип файловой системы. Обычно программа mount сама определяет файловую систему, но иногда это у нее не получается. Тогда мы должны ей помочь. Формат этой опции следующий:

mount — t <файловая система> <устройство> <точка монтирования>

Например,

mount — t iso9660 /dev/hdc /mnt/cdrom

Вот наиболее популярные файловые системы:

ext2, ext3 или ext4 — файловая система Linux;

• iso9660 — указывается при монтировании CD-ROM;

• vfat — FAT, FAT32 (поддерживается Windows 9x, ME, XP);

• ntfs — NT File System (поддерживается Windows NT, XP), используется для монтирования NTFS-разделов в режиме «только чтение»;

• ntfs-3g — будет использован модуль ntfs-3g, входящий в большинство современных дистрибутивов. Данный модуль позволяет производить запись информации на NTFS-разделы;

? Опция — r монтирует указанную файловую систему в режиме «только чтение»;

? Опция — w монтирует файловую систему в режиме «чтение/запись». Опция установлена по умолчанию для файловых систем, поддерживающих запись (например, NTFS по умолчанию запись не поддерживает, как и файловые системы CD/DVD);

? Последняя опция — a служит для монтирования всех файловых систем, указанных в файле /etc/fstab (кроме тех, для которых указано noauto — такие файловые системы нужно монтировать вручную). При загрузке системы вызывается программа mount с опцией — a.

5.11.4. Монтирование файловых систем при загрузке Linux

Если вы не хотите при каждой загрузке вручную монтировать постоянные файловые системы (например, разделы Windows), вам следует прописать их в файле /etc/fstab. Обратите внимание — в этом файле не нужно прописывать файловые системы сменных носителей (дисковода, привода CD/DVD, флеш-диска) — сменные носители монтируются автоматически.

Примечание

Замечу, что программы установки некоторых дистрибутивов, в том числе Ubuntu, читают таблицу разделов и автоматически заполняют файл /etc/fstab. В результате все разделы Windows становятся доступными сразу после установки системы. Поэтому весь приведенный в этом разделе далее материал нужно воспринимать «для общего развития», и не более. Можно было ограничиться рассмотрением использования графического файлового менеджера, но тогда не вижу смысла в этой книге — должны же вы знать, что происходит в вашей системе!

Формат файла /etc/fstab следующий:

<устройство> <точка_монтирования> <тип_ФС> <опции> <флаг_РК> <флаг__проверки>

Здесь тип_ФС — это тип файловой системы, а флаг_РК — флаг резервного копирования. Если он установлен (1), то программа dump заархивирует данную файловую систему при создании резервной копии. Если не установлен (0), то резервная копия этой файловой системы создаваться не будет.

Флаг_проверки устанавливает, будет ли данная файловая система проверяться на наличие ошибок программой fsck. Проверка выполняется в двух случаях:

? если файловая система размонтирована некорректно;

? если достигнуто максимальное число операций монтирования для этой файловой системы.

Поле опций содержит важные параметры файловой системы, некоторые из них приведены в табл. 5.5.

5.11. Монтирование файловых систем

Рассмотрим небольшой пример:

/dev/sr0 /mnt/cdrom auto umask=0,user,utf8,noauto,ro,exec 0 0

/dev/sda1 /mnt/c vfat umask=0,utf8 0 0

Первая строка — это строка монтирования файловой системы компакт-диска, а вторая — строка монтирования диска C:.

? Начнем с первой строки. /dev/sr0 — это имя устройства CD-ROM. Точка монтирования — /mnt/cdrom. Понятно, что этот каталог должен существовать. Обратите внимание — в качестве файловой системы не указывается жестко iso9660, поскольку компакт-диск может быть записан в другой файловой системе, поэтому в качестве типа файловой системы задано auto, т. е. автоматическое определение. Теперь идет довольно длинный набор опций. Ясно, что umask установлен в ноль, поскольку файловая система компакт-диска не поддерживает права доступа Linux. Параметр user говорит о том, что данную файловую систему можно монтировать обычному пользователю. Параметр utf8 мы рассмотрим чуть далее. Параметр noauto запрещает автоматическое монтирование этой файловой системы, и это правильно, ведь на момент монтирования в приводе может и не быть компакт-диска. Опция ro разрешает монтирование в режиме «только чтение», а exec разрешает запускать исполнимые файлы. Понятно, что компакт-диск не нуждается ни в проверке, ни в создании резервной копии, поэтому два последних флага равны нулю.

? Вторая строка проще. Первые два поля — это устройство и точка монтирования. Третье — тип файловой системы. Файловая система постоянна, поэтому можно явно указать тип файловой системы (vfat), а не auto. Опция umask, как и в предыдущем случае, равна нулю.

Вернемся к параметру utf8. Если подмонтировать Windows-раздел без этой опции, то вместо русских букв в названиях файлов и каталогов мы увидим вопросительные знаки. Указание опции utf8 позволяет корректно отображать русскоязычные имена файлов и каталогов. Эти опции мы также указываем и для CD-ROM, подразумевая, что он был записан в Windows.

5.11.5. Монтирование NTFS-разделов в режиме записи

Как уже было отмечено ранее, Linux умеет только читать информацию с NTFS-разделов, но не умеет записывать информацию на такие разделы. Если при перекомпиляции ядра включить опцию записи информации на NTFS-разделы, то поддержка записи обеспечится, но очень ограниченная.

Существуют средства, позволяющие добавить поддержку записи NTFS-разделов. Самым оптимальным подобным средством является модуль ntfs-3g. Модуль входит в состав Ubuntu.

Смонтировать NTFS-раздел с использованием ntfs-3g нужно так:

# mount — t ntfs-3g <раздел> <точка_монтирования>

Понятно, что вам придется указать ваш раздел и вашу точку монтирования. Если требуется обеспечить автоматическое монтирование NTFS-раздела, то в /etc/fstab следует добавить запись, подобную этой:

<раздел> <точка_монтирования> ntfs-3g defaults,nls=utf8,umask=007,gid=46

У модуля ntfs-3g все равно есть ограничения — например, вы не можете изменять сжатые файлы (хотя можете их читать), а также читать зашифрованные файлы.

Если вам не удается смонтировать NTFS-раздел с помощью модуля ntfs-3g, то, вероятнее всего, этот раздел был неправильно размонтирован (например, работа Windows не была завершена корректно). Тогда для монтирования раздела нужно использовать опцию — o force, например:

sudo mount — t ntfs-3g /dev/sdb1 /media/usb — o force

Форма входа

Советы