Доступ к разделам FAT32 и NTFS из Linux


Linux установлен и теперь наша задача получить доступ к разделам Windows 2000 или XP.

Здесь следует вспомнить вспомнить номенклатуру дисковых разделов. Все устройства в linux представлены как файлы в специальном каталоге ‘/dev’.

Название файла устройства, подключенного к контроллеру IDE, начинается с hd_


Так первое устройство (master) на первом IDE канале – hda

второе устройство (slave) на первом IDE канале – hdb

первое устройство (master) на втором IDE канале – hdc

второе устройство (slave) на втором IDE канале – hdd


В качестве устройств могут выступать: винчестер, CD-ROM, CD-R/RW, DVD-ROM. Так как винчестер может быть еще разделен на тома (партиции), то к обозначению добавляется цифра начиная с 1. Цифрами от 1 до 4 обозначаются основные тома (primary), а от 5 и далее – логические тома (logical) в расширенном (extended) разделе.


Primary master








hda1




hda5

hda6

hda7

hda8











ntfs


extended


fat32


linux


linux swap


Наиболее часто применяемая схема разметки диска – один основной раздел (hda1) плюс расширенный (hda2), в котором как в матрешке помещаются логические разделы (hda5, hda6, и т.д.). Из-за ограничений, накладываемых форматом MBR (master boot record), на винчестере не может быть более четырех основных разделов. А при наличии расширенного раздела – не более трех. Разумеется, разметка может быть иной – разделов может быть больше или меньше, а диск можно подключить не только как primary master. В каждом конкретном случае обозначение разделов будет различным.


Список всех разделов на диске /dev/hda можно получить с помощью программы управления разделами fdisk (разумеется линуксового). Все действия производим залогинившись суперпользователем.

В командной строке набираем:


[root@localhost root]# /sbin/fdisk /dev/hda


в ответ на приглашение fdisk вводим p (латинская) для просмотра списка разделов, для выхода из fdisk набираем q (quit).


Подключение (монтирование) раздела в структуру каталогов linux можно осуществить вручную из командной строки, либо сделать этот процесс автоматическим, добавив соответствующую запись в конфигурационный файл ‘/etc/fstab’. Второй способ предпочтительней т.к. дает возможность монтирования простым пользователем, автомонтирование при загрузке, а также сокращает количество символов в команде монтирования.


Прежде всего, следует определить точки монтирования т.е. каталоги (папки) через которые будет доступно содержимое разделов c fat32 и ntfs. Для монтирования неродных файловых систем существует специальный каталог ‘/mnt’. В нем создаются пустые каталоги для подключения разделов. Хотя ничто не мешает создать точки монтирования и в других местах, настоятельно рекомендуется использовать для этого /mnt.


Создаем каталоги, назовем их для наглядности fat и ntfs. Можно создавать из текстовой консоли с помощью команды mkdir (make directory) или в графическом режиме любым другим доступным способом (на виндовый манер из контекстного меню Gnome или KDE).


[root@localhost root]# mkdir /mnt/fat

[root@localhost root]# mkdir /mnt/ntfs


Затем нужно отредактировать файл ‘/etc/fstab’, добавив в него новые строчки для разделов к которым хотим получить доступ. Делать это проще всего каком-либо текстовом редакторе, например во встроенном в Midnight Commander.

Для этого в консоле набираем:


[root@localhost root]# mc


в появившихся панелях файлового менеджера находим нужный файл и правим вызванным по F4 редактором.

Следует быть осторожным при редактировании этого файла. Если испортить его содержимое система может перестать загружаться.

Особенностью всех конфигурационных файлов в linux, является то, что они обрабатываются последовательно начиная с первой строчки. И если имеется ошибка в строке (опечатка, неправильная опция), исполнение данного файла будет остановлено на месте ошибки. Особенно это важно при загрузке. Должна соблюдаться логическая последовательность строк. Нельзя вставлять строки для монтирования других разделов перед системными.

Поэтому наши строки вписываем в конец fstab. И искусственно делаем пустую завершающую строчку если ее нет (требование всех конфигурационных файлов).

Примеры строк показаны ниже. Опции монтирования записываются именно так – разделенные запятой без пробела. Там, где он необходим, можно пользоваться табуляцией – так удобнее и проще не ошибиться.


/etc/fstab

устройство

каталог

тип фс

опции монтирования

dump

pass

/dev/hda1

/mnt/ntfs

ntfs

ro,auto,user,iocharset=koi8-r,umask=0

0

0

/dev/hda5

/mnt/fat

vfat

rw,auto,user,iocharset=koi8-r,codepage=866,umask=0

0

0


Благодаря опции auto после перезагрузки содержимое дисков hda1 и hda5 будет доступно в каталогах /mnt/ntfs и /mnt/fat соответственно. А можно не дожидаться загрузки и дать команду в консоли:


[user@localhost user]$ mount /dev/hda1

[user@localhost user]$ mount /dev/hda5


Опция ‘user’ дает право давать эти команды обычному пользователю.

Однако отмонтировать смонтированные автоматически при загрузке разделы командой ‘umount’ может только суперпользователь.


Запись в ‘/etc/fstab’ делает необязательным указание в команде mount точки монтирования, типа файловой системы и полного набора опций – команда mount для данных разделов сама "найдет" их в fstab.


Аналогично можно смонтировать CD-образ и получить нечто вроде виртуального CD-ROM. Например, образ, назовем его условно ‘file.iso’, расположен в корне раздела hda5.

Здесь лишь заметим, что если файл образа расположен на монтируемом разделе, то и его запись в fstab должна располагаться после строчки монтирования этого раздела. И между ними не должно быть логического противоречия. Например, нельзя указывать для образа опцию auto, если раздел, на котором он расположен, автоматически не монтируется (опция noauto).


/etc/fstab

устройство

каталог

тип фс

опции монтирования

dump

pass

/mnt/fat/file.iso

/mnt/iso

iso9660

loop,noauto,ro,user

0

0


Полностью файл может выглядеть примерно так:


# /etc/fstab: static file system information.

#

# <file system>

<mount point>

<type>

<options>

<dump>

<pass>

/dev/hda7

none

swap

sw

0

0

/dev/hda6

/

ext3

defaults

0

1

/dev/hda8

/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,owner,ro,iocharset=koi8-r

0

0

/dev/fd0

/mnt/floppy

auto

noauto,owner,iocharset=koi8-r,codepage=866

0

0

/dev/hda1

/mnt/ntfs

ntfs

ro,auto,user,iocharset=koi8-r,umask=0

0

0

/dev/hda5

/mnt/fat

vfat

rw,auto,user,iocharset=koi8-r,codepage=866,umask=0

0

0

/mnt/fat/file.iso

/mnt/iso

iso9660

loop,noauto,ro,user

0

0








Пояснения:

ro – раздел доступен только для чтения (про запись в раздел ntfs лучше сразу забыть);

rw – раздел доступен для чтения и записи;

auto – автоматическое монтирование при загрузке системы;

noauto – опция обратная предыдущей;

user – позволяет непривилегированному пользователю монтировать раздел (как вариант users);

nouser – опция обратная предыдущей (включена по умолчанию);

iocharset – определяет кодировку для отображения имен файлов на языках отличных от латиницы (напр. русский). В зависимости от локали может принимать значения iocharset=cp1251 или iocharset=utf8;

codepage=866 – кодовая страница для имен файлов на русском (специфичная опция для FAT);

umask – маска доступа для пользователей,

loop – необходима чтобы смонтировать файловую систему представленную в виде файла, а не как дисковый раздел.


Конечно, список возможных опций монтирования этим не исчерпывается. Некоторые опции общие для всех типов файловых систем, другие специфичны для конкретного типа. Часть из них подразумевает выполнение других, если последние не были указаны явно. Полный список можно найти на страницах соответствующих манов (man mount, man umount, man fstab).

Hosted by uCoz