Описываемые тут команды не присутствут в help по очень простой причине - они относятся к области системного администрирования и требуют некоторого введения для тех, кто ранее с UNIX дела не имел.
Управление файловыми системами. mount/umount
Q:
После старта LSK "видит" только тот FAT-раздел, на который она
устанавливалась. Можно ли получить доступ к другим разделам, возможно, не
FAT?
Конечно. Для этого сначала нужно уяснить, как обозначаются разделы винчестера в Linux. Мнемоника может показаться непривычной, но проста и логична. Первый IDE (а можно подключить и SCSI) диск у нас будет hda, второй - hdb и так далее (hdc...). Разделы на винчестере именуются так: основные - это с 1 по 4, расширенные - с 5 (6, 7 и так далее - сколько есть, у меня счет доходит до 11 :-). Причем для основных разделов важно понять, что номер зависит не от числа вообще, а от конкретной позиции в таблице MBR, где имеется место для 4 записей. Например, для MBR такого вида имеем:
+----+------+-----+-----+-----+----+----+----+-------+ |Boot|System|Start|Begin|Begin|End |End |End |Size | |flag| Id | head| sec | cyl |head|sec |cyl |sec | +----+------+-----+-----+-----+----+----+----+-------+ | 0| 6| 1| 1| 0| 9| 17| 549| 93483| hda1 | 80| 83| 0| 1| 567| 9| 17| 868| 51340| hda2 | 0| 0| 0| 0| 0| 0| 0| 0| 0| hda3 | 0| 5| 0| 1| 550| 9| 17| 566| 2890| hda4 +----+------+-----+-----+-----+----+----+----+-------+
Т.е. ни флаг активной партиции, ни тот факт, что третья запись в таблице не заполнена, никак не нарушают нумерацию.
Чтобы посмотреть на свой винчестер глазами Linux, достаточно сказать 'fdisk -l' (по-умолчанию будет показан первый диск, для второго и последующий надо указать параметр /dev/hdb и т.д.)
Для того, чтобы продвинуться дальше, нужно сначала разобраться с очень специальными файлами - файлами устройств, которые находятся в каталоге /dev и про которые сказал нам fdisk (/dev/hda1, ...). Что же в них особенного? Ну, например, команда такого вида отправит файл filename на принтер:
$ cat filename > /dev/lp1 $
Т.е. получается, что каждое доступное устройство присутствует как некий файл в каталоге /dev . Но, если мы туда заглянем, то окажеться, что файлов там что-то очень уж много. Явно больше, чем устройств в самом навороченном компьютере. В чем тут дело? Разобраться нам поможет команда такого вида:
$ ls -l /dev/cua0 crw-rw-rw- 1 root uucp 5, 64 Nov 30 1998 /dev/cua0 $
Значит, это все-таки файл, но первый симол в первой колонке ('c' в crw-rw-rw-) как раз и показывает, что этот файл особенный: для обычных файлов первый символ '-', для каталогов 'd', а вот 'c' говорит системе о том, что cua0 - это символьное устройство (вроде консоли или последовательного порта) типа 5 с номером 64. Для блочных устройств (например, дисковых накопителей) первый символ 'b'.
Таким образом, /dev - это что-то вроде телефонного справочника, в котором против каждой фамилии находятся некие загадочные (для пользователя, не ядра) номера. Сходство тем большее, что часть ядра, которая превращает запрос к устройству с именем, положим, /dev/tty в вызов драйвера консоли, так и называется - коммутатор, где тип устройства определяет выбор драйвера.
Типы устройств пронумерованы, т.е. тип определяет номер строки во внутренней системной таблице установленных драйверов устройств. Номер устройства передается драйверу в качестве параметра, так как в ОС UNIX драйверы спроектированы в расчете на обслуживание нескольких устройств одного типа.
Таким образом, в большом количестве файлов каталога /dev нет ничего странного - как и всякий справочник, он должен быть на все случаи. Если же чего всеж не хватает, то лекарство - mknode, которая создаст файл устройства с требуемыми именем и атрибутами.
Вооружившись такой информацией, мы теперь смело можем воспользоваться командой mount.
Монтирование и размонтирование.
Для того, чтобы можно было использовать раздел на дисковом накопителе, его (точнее, файловую систему, которая расположена на нем) нужно смонтировать. Операция монтирования заключается в следующем: в корневой файловой системе выбирается некоторый существующий каталог, в данном примере - каталог /mnt.
После выполнения монтирования выбранный каталог /mnt становится корневым каталогом добавленной файловой системы. Через этот каталог смонтированная файловая система подсоединяется как поддерево к общему дереву. При этом нет логической разницы между основной и монтированными файловыми системами.
$ mount /dev/hda2 /mnt $
Команда mount требует двух аргументов. Первый - это имя файла устройства, соответствующее разделу, содержащему монтируемую файловую систему. Второй - это каталог, под которым будет смонтирована файловая система (еще это называется "mount point").
"Точка монтирования" (каталог) может быть не пустым, но он обязательно должен существовать. Файлы, которые находились в этом каталоге, никуда не исчезнут, а просто станут недоступны до отключения смонтированной файловой системы командой umount:
$ umount /mnt $Корневая директория монтируемой файловой системы появится вместо старого старого содержимого /mnt.
Linux поддерживает файловые системы многих типов. Как пример, для монтирования MS-DOS дискеты используется следующая команда, где с помощью ключа -t указывается тип файловой системы (хотя современные ядра обычно самостоятельно определяют его, все же бывает нужно уточнить, к примеру, какую разновидность FAT вы имеете ввиду - vfat, umsdos или традиционный fat):
$ mount -t msdos /dev/fd0 /floppy $
Чтобы выяснить, какие файловые системы поддерживаются в данный момент, нужно заглянуть в файл /proc/filesystems:
$ cat /proc/filesystems ext2 msdos vfat nodev proc $
Почему я говорю в "данный момент"? Дело в том, что Linux поддерживает динамически загружаемые (и выгружаемые) драйверы - модули, в том числе и файловых систем. Например, для LSK можно загрузить драйвер NTFS и подключить ее (пока - только на чтение):
$ cd /lib/modules $ insmod ntfs.o $ mount /dev/hda7 -t ntfs /mnt
Если файловая система более не нужна, то она может быть размонтирована :
$ umount /mnt $
Монтирование можно выполнять группой. Для этого служит файл /etc/fstab (описан далее) и ключ -a.
Если монтируется устройство, такое как CD-ROM, то указывается ключ "только для чтения" ( -r).
Монтирование и размонтирование требуют привилегий суперпользователя (по понятным причинам), но как быть простому пользователю, если ему нужно нечто на дискете? Есть несколько возможностей:
Например, так:
/dev/fd0 /floppy msdos user,noauto 0 0
Здесь колонки:
noauto говорит, что при выполнении mount с ключом -a (auto) устройство реально смонтирвано не будет, но ВСЕГДА и ВСЕ смогут сделать это:
$ mount /floppy $
Если нужен доступ к разным типам файловых систем, можно сделать так:
/dev/fd0 /dosfloppy msdos user,noauto 0 0 /dev/fd0 /ext2floppy ext2 user,noauto 0 0