Если ядро 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), который вы скорее всего открыли на другом рабочем столе и просто забыли о нём. Найдите это приложение, закройте его и отмонтируйте раздел снова - теперь проблема должна быть решена.