CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
26.09.2017

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки :: Файловые системы

Управление дисковыми разделами и сменными дисками в ОС Linux

Все дисковые накопители и их первичные и логические разделы в системе Linux, как и в других вариантах Unix, являются файлами, расположенными в каталоге /dev (в этом каталоге расположены файлы не только дисковых накопителей, но и других устройств). Кстати, обратите внимание, что в *nix-ах разделителем каталогов является символ /, а не \ как в Windows.

Номенклатура накопителей

Флоппи-дисководы в Linux именуются /dev/fd0 и /dev/fd1, что соответствует дисководам A: и B: в терминологии DOS/Windows. Имя устройства, подключенного к интерфейсу IDE/EIDE/ATAPI, строится по следующему правилу:

===============================
| Канал IDE | Первый | Второй |
===============================
| Master    | hda    | hdc    |
| Slave     | hdb    | hdd    |
===============================

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

Обратите внимание - если у Вас единственный винчестер подключен как Slave на втором канале, то это будет /dev/hdd, несмотря на то, что hda, hdb, hdc не заняты.

Жесткие диски SCSI именуются (в порядке подключения к шине) /dev/sda, /dev/sdb и т.д. Обратите внимание - накопители, подключаемые к USB (флэшки, USB-винчестеры...), SATA-диски ОС Linux распознает как SCSI-накопители и именует соответствующим образом.

Дисковые разделы IDE и SCSI накопителей именуются по одному принципу - цифрами после буквенного идентификатора. При этом за первичными разделами (Primary Partition, которых не может быть на физическом диске более четырех) зарезервированы цифры от 1 до 4, т.е. если диск, например IDE Primary Master, разбит на четыре первичных раздела, то они будут именоваться /dev/hda1, /dev/hda2, /dev/hda3, /dev/hda4.

Логические разделы (Volume) внутри расширенного раздела (Extended Partition) получают номера начиная с 5, вне зависимости от количества первичных разделов. Например, если у нас есть диск с двумя первичными разделами (один простой и один расширенный) и расширенный раздел имеет, в свою очередь, 2 логических раздела (такой случай весьма частый, если диск разбивали с помощью средств под Windows), то структура диска будет такой:

/dev/hda1 первичный раздел
/dev/hda2 расширенный первичный раздел
/dev/hda5 логический раздел
/dev/hda6 логический раздел

Сменные накопители типа CD-ROM, будут обозначаться только буквами без цифр (например /dev/hdc).

Нужно отметить, что в ядрах Linux до версии 2.6 запись CD-R и CD-RW с интерфейсом IDE осуществлялась через эмуляцию SCSI. В этом случае привод получит наименование /dev/scd0. Если приводов несколько, то будут еще и /dev/scd1, /dev/scd2 и т.д.

В некоторых дистрибувах (в частности в ASPLinux) для удобства пользователей создается псевдоустройство /dev/cdrom, которое на самом деле является симлинком (symlink, сымволическая ссылка) на соответствующее устройство IDE (/dev/hd...) или эмулированное через SCSI (/dev/scd...). Если устройств несколько, то будет еще и /dev/cdrom1 и т.д. В дальнейшей работе можно пользоваться именно этими псевдоустройствами - уменьшается вероятность ошибки.

Наименования разделов и приводов никак не связаны с типами файловых систем на этих разделах и носителях.

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

Файловые системы (диски - в терминологии DOS/Windows), которые Вы предполагаете использовать в работе, должны быть смонтированы, т.е. включены в иерархию каталогов общей файловой системы, начинающейся с корневого (/) каталога. Делается это командой mount.

Например, у нас есть жесткий диск со следующей структурой:

/dev/hda1 первичный раздел с файловой системой NTSC и ОС Windows XP
/dev/hda2 первичный расширенный раздел
/dev/hda5 логический раздел с FAT32 (дик D: в Windows)
/dev/hda6 SWAP-раздел Linux (создается при установке Linux)
/dev/hda7 логический раздел с файловой системой ext3,
	является корневым (/), с установленной ОС Linux
	(создается при установке Linux)

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

Описываемые далее команды должны выполняться с правами root.

Для начала нужно создать каталог, куда будет монтироваться наш раздел (например, fat32). Для размещения таких каталогов принято использовать каталог /mnt (это необязательно, но лучше придерживаться стандарта). В консоли вводим комнду:

$ mkdir /mnt/fat32

Или в любом файловом менеджере (Midnight Comannder) переходим в /mnt, жмем F7, вводим fat32, нажимаем Enter. Вводим команду:

$ mount /dev/hda5 /mnt/fat32

Смотрим содержимое каталога /mnt/fat32. Из консоли:

$ ls /mnt/fat32

Или переходим в этот каталог в файловом менеджере. И видим, что там содержится все, что было на диске D: в Windows.

В большинстве случаев Linux автоматом определяет тип файловой системы, но если у Вас этого не произошло (невезуха), то можно ввести команду mount с параметром -t тип_ФС. Тип ФС может быть такой:

msdos - FAT16
vfat - FAT32
ntfs - ну понятно
ufs - ФС FreeBSD или OpenBSD
iso9660 - ФС CD-ROM

Их на самом деле больше, но я остальных не знаю:). Тогда наша команда mount приобретет такой вид:

$ mount -t vfat /dev/hda5 /mnt/fat32

Сменный диск, например флоппик, будет монтироваться аналогично:

$ mount /dev/fd0 /mnt/floppy

Каталог /mnt/floppy создается автоматически при установке Linux если в компьютере установлен дисковод (как и каталог /mnt/cdrom).

Если на диске D: в Windows имелись названия каталогов и файлов, содержащие кириллицу, а системная кодировка Linux не CP1251 (обычно используется KOI8-R), то для нормального отображения таких имен надо вводить команду mount так:

$ mount -t vfat -o iocharset=koi8-r,codepage=866 /dev/hda5 /mnt/fat32

-o - означает опции, iocharset=koi8-r - кодировка символов кириллицы в Linux, codepage=866 - кодировка Microsoft для имен файлов с кириллицей.

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

Размонтируем дискету так:

$ umount /mnt/floppy

CD-ROM

$ umount /mnt/cdrom

В любой момент можно узнать, какие системы смонтированы, введя команду:

 
$ mount

Кстати, аудио-CD в монтировании не нуждаются.

Если Вы используете Linux в графическом режиме (X Window), то менеджеры рабочего стола KDE и GNOME автоматически создают пиктограммы на рабочем столе для монтирования и размонтирования Floppy и CD-ROM.

Монтирование постоянно используемых файловых систем

Разделы, на которых располагается сам Linux и часто используемые данные, должны быть доступны постоянно. Их настраивают так, чтобы они монтировались при загрузке системы. Список таких устройств и условия их монтирования находятся в файле /etc/fstab.

Вот для примера листинг моего файла /etc/fstab:

# /etc/fstab: static file system information.
#
#      
/dev/hda6 none swap sw 0 0
/dev/hda7 / ext3 defaults,errors=remount-ro 0 1
/dev/hda8 /var ext3 defaults 0 1
/dev/hda9 /home ext3 defaults 0 1
/dev/hda5 /mnt/common vfat noauto,user,iocharset=koi8-r,codepage=866 0 0
/dev/hdd1 /mnt/mobil vfat noauto,user,iocharset=koi8-r,codepage=866 0 0
/dev/sda1 /mnt/flash vfat noauto,user,iocharset=koi8-r,codepage=866 0 0
proc /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,user,kudzu,ro,iocharset=koi8-r 0 0
/dev/fd0 /mnt/floppy auto noauto,user,kudzu,iocharset=koi8-r,codepage=866 0 0

Строки

/dev/hda6 none swap sw 0 0
/dev/hda7 / ext3 defaults,errors=remount-ro 0 1
/dev/hda8 /var ext3 defaults 0 1
/dev/hda9 /home ext3 defaults 0 1

proc /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
none /dev/pts devpts gid=5,mode=620 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,user,kudzu,ro,iocharset=koi8-r 0 0
/dev/fd0 /mnt/floppy auto noauto,user,kudzu,iocharset=koi8-r,codepage=866 0 0

создал инсталлятор Linux, остальные я добавлял сам. Строки, начинающиеся с #, являются комментариями.

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

Подробнее об опциях. noauto - означает запрет автоматического монтирования (дискеты или CD-ROM может не быть в приводе), user - монтировать и демонтировать файловую систему может любой пользователь (другие возможные значения: owner - монтировать и демонтировать может только владелец данной файловой системы, если ничего не указано - монтировать и демонтировать может только root), kudzu - разрешена утилита автопоиска диска в приводе, iocharset=koi8-r,codepage=866 - уже рассматривали.

Опций, конечно, гораздо больше. Все они мне неизвестны. Если хотите узнать побольше, выполните команду:

$ man fstab

и получите подробнейшее руководство по настройке этого файла. Редактировать этот файл можно в любом текстовом редакторе (vi - консольный, встроенный в Midnight Commander (вызывается по F4), графические Kate, Kedit, Gedit...)

Интересные моменты

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

$ cp /dev/cdrom /home/maks/cdrom.iso

Такая команда скопирует все данные с CD-ROM и создаст его iso-образ в файле cdrom.iso. Потом этот образ можно закатать на болванку консольной или графической утилитой... А можно с ним поступить вот так:

$ mount -t iso9660 -o loop /home/maks/cdrom.iso /mnt/cdrom

Этим мы примонтируем iso-образ и в каталоге /mnt/cdrom увидим содержимое того диска, с которого этот образ был снят. Опция loop показывает, что это не реальное устройство, а файл образа.

Заметьте, все это делалось встроенными средствами операционной системы. Все это есть в любом дистрибутиве Linux. И, идя к товарищу, не нужно тащить с собой диски с инсталляшками различных дополнительных утилит, на случай если у него их нет.

Можно снимать образы разделов жесткого диска для резервирования или переноса на другой диск. В общем много всего...

И вот такой «финт». Задаем команду:

$ dd if=/dev/zero of=/home/maks/proba bs=1024 count=1024

Этим в домашнем каталоге пользователя maks будет создан файл proba (of - output file), «набитый» нулями из фиктивного устройства /dev/zero (if - input file) и размером в 1 Мб (будет отсчитано 1024 блока (count) по 1024 байт (bs)).

А потом возьмем и... отформатируем его (ну, пользователи Windows, как вам - отформатировать файл:) )

$ /sbin/mkfs.ext2 proba

Будет сообщение, что это на самом деле не устройство, но форматирование произойдет и в файле будет создана файловая система ext2 - «родная» для Linux.

Теперь, уже известной командой, примонтируем этот файл:

$ mount -t ext2 -o loop /home/maks/proba /mnt/proba

Мы получили стандартными средствами ОС файл, являющийся виртуальным диском. В него можно писать (и читать) другие файлы. Loop-устройства имеют еще и опции шифрования, так что мы получаем полный аналог Discreet из Нортоновских утилит.

Вот на этой оптимистичной ноте и завершу эту статью...

При написании этой статьи использовались материалы из Руководства администратора ASPLinux, мануалы по командам mount и umount, советы друзей из Сети и собственный опыт.




Комментарии

Страницы комментариев: 1 :: 2 :: следующая

аноним, Fri Jan 4 13:37:24 2008:
> Вчера пол вечера тренировался обращаться к отсутствующей дискете разными вариантами.
> Подключал и отключал флэшку, фотег... Не повисло, винт жив, ФС работает.
> Что я делаю не таг?
Когда писалась статья (взгляните на дату) действительно нужно было быть аккуратным в отмонтировании сменных носителей. Но время идет и сейчас это уже не актуально. Есть такая штука как haldaemon, которая эти ситуации отслеживает (хотя там есть свои глюки)
В.А., Fri Nov 16 08:09:12 2007:
To: Дедушка Фрэйд, пятница, 16 ноября 2007 г. 08:03:11:
>обращаться к отсутствующей дискете разными вариантами.
Подключал и отключал флэшку, фотег... Не повисло, винт жив, ФС работает.<
Это вы так над чем стебётесь?
Дедушка Фрэйд, Fri Nov 16 08:03:11 2007:
Блин...
Вчера пол вечера тренировался обращаться к отсутствующей дискете разными вариантами.
Подключал и отключал флэшку, фотег... Не повисло, винт жив, ФС работает.

Что я делаю не таг?

аноним, четверг, 15 ноября 2007 г. 22:13:52:

Это либо стеб, либо вы батенька виндовый зомби!
аноним, Thu Nov 15 22:13:52 2007:
Гавно ваш линукс! Даже форматировать дискеты не умеет. Сто раз писал в командной строке format: a - и ни фига! Крутотень, блин! А в Windows - как два пальца об асфальт! Жаль потерянного времени на установку .
Аку-Аку, Wed Nov 14 16:23:43 2007:
//Только непонятно про дискетку: если я выну \\дискету и неотмонтирую ее из системы, то уменя \\посыпется весь винт?
что-что
ругнется он нехорошими словами, и все :)
Дедушка Фрэйд, Wed Nov 14 08:27:38 2007:
Клево, особенно последний финт с виртуальным диском.

Только непонятно про дискетку: если я выну дискету и неотмонтирую ее из системы, то уменя посыпется весь винт? Или что имелось ввиду?

Попробовал на Мандриве - жива...
аноним, Tue Nov 13 19:30:29 2007:
для меня статья оказалась информативная
да-а-а, не все еще приобрели телики со стандартом телевещания NTFS и компы с файловой системой NTSC
аноним, Tue Mar 27 07:55:19 2007:
Расскажите-ка поподробнее про файловую систему NTSC (а также, если возможно, про стандарт телевещания NTFS)
аноним, Tue Mar 27 06:35:16 2007:
Расскажите-ка поподробнее про файловую систему NTSC (а также, если возможно, про стандарт телевещания NTFS)
аноним, Thu Feb 15 16:54:24 2007:
Не ставь ASP - разочаруешься!

Страницы комментариев: 1 :: 2 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds