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

Сергей Кайдалов aka serg_sk
при участии коллективного разума посетителей Линуксфорума

2005-08-30

Как примонтировать раздел с fat32?

Шаг 1

Первым делом надо убедиться, что ядро собрано с поддержкой vfat. Давайте посмотрим, так ли это? Смотрим в /usr/src/linux/.config и, если обнаруживаем там следующие строки:

# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_FAT_DEFAULT_CODEPAGE=866
CONFIG_FAT_DEFAULT_IOCHARSET="koi8-r"

то переходим к следующему шагу, если в этих строках вместо

y
(yes - то есть включено в ядро) или
m
(module - то есть собрано как подключаемый модуль) стоит
n
(no - выключена поддержка), то тогда вам надо пересобрать ядро, но в этой статье я это описывать не буду.

Внимание! Если у вас ядро поставлено из пакета, а не из исходников, то по умолчанию ядро (почти наверняка) собрано с поддержкой vfat.

Шаг 2

Если вы собрали ядро с поддержкой fat-разделов как модуль, то вам необходимо подгрузить (от лица суперпользователя) модули:

$ modprobe fat; modprobe vfat

Если вы включили поддержку fat прямо в ядро, то этот шаг пропускается.

Шаг 3

Давайте определим, на каком разделе находится Windows:

$ /sbin/fdisk -l

Disk /dev/hda: 20.0 GB, 20060135424 bytes
255 heads, 63 sectors/track, 2438 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device		Boot	Start	End	Blocks		Id	System
/dev/hda1	*	1	732	5879758+	b  	W95 FAT32
....

Вы получите примерно тоже - правда, если диск в машине не один, имя его устройства нужно задать как аргумент команды mount в явном виде (например, /dev/hdb). У меня vat-раздел находится на /dev/hda1.

Шаг 4

Создадим каталог /mnt/win (например), в который и будет монтироваться fat-раздел.

$ mkdir /mnt/win

Теперь давайте отредактируем файл /etc/fstab и добавим в него такую строку:

/dev/hda1 /mnt/win vfat  iocharset=koi8-r,codepage=866,rw,umask=000,showexec,quiet 0 0

Где:

  • /dev/hda1 - имя файла устройства (дискового раздела), несущего fat,
  • /mnt/win - точка монтирования(то есть каталог, куда попадет содержимое fat-раздела после монтирования),
  • iocharset=koi8-r - локаль вашей системы,
  • codepage=866 кодировка windows-раздела,
  • umask=000 - т.н. маска доступа, в приведенной форме делает fat- раздел доступным всем юзерам системы для чтения, записи и исполнения,
  • showexec - нужна, чтобы как исполняемые отображались только файлы с расширениями com, exe, bat; если её не указать, файлы будут отображаться в соответствие со значнеиями umask (в приведенном выше примере - все как исполняемые),
  • quiet - отмена сообщений о невозможности изменения атрибутов файлов при их копировании на fat-раздел (так как fat не хранит информацию о владельце файла и правах доступа, то при попытке записи такой информации будут выдаваться сообщения о невозможности её записать, что не несёт полезной информации, а только мешает).

Как примонтировать разделы с ntfs?

Шаг 1

Первым делом убедитесь, что ядро собрано с поддержкой чтения ntfs. Опять смотрим в уже знакомый конфиг, но на сей раз ищем такие строки:

# CONFIG_NTFS_FS
...

У меня просто ntfs поддержки нету, но у вас эта секция должна быть. Если поддержка ntfs не включена, то вам надо будет пересобрать ядро.

Шаг 2

Опять смотрим на вывод команды:

/sbin/fdisk /dev/hda -l

И ищем раздел с ntfs. Далее снова правим /etc/fstab и дописываем следующее:

/dev/hda# /mnt/win ntfs dmask=0,fmask=0111,nls=koi8-r,ro 0 0

Это пример для koi8-r локали, в /dev/hda# символ # нужно заменить на номер раздела с ntfs. Если у вас utf8 локаль, то дописываем следующее:

/dev/hdaх /mnt/win ntfs dmask=0,fmask=0111,nls=utf8,ro 0 0

Все опции имеют аналогичные действия. Маленькая заметка: в новых ядрах лучше использовать nls вместо iocharset.