nvbn 29.01.2009 05:29
How-to`s — Монтирование разделов
Рано или поздно пользователи Linux сталкиваются с таким понятием как монтирование разделов и дисков в Linux. Многие, особенно бывшие пользователи Windows, испытывают трудности с монтированием разделов, хотя если задуматься, то всё очень просто и логично. Ниже приводятся описание процесса монтирования в UNIX-like системах и разбор наиболее типичных случаев. И даже если вы окружены графическим интерфейсом, знание консольных команд может очень пригодиться. Кроме того, узнав пару-тройку полезных команд UNIX, приобщитесь к этой чёрной магии и, может быть, начнёте её использовать.Монтирование разделов в Linux - общие слова
Если ядро Linux опознало ваше устройство-носитель данных, то оно должно предоставить какой-то внешний интерфейс пользователю для работы с устройством. Этим интерфейсом является создание файлов-устройств в каталоге /dev
Пример:
Устройствам, подключённым к IDE, будут соответствовать файлы-устройства /dev/hda, /dev/hdb и так далее.
Устройствам типа SCSI, а так же близкие им по духу SATA-устройства и USB-флешки, будут иметь файлы-устройства /dev/sda, /dev/sdb и тому подобное.
Если на диске есть разделы, то цифра в имени файла-устройства будет соответствовать номеру раздела.
Пример:
если на USB-флешке есть два раздела, то первый будет называться /dev/sda1, а второй /dev/sda2
Монтирование разделов = объяснение системе, как добраться до ваших данных и сделать их доступными для использования. Системе нужно объяснить три простые вещи:
какая файловая система на разделе;
какой файл-устройство вам нужно;
куда его подключить для просмотра = точка монтирования;
Каталог, в котором вы будете просматривать содержимое ваших разделов, называется точкой монтирования (mount point). Поэтому нужно объяснить системе - командой или через графический интерфейс - что вы хотите смонтировать, куда и что за файловая система на этом разделе.
В переводе на язык UNIX, это звучит так:
1 |
|
Если нужно часто монтировать одни и те же разделы, занесите их в /etc/fstab - это общесистемный конфиг, в котором указаны все необходимые разделы для монтирования. Редактировать этот файл может не абы кто, а только root. Так что разживитесь рутовыми полномочиями и редактируйте /etc/fstab
Файл /etc/fstab состоит из колонок, разделители между колонками параметров - табуляция (клавиша TAB). Вот пример содержимого файла /etc/fstab:
Формат колонок такой:
Монтируемое устройство (файл-устройство, он же раздел, который вы хотите примонтировать).
Точка монтирования (в какую директорию в файловой системе монтировать, точка монтирования).
Тип монтируемой файловой системы.
Опции монтирования (кодировка языка, необходимость монтирования при старте).
Dump (обычно 0).
Pass (обычно 0).
Важно, чтобы вы вставляли Тab после каждой колонки при редактировании /etc/fstab
Ниже приводятся уточнения для каждого случая файловой системы, но идея монтирования разделов в Linux одна и та же.
1 |
|
прикрутить тип FAT что прикрутить куда это прикрутить
Пишем буквально то, чего хотим: от имени суперпользователя, прикрутить логическую структуру с файловой системой FAT, находящуюся в файле /dev/hda1, к каталогу /home/vasya/tempdir.
После всех операций раздел следует размонтировать, чтобы данные на него записались из памяти - точно так же, как при работе с флешками в Windows. Для этого следует дать команду:
1 |
|
или
1 |
|
где /mnt/XX - точка монтирования. Если ни одно приложение не работает с разделом, то раздел размонтируется отключится и данные на него полностью запишутся. После этого устройство можно безопасно извлечь.
Чтобы посмотреть, что можно смонтировать, и увидеть информацию о разделах, можно воспользоваться командой (запуск от root):
1 |
|
Увидите что-то вроде:
Всё очень просто и логично. Как и многое другое в UNIX.
Предварительные действия перед монтированием
Прежде, чем монтировать разделы, нужно создать точки монтирования. Точки монтирования следует создавать в каталогах /mnt или /media. Для этого даём команду:
1 |
|
или
1 |
|
и даём каталогу права доступа для обычных пользователей:
1 |
|
или
1 |
|
Это позволит считывать и записывать данные не только суперпользователю-руту, но и обычному пользователю. Даже если в системе вы - единственный пользователь. Свою точку монтирования в директории /mnt нужно создать для каждого раздела.
Далее приводятся описания нескольких типичных случаев монтирования разделов и файлов.
Как примонтировать раздел с файловой системой FAT в Linux
Самое главное здесь - кодировка. Замечательная корпорация Microsoft изобрела свою собственную кодировку CP866 для MS DOS, CP1251 для Windows и только в последнее время прозрела до UTF8. Благодарим Microsoft за изобретение велосипеда с треугольными колёсами и приступаем к монтированию.
Однократное монтирование FAT
Временное, однократное монтирование, например, флешки, выглядит в командной строке так:
1 |
|
или
1 |
|
Пример: монтирование типичной флешки выглядит так
1 |
|
То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash
Постоянное монтирование FAT
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
1 |
|
Пример: та же типичная флешка в /etc/fstab смотрится так
1 |
|
То есть монтируем раздел /dev/sda1 типа vfat в точку монтирования /mnt/flash После этого раздел FAT в Linux будет доступен. Отмонтирование по команде
1 |
|
Как правильно говорят в комментариях, iocharset совпадает с текущей локалью - например, iocharset=utf8.
Как примонтировать раздел с файловой системой NTFS в Linux
Кодировка в NTFS нормальная, но здесь нас ждёт другая засада. Замечательная корпорация Microsoft изобрела не просто новый велосипед с треугольными колёсами, а ещё и закрыла его, треугольноколесатого велокактуса, описание. Да так, что пришлось очень долго его взламывать и создавать драйвера обратной разработкой. О сложности проблемы даёт понять описание дефрагментации NTFS, что, как говорится, внушает.
Но с этим надо жить, и это всё монтировать. Монтировать и записывать на NTFS в Linux, тем не менее, возможно, благодаря героическим усилиям ребят, создавших драйвер NTFS-3g. Этот драйвер можно установить командой:
1 |
|
или поискать пакет ntfs-3g в графической оболочке установки программ вашего любимого дистрибутива.
Однократное монтирование NTFS
Временное, однократное монтирование, например, раздела с данными Windows, выглядит так:
1 |
|
или
1 |
|
Пример: монтирование раздела Windows с NTFS разделом выглядит так
1 |
|
То есть монтируем раздел /dev/sda1 типа ntfs-3g в точку монтирования /mnt/flash
Постоянное монтирование NTFS
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
1 |
|
Пример: та же типичная флешка в /etc/fstab смотрится так
1 |
|
То есть монтируем раздел /dev/sda1 типа ntfs-3g в точку монтирования /mnt/windows После этого раздел NTFS в Linux будет доступен. Отмонтирование по команде
1 |
|
Как примонтировать CD/DVD диск в Linux
Всё проще - скорее всего, это уже сделано в вашем дистрибутиве. Тем не менее, привожу это здесь для примера.
Однократное монтирование CD/DVD
Временное, однократное монтирование, например, DVD-диска с данными в Linux, вглядит так:
1 |
|
или
1 |
|
Пример: монтирование DVD-диска с данными выглядит так
1 |
|
То есть монтируем раздел /dev/cdrom типа iso9660 в точку монтирования /mnt/dvd
Постоянное монтирование CD/DVD
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
1 |
|
Пример: та же типичная флешка в /etc/fstab смотрится так
1 |
|
То есть монтируем раздел /dev/cdrom типа iso9660 в точку монтирования /mnt/cdrom После этого оптический диск в Linux будет доступен. Отмонтирование по команде
1 |
|
Как примонтировать ISO-файл или другой файл в Linux
Вы откуда-то скачали ISO-файл и хотите просмотреть его содержимое. Для этого в Windows есть такой костыль под названием Alcohol. В Linux и вообще в UNIX такие костыли не требуются, так как монтирование ISO-образа ничем для системы не отличается от монтирования CD/DVD-диска. Нужно только передать один параметр -o loop чтобы сообщить системе, что монтировать мы собираемся на петлевое устройство (loopback). Если делать это надо много и часто, можно воспользоваться программой GmountISO, описанной тут.
Для монтирования ISO-образа в командной строке даём команду:
1 |
|
или
1 |
|
Пример: монтирование DVD-диска с данными выглядит так
1 |
|
То есть монтируем файл file.iso типа iso9660 в точку монтирования /mnt/dvd на петлевое устройство loop
Точно так же можно монтировать любой CD/DVD образ, а так же файл-образы сжатых\зашифрованных\экзотических файловых систем типа SquashFS. Отмонтирование по команде
1 |
|
Как примонтировать раздел с файловой системой EXT2/EXT3/ReiserFS/XFS/JFS... в Linux
Монтирование нормальных файловых систем проблем не создаёт. Приведу пример только с ext3, остальные файловые системы в Linux монтируются точно так же, только вместо ext3 подставьте буквально: ext2, reiserfs, xfs, jfs в зависимости от вашей файловой системы.
Однократное монтирование
Временное, однократное монтирование, например, флешки, выглядит в командной строке так:
1 |
|
или
1 |
|
Пример: монтирование раздела с данными выглядит так
1 |
|
То есть монтируем раздел /dev/sda1 типа ext3 в точку монтирования /mnt/data
Постоянное монтирование
Если нужно постоянно обращаться к этим разделам, правим /etc/fstab добавляя строку:
1 |
|
Пример: та же типичная флешка в /etc/fstab смотрится так
1 |
|
То есть монтируем раздел /dev/sda1 типа ext3 в точку монтирования /mnt/data После этого раздел EXT3 в Linux будет доступен. Отмонтирование по команде
1 |
|
Что делать, если устройство в Linux не хочет размонтироваться!?
Вы пытаетесь размонтировать раздел с данными (флешка, CD/DVD диск...) и получаете сообщение с ошибкой - устройство занято. Например, при выполнении команды umount /mnt/windows получаете сообщение вида:
1 |
|
Ну и что делать, если раздел в Linux не размонтируется!? Очень просто - посмотреть, какой процесс держит раздел или файл и не даёт отмонтировать его. Дальше либо закрыть это приложение, либо придушить его с помощью команды kill. Даём команду:
1 |
|
Вертикальная черта означает передачу вывода команды lsof программе grep и фильтрации по слову /mnt/windows
После этого вы получите ответ вида:
1 |
$ lsof -n 2>&1 | grep /mnt/windows
|
Стало быть, ваш раздел держит MC (Midnight Commander), который вы скорее всего открыли на другом рабочем столе и просто забыли о нём. Найдите это приложение, закройте его и отмонтируйте раздел снова - теперь проблема должна быть решена.
Оригинал - http://mydebianblog.blogspot.com/2008/09/linux.html
*модифицировано в соответствии с замечанием товарища zb
Статья хороша. Но вот два вопроса у меня:
1.) при монтировании для чтения-записи нтфс раздел в КДЕ по крайней мере при копировании туда чего-нибуь возникает сообщение типа Не удалось изменить права доступа к файлу <INSERT_NAME_HERE>. В чем дело?
2.) как монтировать zfs? дрова нужны?
1.) при монтировании для чтения-записи нтфс раздел в КДЕ по крайней мере при копировании туда чего-нибуь возникает сообщение типа Не удалось изменить права доступа к файлу <INSERT_NAME_HERE>. В чем дело?
2.) как монтировать zfs? дрова нужны?
А у меня как всегда вопрос) правда он только косвенно, но всё же как я понимаю связан с монтированием)
При установке Убунты было сделано три точки монтирования swap, / и /home. Интересны решения двух задач..
1) Более простая..
Удалить из / Убунту и к примеру поставить туда другой дистрибутив так, чтобы после его загрузки все данные, которые находятся в /home остались и спокойно работали в новом дистре? и пользователь соответственно тоже остался..
2) Я правда даже не уверен можно ли это сделать..
Вот к примеру, выполнили первую задачу..а теперь ещё хотим поставить рядом другую nix-подобную ОС..и чтобы она тоже home видела и пользователь там был один и тот же..
Идея как бы в том, чтобы с разными ОС без всякой путаницы мог работать один и тот же пользователь..причём с сохранением своих данных в папке /home/cyrus
При установке Убунты было сделано три точки монтирования swap, / и /home. Интересны решения двух задач..
1) Более простая..
Удалить из / Убунту и к примеру поставить туда другой дистрибутив так, чтобы после его загрузки все данные, которые находятся в /home остались и спокойно работали в новом дистре? и пользователь соответственно тоже остался..
2) Я правда даже не уверен можно ли это сделать..
Вот к примеру, выполнили первую задачу..а теперь ещё хотим поставить рядом другую nix-подобную ОС..и чтобы она тоже home видела и пользователь там был один и тот же..
Идея как бы в том, чтобы с разными ОС без всякой путаницы мог работать один и тот же пользователь..причём с сохранением своих данных в папке /home/cyrus
второе в принципе возможно, но жопы может принести будь здоров. Я вообще использую для личных данных тупо отдельный раздел, чтобы там ежали только мои данные, без системных. И все.
танцы с бубном это конечно хорошо. но в большинстве случаев достаточно просто установить disk manager. http://flomertens.free.fr/disk-manager/index.html
Нужно отличать "танцы с бубном" от стандартных методов работы с операционной системой. Вот я посмотрел описание этого дискманагера и не доверю ему свою систему, ибо я не знаю как именно он делает. А для монтирования на ходу из гуя есть HAL.
Примеры танцев с бубном:
1) "Пусть мой аплинк сцуко поднимет трубку и прикроет меня от DDOS забившей канал udp траффиком",
2) Перегружаем холодным рестартом важный (важно чтобы щас заработал) сервер удаленно 20й раз надеясь что в этот раз у винта/контроллера/чего там еще проснется совесть и он таки начнет определять свои собственные носители.
3) В каком то древнем redhat: grep непредсказуемо для нек-х файлов говорил "binary data" или таки грепал тот-же файл.
А то что сверху описано должен знать каждый.
Примеры танцев с бубном:
1) "Пусть мой аплинк сцуко поднимет трубку и прикроет меня от DDOS забившей канал udp траффиком",
2) Перегружаем холодным рестартом важный (важно чтобы щас заработал) сервер удаленно 20й раз надеясь что в этот раз у винта/контроллера/чего там еще проснется совесть и он таки начнет определять свои собственные носители.
3) В каком то древнем redhat: grep непредсказуемо для нек-х файлов говорил "binary data" или таки грепал тот-же файл.
А то что сверху описано должен знать каждый.
мммммм кстати вот что выдает мне консоль при монтировании образа:
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
В некоторых случаях полезная информация может быть
найдена в syslog - попробуйте dmesg | tail или что-то
в этом роде
any suggestions? WTF?
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
В некоторых случаях полезная информация может быть
найдена в syslog - попробуйте dmesg | tail или что-то
в этом роде
any suggestions? WTF?
lsof -n лучше использовать, - сокеты бывают и не местными
вообще команду эту лучше вот так юзать:
lsof -n 2>&1 | grep /mnt/windows