2. Доступ к дисководам


2.1 Где мои диски?

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

Короче, не ищите дисков, доступ к их содержимому осуществляется через поддиректории вашего единственного дерева каталогов. По умолчанию съемные диски (дискетки, диски CD-rom и т.д.) не подключаются к файловой системе автоматически - их надо монтировать. Более подробно эта процедура описана далее. Вы должны размонтировать ваши диски (дискетки, CD-ROM), прежде чем вынуть их.

2.2 Как мне получить доступ к CDROM?

Смонтируйте его. С привилегиями суперпользователя вы можете подмонтировать CDROM с помощью следующей команды:

mount -t auto /dev/cdrom /mnt/cdrom

Это может не сработать. Команду следует уточнить. Ниже объясняется как работает эта команда.

Команда дает сигнал операционной системе, чтобы подмонтировать новую файловую систему, автоматически определив ее тип (ключ "-t auto"). Монтируется дисковод CD-rom (устройство "/dev/cdrom") в директорию /mnt/cdrom. Эта директория должна существовать и быть пустой, если ее нет - просто создайте ее с помощью команды:

mkdir /mnt/cdrom

Если опять ничего не получится, проверьте существует ли устройство /dev/cdrom (каталог /dev). Если его нет, то где же ваш CDROM? Существует вероятность, что он "скрывается" под именем /dev/hdb, если у вас IDE CDROM. Вы можете использовать /dev/hdb вместо /dev/cdrom.

В любом случае следует иметь устройство /dev/cdrom, потому что некоторые программы предполагают его существование. Если у вас его нет, то вы можете создать символическую ссылку следующим образом:

ln -s /dev/hdb /dev/cdrom

Чтобы размонтировать диск, следует выйти из директории /mnt/cdrom и как суперпользователь набрать команду:

umount /dev/cdrom

Заметьте, что ваш CDROM может отказаться "отдать" диск если вы его не размонтируете.

2.3 Как мне подмонтировать флоппи или zip дисковод, dos раздел или сетевой диск?

Очень похоже на то, как это делается с CDROM (смотрите предыдущий вопрос). То есть, вы можете подмонтировать свою дискетку командой:

mount -t auto /dev/fd0 /mnt/floppy

Опять же удостоверьтесь, что директория /mnt/floppy существует и свободна.

Чтобы размонтировать дискету (Вы должны сделать это перед тем как вытащить ее!) наберите:

umount /mnt/floppy

Я монтирую внешний zip дисковод через параллельный порт (эмуляция scsi) с помощью команды:

mount -t vfat /dev/sda4 /mnt/zipdrive

Опция "-t vfat" используется, потому что zip диски приходят уже отформатированные с vfat файловой системой - Windows95 файловая система с поддержкой длинных имен. Вы не сможете вытащить диск до тех пор, пока не размонтируете его.

Я использую систему с загрузкой Linux или Windows по выбору. Я получаю доступ к файлам на разделе Dos/Windows после выполнения следующей команды:

mount -t vfat /dev/hda1 /mnt/dosdrive

Опять же, вам следует уточнить параметры этой команды в зависимости от того на каком разделе находится Dos/Windows файловая система.

Для монтирования удаленной файловой системы, такой как NFS (network file system), проверьте что на вашем компьютере работает NFS сервис (воспользуйтесь программой setup). Работа с NFS дисками требует разрешения со стороны другого компьютера - "хозяина дисков". Для настройки разрешения на доступ запустите как root программу:

netconf

Если вы предпочитаете сделать это вручную, то вам надо отредактировать файл /etc/exports. Мой /etc/exports выглядит следующим образом:

/usr hacker(ro) mars(ro)
/home hacker(rw) mars(rw)
/mnt hacker(rw) mars(rw)
Это дает возможность машинам hacker и mars монтировать директорию /usr только для чтения (ro - read-only), а директории /home и /mnt для чтения и записи (rw - read-write).

Если вы правильно настроили nfs, то вы сможете подмонтировать сетевую директорию с помощью команды:

mount -t nfs mars:/home /mnt/mars_home

Вы так же можете подмонтировать директорию, которая доступна вам по ftp (как суперпользователь) с помощь команды:

mount -o ro,soft ftp.kernel.org:/pub/linux/mnt/kernel_ftp

Префикс "-o" означает, что за ним идут специальные опции, "ftp.kernel.org" - имя сервера, " /pub/linux" - удаленная директория, "/mnt/kernel_ftp" - локальная директория, которая должна существовать и быть свободна.

Краткий обзор.
Удаленная Dos/Windows файловая система может быть подмонтирована к Linux машине с помощью протокола Samba (если Samba установлен). Как root наберите примерно такую команду:

smbmount mars/c/windows /mnt/mars_windows

Чтобы это сработало, следует дать разрешение для доступа к экспортируемым директориям на windows машинах. Чтобы сделать это - разрешите доступ к файлам (filesharing) через "панель управления - сеть" ("control panel-network"), затем запустите Проводник Windows, кликните правой кнопкой на директории, которую вы хотите открыть для доступа, и дайте разрешение на доступ к ней. Если у вас возникнут проблемы воспользуйтесь командой:

man smbmout

2.4 Существует ли быстрый способ доступа к файлам на DOS/Windows дискетке?

Если вы воспользуетесь пакетом утилит mtools, то вам не придется монтировать съемные диски. Например: чтобы быстро посмотреть содержимое корневой директории DOS дискетки следует воспользоваться командой mdir:

mdir a:\

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

mcopy a:\autoexec.bat .

Чтобы получить информацию о всех утилитах пакета mtools, достаточно набрать команду

mtools .

2.5 Диски монтируются когда я имею права суперпользователя. Может ли обычный пользователь сделать то же?

Для этого вы должны подредактировать файл /etc/fstab (как суперпользователь). Для этой цели я пользуюсь редактором pico:

pico /etc/fstab

Ниже приведена структура моего /etc/fstab:

/dev/hda2 / ext2 defaults 1 1
/dev/hdc3 /home ext2 defaults 1 2
/dev/hdc2 /usr ext2 defaults 1 2
/dev/hdc4 swap swap defaults 0 0
/dev/fd0 /mnt/floppy auto noauto,rw,user 0 0
/dev/cdrom /mnt/cdrom auto noauto,ro,user 0 0
/dev/sda4 /mnt/zipdrive vfat noauto,rw,user 0 0
/dev/hda1 /mnt/dosdrive vfat noauto,rw,user 0 0
none /proc proc defaults 0 0
hacker:/mnt/cdrom /mnt/hacker_cdrom nfs ro,noauto,user 0 0
hacker:/mnt/floppy /mnt/hacker_floppy nfs rw,noauto,user 0 0
hacker:/home /mnt/hacker_home nfs rw,noauto,user 0 0
hacker:/usr /mnt/hacker_usr nfs ro,noauto,user 0 0
Первое поле - это устройство. Второе - точка монтирования (директория куда должно монтироваться устройство). Третье поле - тип файловой системы. Четвертое поле - опции, говорящие системе как монтировать устройство: "auto" - монтировать систему при загрузке, "rw" - монтировать для чтения и записи, "ro" - монтировать только для чтения, "user" - пользователи тоже имеют право смонтировать устройство. Если вам любопытно для чего используются 5ое и 6ое поле - исследуйте man fstab. Строки в моем /etc/fstab, в которых встречается сочетание hacker, описывают правила монтирования удаленных файловых систем с компьютера "hacker".

Если пользователям разрешено монтировать cdrom (опция "user"), то он/она сможет сделать это с помощью команды:

mount /mnt/cdrom

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

2.6 Команда монтирования дисков слишком длина и сложна - как мне упростить себе жизнь?

Для создания псевдонимов (альтернативных вызовов команд), я подредактировал файл /etc/bashrc (редактируемый файл зависит от используемой пользователями оболочки - shell). Псевдонимы, определенные в этом файле становятся доступны всем пользователям. Если вы хотите создать псевдонимы, которые специфичны для конкретного пользователя, то отредактируйте файл .bashrc в "домашней" директории этого пользователя. Та часть моего /etc/bashrc, которая относится к определению псевдонимов выглядит следующим образом:
alias cdrom="mount -v /mnt/cdrom"
alias ucdrom="umount -v /mnt/cdrom"
alias dosdrive="mount -v /mnt/dosdrive"
alias udosdrive="umount -v /mnt/dosdrive"
alias zipdrive="mount -v /mnt/zipdrive"
alias uzipdrive="umount -v /mnt/zipdrive"
alias floppy="mount -v /mnt/floppy"
alias ufloppy="umount -v /mnt/floppy"
Опция "-v" добавлена для того, чтобы Linux подробно описывал что он делает в процессе монтирования дисков. Теперь пользователь может подсоединить дискетку, используя простую команду:

floppy

и он/она могут отсоединить дискетку с помощью команды

ufloppy

2.7 Могу ли я сделать автоматическое монтирование дисков?

Да, можете. Диск автоматически подсоединяется тогда, когда вы к нему обращаетесь, и отсоединяется, когда вы прекращаете с ним работать.

Для начала запустите программу "setup". Выберете меню "netsysv". Убедитесь что сервис "autofs" включен.

Сконфигурируйте автоматическое подсоединение дисков путем редактирования файлов /etc/auto.master и /etc/auto.misc, то есть:

pico /etc/auto.master

Мой /etc/auto.master выглядит следующим образом:

/misc /etc/auto.misc --timeout 1
Здесь сказано, что мое автоматически подсоединяемое устройство должно монтироваться в директорию /misc (которая должна существовать и быть свободной). Через секунду, после того как я закончу работу с устройством (выйду из директории), оно отсоединится (опция --timeout 1). Если этого времени вам покажется недостаточно - измените его. Описание монтируемых устройств идет в файле /etc/auto.misc. Ниже приведен мой /etc/auto.misc:
kernel -ro,soft,intr ftp.kernel.org:/pub/linux
cdrom -fstype=auto,ro :/dev/cdrom
floppy -fstype=auto,rw :/dev/fd0
zipdrive -fstype=vfat,rw :/dev/sda4
dosdrive -fstype=vfat,ro :/dev/hda1
hacker_cdrom -fstype=nfs,ro hacker:/mnt/cdrom
hacker_floppy -fstype=nfs,rw hacker:/mnt/floppy
hacker_usr -fstype=nfs,ro hacker:/usr
Первое поле это "ключ" - это имя поддиректории в /misc куда смонтируется устройство. Эта поддиректория НЕ должна существовать. Она остается невидимой, пока я ей не воспользуюсь, но я могу перейти в нее (cd /misc/"ключ") - этим я активизирую систему, чтобы она подсоединила это устройство. Строки с буквенным сочетанием hacker в файле auto.misc относятся к cdrom и floppy дисководам, расположенных на другом компьютере с именем hacker.

Я установил для автоматического подсоединения устройств директорию /misc, и поэтому я могу подсоединить файловые системы вручную в директорию /mnt.


_ Выход _