Настройка и работа в Linux

         

Montfs


 
То, чего нет в LSK-help

Описываемые тут команды не присутствут в help по очень простой причине - они относятся к области системного администрирования и требуют некоторого введения для тех, кто ранее с UNIX дела не имел.

  • Управление файловыми системами. mount/umount
  • Поднятие сетевых интерфейсов. ifconfig, route, netstat.
  • Управление файловыми системами. 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).

    Монтирование и размонтирование требуют привилегий суперпользователя (по понятным причинам), но как быть простому пользователю, если ему нужно нечто на дискете? Есть несколько возможностей:


    • Сообщить пользователю пароль для root. Понятно, что это не вариант.
    • Использовать mtools, которые позволят работать с MS-DOS без монтирования диска.
    • Перечислить такие разделы в /etc/fstab с соответствующими опциями.


    Например, так:
    /dev/fd0 /floppy msdos user,noauto 0 0

    Здесь колонки:


    • файл устройства для монтирования,
    • каталог для того же,
    • тип файловой системы,
    • опции,
    • частота backup,
    • и порядок прохода для fsck; 0 - не делать проверки при запуске.


    noauto говорит, что при выполнении mount с ключом -a (auto) устройство реально смонтирвано не будет, но ВСЕГДА и ВСЕ смогут сделать это: $ mount /floppy $

    Если нужен доступ к разным типам файловых систем, можно сделать так: /dev/fd0 /dosfloppy msdos user,noauto 0 0 /dev/fd0 /ext2floppy ext2 user,noauto 0 0


    Содержание раздела