«А чего дома сидеть?»

Если ядро Linux опознало ваше устройство-носитель данных, то оно должно предоставить какой-то внешний интерфейс пользователю для работы с устройством. Этим интерфейсом является создание файлов-устройств в каталоге /dev

cat /proc/partitions

df -aHT

fdisk -l

 

Пример:

Устройствам, подключённым к IDE, будут соответствовать файлы-устройства /dev/hda, /dev/hdb и так далее.

Устройствам типа SCSI, а так же близкие им по духу SATA-устройства и USB-флешки, будут иметь файлы-устройства /dev/sda, /dev/sdb и тому подобное.

Если на диске есть разделы, то цифра в имени файла-устройства будет соответствовать номеру раздела.

Пример:

если на USB-флешке есть два раздела, то первый будет называться /dev/sda1, а второй /dev/sda2

Монтирование разделов = объяснение системе, как добраться до ваших данных и сделать их доступными для использования. Системе нужно объяснить три простые вещи:

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

какой файл-устройство вам нужно;

куда его подключить для просмотра = точка монтирования;

Каталог, в котором вы будете просматривать содержимое ваших разделов, называется точкой монтирования (mount point). Поэтому нужно объяснить системе - командой или через графический интерфейс - что вы хотите смонтировать, куда и что за файловая система на этом разделе.

В переводе на язык UNIX, это звучит так:

mount -t vfat/dev/hda3/ mnt/storage

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

Файл /etc/fstab состоит из колонок, разделители между колонками параметров - табуляция (клавиша TAB). Вот пример содержимого файла /etc/fstab:

# /etc/fstab: static file system information.

#

/dev/hda2 / reiserfsnotail,noatime 0 1

/dev/hdb /mnt/cdromiso9660ro,user,noauto 0 0

/dev/sda1/mnt/flashvfatiocharset=koi8-r,codepage=866,rw,user,auto 0 0

Формат колонок такой:

Монтируемое устройство (файл-устройство, он же раздел, который вы хотите примонтировать).

Точка монтирования (в какую директорию в файловой системе монтировать, точка монтирования).

Тип монтируемой файловой системы.

Опции монтирования(кодировка языка, необходимость монтирования при старте).

Dump (обычно 0).

Pass (обычно 0).

Важно, чтобы вы вставляли Тab после каждой колонки при редактировании /etc/fstab

Ниже приводятся уточнения для каждого случая файловой системы, но идея монтирования разделов в Linux одна и та же.

mount -t vfat/dev/hda1 /home/vasya/tempdir

прикрутить тип FATчто прикрутить куда это прикрутить

Пишем буквально то, чего хотим: от имени суперпользователя, прикрутить логическую структуру с файловой системой FAT, находящуюся в файле /dev/hda1, к каталогу /home/vasya/tempdir.

После всех операций раздел следует размонтировать, чтобы данные на него записались из памяти - точно так же, как при работе с флешками в Windows. Для этого следует дать команду:

$ umount /mnt/XX

или

$ sudo umount /mnt/XX

где /mnt/XX - точка монтирования. Если ни одно приложение не работает с разделом, то раздел размонтируется отключится и данные на него полностью запишутся. После этого устройство можно безопасно извлечь.

Предварительные действия перед монтированием

Прежде, чем монтировать разделы, нужно создать точки монтирования. Точки монтирования следует создавать в каталогах /mnt или /media. Для этого даём команду:

$ sudo mkdir /mnt/win

или

# mkdir /mnt/win

и даём каталогу права доступа для обычных пользователей:

$ sudo chmod 777 /mnt/win

или

# chmod 777 /mnt/win

Это позволит считывать и записывать данные не только суперпользователю-руту, но и обычному пользователю. Даже если в системе вы - единственный пользователь. Свою точку монтирования в директории /mnt нужно создать для каждого раздела.

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

Как примонтировать раздел с файловой системой FAT в Linux

Самое главное здесь - кодировка. Замечательная корпорация Microsoft изобрела свою собственную кодировку CP866 для MS DOS, CP1251 для Windows и только в последнее время прозрела до UTF8. Благодарим Microsoft за изобретение велосипеда с треугольными колёсами и приступаем к монтированию.

Однократное монтирование FAT

Временное, однократное монтирование, например, флешки, выглядит в командной строке так:

$ sudo mount -t vfat/dev/XX/mnt/YY-o iocharset=utf8,codepage=cp866

или

# mount -t vfat/dev/XX/mnt/YY-o iocharset=utf8,codepage=cp866

Пример: монтирование типичной флешки выглядит так

$ sudo mount -t vfat/dev/sda1/mnt/flash-o iocharset=utf8,codepage=cp866

То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash

Постоянное монтирование FAT 

Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:

/dev/XX/mnt/YYvfatiocharset=utf8,codepage=866,user,rw 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так

/dev/sda1/mnt/flashvfat iocharset=utf8,codepage=866,user,rw 0 0

То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash После этого раздел FAT в Linux будет доступен. Отмонтирование по команде umount /mnt/flash

Как правильно говорят в комментариях, iocharset совпадает с текущей локалью - например, iocharset=utf8.

Как примонтировать раздел с файловой системой NTFS в Linux

Кодировка в NTFS нормальная, но здесь нас ждёт другая засада. Замечательная корпорация Microsoft изобрела не просто новый велосипед с треугольными колёсами, а ещё и закрыла его, треугольноколесатого велокактуса, описание. Да так, что пришлось очень долго его взламывать и создавать драйвера обратной разработкой. О сложности проблемы даёт понять описание дефрагментации NTFS, что, как говорится, внушает.

Но с этим надо жить, и это всё монтировать. Монтировать и записывать на NTFS в Linux, тем не менее, возможно, благодаря героическим усилиям ребят, создавших драйвер NTFS-3g. Этот драйвер можно установить командой:

aptitude install ntfs-3g

или поискать пакет ntfs-3g в графической оболочке установки программ вашего любимого дистрибутива.

Однократное монтирование NTFS

Временное, однократное монтирование, например, раздела с данными Windows, выглядит так:

$ sudo mount -t ntfs-3g/dev/XX/mnt/YY-o umask=0,nls=utf-8

или

# mount -t ntfs-3g/dev/XX/mnt/YY-o umask=0,nls=utf-8

Пример: монтирование раздела Windows с NTFS разделом выглядит так

$ sudo mount -t ntfs-3g/dev/sda1/mnt/flash-o umask=0,nls=utf-8

То есть монтируем раздел /dev/sda1 типа ntfs-3gв точку монтирования /mnt/flash

Постоянное монтированиеNTFS

Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:

/dev/XX/mnt/YYntfs-3gumask=0,nls=utf-8,user,auto,rw 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так

/dev/sda1/mnt/windowsntfs-3gumask=0,nls=utf-8,user,auto,rw 0 0

То есть монтируем раздел /dev/sda1 типа ntfs-3gв точку монтирования /mnt/windows После этого раздел NTFS в Linux будет доступен. Отмонтирование по команде umount /mnt/windows

Как примонтировать CD/DVD диск в Linux

Всё проще - скорее всего, это уже сделано в вашем дистрибутиве. Тем не менее, привожу это здесь для примера.

Однократное монтирование CD/DVD

Временное, однократное монтирование, например, DVD-диска с данными в Linux, вглядит так:

$ sudo mount -t iso9660/dev/XX/mnt/YY

или

# mount -t iso9660/dev/XX/mnt/YY

Пример: монтирование DVD-диска с данными выглядит так

$ sudo mount -t iso9660/dev/cdrom/mnt/dvd

То есть монтируем раздел /dev/cdrom типа iso9660в точку монтирования /mnt/dvd

Постоянное монтированиеCD/DVD

Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:

/dev/XX/mnt/YYiso9660umask=0,nls=utf-8,user,ro 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так

/dev/cdrom/mnt/cdromiso9660umask=0,nls=utf-8,user,ro 0 0

То есть монтируем раздел /dev/cdrom типа iso9660в точку монтирования /mnt/cdrom После этого оптический диск в Linux будет доступен. Отмонтирование по команде umount /mnt/cdrom

Как примонтировать ISO-файл или другой файл в Linux

Вы откуда-то скачали ISO-файл и хотите просмотреть его содержимое. Для этого в Windows есть такой костыль под названием Alcohol. В Linux и вообще в UNIX такие костыли не требуются, так как монтирование ISO-образа ничем для системы не отличается от монтирования CD/DVD-диска. Нужно только передать один параметр -o loop чтобы сообщить системе, что монтировать мы собираемся на петлевое устройство (loopback). Если делать это надо много и часто, можно воспользоваться программой GmountISO, описанной тут.

Для монтирования ISO-образа в командной строке даём команду:

$ sudo mount -t iso9660file.iso/mnt/YY -o loop

или

# mount -t iso9660file.iso/mnt/YY -o loop

Пример: монтирование DVD-диска с данными выглядит так

$ sudo mount -t iso9660file.iso/mnt/dvd -o loop

То есть монтируем файл file.iso типа iso9660в точку монтирования /mnt/dvd на петлевое устройство loop

Точно так же можно монтировать любой CD/DVD образ, а так же файл-образы сжатых\зашифрованных\экзотических файловых систем типа SquashFS. Отмонтирование по команде umount /mnt/dvd

Как примонтировать раздел с файловой системой EXT2/EXT3/ReiserFS/XFS/JFS... в Linux

Монтирование нормальных файловых систем проблем не создаёт. Приведу пример только с ext3, остальные файловые системы в Linux монтируются точно так же, только вместо ext3 подставьте буквально: ext2, reiserfs, xfs, jfs в зависимости от вашей файловой системы.

Однократное монтирование

Временное, однократное монтирование, например, флешки, выглядит в командной строке так:

$ sudo mount -t ext3/dev/XX/mnt/YY

или

# mount -t ext3/dev/XX/mnt/YY

Пример: монтирование раздела с данными выглядит так

$ sudo mount -t ext3/dev/sda1/mnt/data

То есть монтируем раздел /dev/sda1 типа ext3в точку монтирования /mnt/data

Постоянное монтирование 

Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:

/dev/XX/mnt/YYext3user,auto,rw 0 0

Пример: та же типичная флешка в /etc/fstab смотрится так

/dev/sda1/mnt/dataext3user,auto,rw 0 0

То есть монтируем раздел /dev/sda1 типа ext3в точку монтирования /mnt/data После этого раздел EXT3 в Linux будет доступен. Отмонтирование по команде umount /mnt/data

Что делать, если устройство в Linux не хочет размонтироваться!?

Вы пытаетесь размонтировать раздел с данными (флешка, CD/DVD диск...) и получаете сообщение с ошибкой - устройство занято. Например, при выполнении команды umount /mnt/windows получаете сообщение вида:

umount /mnt/windows

umount: /mnt/windows: device is busy

umount: /mnt/windows: device is busy

Ну и что делать, если раздел в Linux не размонтируется!? Очень просто - посмотреть, какой процесс держит раздел или файл и не даёт отмонтировать его. Дальше либо закрыть это приложение, либо придушить его с помощью команды kill. Даём команду:

lsof | grep /mnt/windows

Вертикальная черта означает передачу вывода команды lsof программе grep и фильтрации по слову /mnt/windows

После этого вы получите ответ вида:

$ lsof | grep /mnt/windows

lsof: WARNING: can't stat() reiserfs file system /dev/.static/dev

Output information may be incomplete.

mc 14134 beast cwd DIR 8,1 4096 1 /mnt/windows

Стало быть, ваш раздел держит MC (Midnight Commander), который вы скорее всего открыли на другом рабочем столе и просто забыли о нём. Найдите это приложение, закройте его и отмонтируйте раздел снова - теперь проблема должна быть решена.