Хотя все файлы в системе Linux логически соединены в одно общее дерево, сами файлы размещаются на различных запоминающих устройствах, например на жестких дисках и CD-ROM. Файлы, записанные на запоминающих устройствах, организованы в файловые системы. Дерево каталогов в ОС Linux может охватывать несколько файловых систем, каждая из которых размещена на отдельном устройстве. Сами файлы организованы в единое файловое дерево, вершиной которого является корневой каталог. Несмотря на то что файловая система с корневым каталогом расположена в одном из разделов жесткого диска, всегда существует путь к файлам, расположенным в файловой системе, размещенной на компакт-диске.
Файлы той или иной файловой системы остаются отделенными от дерева каталогов до тех пор, пока вы явно не присоедините их к этому дереву. В каждой файловой системе файлы организованы в отдельное дерево каталогов. Это дерево можно рассматривать как поддерево, которое необходимо присоединить к основному дереву каталогов. Например, на дискете с файлами ОС Linux - свое дерево каталогов. Это поддерево нужно присоединить к основному дереву, расположенному в разделе жесткого диска. Пока это не сделано, доступа к файлам на дискете у вас не будет.
Присоединение файловой системы, расположенной на запоминающем устройстве, к основному дереву каталогов называется монтированном устройства. Монтирование устройства осуществляется командой mount. Для того чтобы получить возможность работать с файлами, записанными на CD-ROM, это устройство нужно сначала смонтировать. Операция монтирования предполагает присоединение дерева каталогов, находящегося на устройстве памяти, к указанному пользователем каталогу. Лишь после этого можно перейти в присоединенный каталог и обращаться к его файлам. Монтировать файловые системы может только привилегированный пользователь, root. Эта задача относится к функциям системного администратора, и обычный пользователь ее выполнять не может. Для того чтобы монтировать файловую систему, нужно войти в систему в качестве привилегированного пользователя. В табл. 7.2 перечислены различные опции команды mount.
Команда mount принимает два аргумента: имя устройства, через которое Linux получает доступ к файловой системе, и каталог в файловой структуре, к которому присоединяется новая файловая система. Точка_монтирования - это каталог, к которому вы хотите присоединить файлы, находящиеся на запоминающем устройстве. Устройство - это специальный файл устройства, с помощью которого система получает доступ к аппаратным устройствам. Команда mount имеет следующий синтаксис:
# mount устройство точка_монтирования
Файлы устройств находятся в каталогах /dev и обычно имеют сокращенные имена, которые заканчиваются номером устройства. Например, fd0 может обозначать первый дисковод гибких дисков, присоединенный к системе. В Linux-системах, работающих на PC, разделы жесткого джка имеют префикс hd, за которым следует буквенный символ, обозначающий этот диск, и номер раздела. Например, hda2 обозначает второй раздел первого жесткого диска. В большинстве случаев с помощью команды man с префиксом можно получить более подробную информацию о таком устройстве. Так, команда man sd выводит страницы руководства с информацией об устройствах SCSI.
Для того чтобы к файловой системе был возможен доступ, она должна быть смонтирована. Даже файловую систему, расположенную в разделе жесткого диска, нужно монтировать командой mount. Следует отметить, однако, что при инсталляции Linux и создании на жестком диске раздела Linux система автоматически конфигурируется на монтирование основных файловых систем при каждом запуске. Для дискет и компакт-дисков такая возможность не предусмотрена, и их придется монтировать явно.
# mount /dev/fd0/mydir
Перед тем как останавливать систему, необходимо демонтировать все смонтированные файловые системы. Основные файловые системы демонтируются автоматически. Если, однако, вы хотите заменить смонтированную файловую систему другой, сначала нужно демонтировать первую явно. Скажем, вы смонтировали файлы, содержавшиеся на дискете, а теперь хотите заменить ее на другую. Для этого нужно сначала демонтировать файловую систему установленной дискеты. Файловая система демонтируется командой umount. В качестве аргументов эта команда использует имя устройства и каталог, в котором оно было смонтировано. Вот синтаксис команды umount:
# umount устройство точка_ыонтирования
В следующем примере демонтируется гибкий диск, смонтированный в каталоге /mydir:
# umount /dev/fd0
Вспомните пример, в котором устройство было смонтировано в каталоге /mydir. Для демонтирования файловой системы вы могли бы использовать имя этого каталога:
# umount /mydir
Для команды umount установлено одно существенное ограничение. Нельзя демонтировать файловую систему, в которой вы работаете в настоящий момент. Если вы перейдете в какой-либо каталог файловой системы и затем попытаетесь демонтировать ее, то получите сообщение об ошибке - вас уведомят о том, что файловая система занята*. Предположим, вы смонтировали компакт-диск OpenLinux в каталог /mnt/cdrom, а затем перешли в этот каталог. Если вы решите поставить новый компакт-диск, то вам сначала придется командой umount демонтировать предыдущий. Эта попытка будет неудачной, потому что в данный момент вы находитесь в каталоге, в котором смонтирована файловая система. Сначала нужно выйти из него, и только после этого демонтировать компакт-диск.
# mount /dev/hdc /mnt/cdrom /mnt/cdrom # umount /mnt/cdrom umount: /dev/hde: device is busy # cd /root # umount /mnt/cdrom
Файловые системы на всех запоминающих устройствах занимают весь выделенный для них объем. Например, файловая система может занимать раздел жесткого диска размером 300 Мбайт. Файлы, инсталлируемые и создаваемые в этой файловой системе, будут занимать лишь часть пространства, а остальная часть будет свободна для новых файлов и каталогов этой системы. Определить, сколько свободного пространства имеется в файловой системе, можно с помощью команды df. Она выдает список всех файловых систем по именам устройств, сообщает их размер и точки монтирования. Команда df - очень надежный способ получить список всех разделов (лучше использовать ее, а не команду fdisk).
$ dt Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 297635 169499 112764 60% / /dev/hdal 205380 182320 23060 89% /mnt/dos /dev/hdc 637986 637986 0 100% /mnt/cdromКоманду df можно использовать и для получения информации о том, к какой файловой системе относится тот или иной каталог. Для этого команду df нужно ввести с именем каталога (для текущего каталога - df .).
$ df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 297635 169499 112764 60% /
Проверка работоспособности файловой системы осуществляется с помощью команды fsck. Аргументом команды является имя устройства, на котором находится файловая система. В следующем примере проверяются дискета и основной раздел жесткого диска.
# feck /dev/fd0 # fsck /dev/hdal
В Linux-системе можно монтировать и компакт-диски. В системе Ореп-Linux каталог /mnt/cdrom зарезервирован для файловых систем на компакт-дисках. Вы увидите строку для этого каталога в файле /etc/fstab. Чтобы смонтировать компакт-диск, нужно лишь ввести команду mount и имя каталога /mnt/cdrom. Имя устройства указывать не надо. После монтирования можно обращаться к компакт-диску через каталог /mnt/cdrom.
# mount /mnt/cdrom
Как и в случае с дискетами, помните, что вы монтируете конкретный компакт-диск, а не дисковод. Нельзя просто вынуть диск и вставить на его место новый. Команда mount присоединила находящиеся на диске файлы к основному дереву каталогов, и система надеется найти их на CD-ROM, установленном в дисководе.
Для того чтобы поменять диски, сначала нужно демонтировать компакт-диск, установленный в дисководе. Затем нужно вставить новый диск и явно смонтировать его.
# umount /mnt/cdrom
Теперь можно вынуть компакт-диск, вставить новый и дать команду mount:
# mount /mnt/cdrom
Если вы хотите смонтировать компакт-диск в другом каталоге, необходимо указать в команде mount имя устройства. Ниже приведен пример, в котором диск, находящийся в дисководе, монтируется в каталоге /mydir. В этом примере для компакт-диска файл устройства имеет имя /dev/hdc.
# mount /dev/hdc /mydir
Имя файла устройства компакт-диска зависит от типа дисковода. Если это IDE, то имя устройства будет иметь тот же префикс, что и раздел жесткого диска IDE, hd. Оно обозначается символом, который отличает его от других IDE-устройств. Например, IDE-дисковод компакт-дисков, подключенный к вспомогательному IDE-порту, может иметь имя hdc. IDE-дисковод, подключенный как подчиненный (slave) к вспомогательному порту, может иметь имя hdd. Фактическое имя будет определено при инсталляции дисковода, как это было при инсталляции Linux-системы. Имена SCSI-дисководов компакт-дисков состоят из других компонентов. Они начинаются с букв sd (сокращение от SCSI drive), за которыми идет специальный символ. Такой дисковод может иметь, например, имя sdb или sda. Имя дисковода было определено при инсталляции системы. Его можно узнать из файла /etc/fstab или с помощью утилиты fstool, запускаемой с рабочего стола пользователя root.
Чтобы поменять диски, нужно демонтировать компакт-диск, вставленный в дисковод. После этого нужно вставить новый диск и явно смонтировать его.
# umount /mydir
Теперь можно вынуть диск и вставить новый. После этого дайте команду у mount:
# mount /dev/hdc /mydir
При монтировании и демонтировании устройств их имена и имена каталогов можно указывать явно, как это делается во всех версиях Linux./ Имя устройства для дисковода гибких дисков - fd0, имя каталога - /dev/ Таким образом, дисковод гибких дисков обозначается как /dev/fd0. Обратите внимание на цифру 0, стоящую после fd. Если дисководов гибких дисков несколько, они будут обозначаться как fdl, fd2 и т д. В принципе, монтировать устройство можно в любой каталог, но в версии Red Hat уже создан удобный каталог для файлов дискет, /mnt/floppy. В следующем призере файлы дискеты монтируется в этот каталог.
# mount /dev/fd0 /mnt/floppy
Помните о том, что вы монтируете не дисковод, а конкретную дискету. Просто вынуть ее и вставить другую нельзя. Команда mount присоединила находящиеся на дискете файлы к основному дереву каталогов, и система надеется найти их на дискете, установленной в дисководе. Вынув одну дискету и вставив другую, вы при попытке доступа к ней получите сообщение об ошибке
Для того чтобы поменять дискету, сначала нужно демонтировать дискету, вставленную в дисковод Затем нужно вставить новую дискету и явно смонтировать ее файлы. Для демонтирования используется команда umount. Обратите внимание: буквы n после первой u в имени команды нет.
# umount /dev/fd0
В операции umount можно указать либо каталог, в котором смонтирован гибкий диск, либо устройство /dev/fd0.
# umount /mnt/floppy
При останове системы производится автоматическое демонтирование всех смонтированных дисков. Явно демонтировать их не нужно.
Перед монтированном новой дискеты ее нужно отформатировать как файловую систему Linux. Не забудьте определить тип файловой системы как ext2 с помощью опции -t ext2. Для форматирования дискеты служит команда mkfs. В качестве аргументов она использует имя устройства и число блоков памяти на дискете (табл. 7.4). При 1000 байтах на блок и количестве блоков 1400 дискета форматируется на 1,44 Мбайт. Вставьте пустую дискету в дисковод и введите команду mkfs с аргументами. В следующем примере дискета форматируется на 1,44 Мбайт:
# mkfs -t ext2 /dev/fd0 1400
Разделы жесткого диска для Linux и MS-DOS можно монтировать с помощью команды mount. Удобнее, однако, монтировать их автоматически с помощью файла /etc/fstab (см. Автоматическое монтирование файловых систем: файл fstab). Те разделы жесткого диска для Linux, которые вы создали во время инсталляции, уже автоматически смонтированы. Для того чтобы смонтировать раздел жесткого диска для Linux, введите команду mount с именем раздела и каталог, в котором вы хотите смонтировать данный раздел. Имя раздела состоит из префикса (hd для IDE-дисков и sd для SCSI-дисков), метки диска и номера раздела. Например, hda2 обозначает второй раздел первого IDE-дискa, a sdbs - третий раздел второго SCSI-дискa. Если необходимо предварительно определить имя раздела, дайте команду df, и она выдаст информацию о разделах жесткого диска. В следующем примере раздел жесткого диска для Linux монтируется на устройстве /dev/hda4 в каталоге /mnt.
# mount -t ext2 /dev/hda4 /mnt
Можно смонтировать и раздел MS-DOS. Здесь также используется команда mount, но нужно указать, что тип данной файловой системы - MS-DOS. Для этого используйте опцию -t и введите тип файловой системы - msdos. В следующем примере пользователь монтирует раздел жесткого диска MS-DOS, /dev/hda1, в файловую структуру ОС Linux в каталоге /mnt/dos. Каталог /mnt/dos - стандартная точка монтирования для файловых систем MS-DOS, но, в принципе, их можно монтировать в любом каталоге. Проверьте, создан ли уже этот каталог.
# mount -t msdos /dev/hda1 /mnt/dos
Если вы хотите включить в файловую структуру новый раздел, вначале нужно создать этот раздел с помощью команды fdisk или команды cfdisk, а затем отформатировать его посредством команды mkfs. После этого раздел можно монтировать. Для начала введите в командной строке fdisk или cfdisk. Вы войдете в интерактивную программу создания раздела Linux. Использовать программы fdisk и cfdisk следует очень осторожно, так как они могут привести к уничтожению всего содержимого жесткого диска.
Команда fdisk работает во многом так же, как в процессе инсталляции системы. Команда n создает новый раздел, а команда t позволяет установить тип раздела равным 83, т.е. тип Linux.
Разделы жесткого диска именуются буквами hd, буквой, обозначающей жесткий диск, и номером раздела. Они могут относиться к любой операционной системе - не только Linux, но и MS-DOS, OS/2 и Windows NT. Первый созданный раздел получает имя hda1, т.е. первый раздел на первом жестком диске, а. Следующий раздел получает имя hda2. Если есть другой дисковод, то его первый раздел получит имя hdb1.
Создав раздел жесткого диска, нужно отформатировать его. Для этого служит команда mkfs с именем раздела. Разделу жесткого диска соответствует файл устройства, находящийся в каталоге /dev. В команде mkfs необходимо указать полное путевое имя файла устройства. Например, новый раздел на первом жестком диске будет иметь имя /dev/hda5. В следующем примере команда mkfs приводит к форматированию этого раздела.
# mkfs -t ext2 /dev/hda5
Теперь можно монтировать новый раздел, присоединяя его тем самым к файловой структуре.
Сетевая файловая система (Network File System, NFS) позволяет монтировать файловую систему с удаленного компьютера так, как будто она локальная и находится в вашей системе. После такого монтирования вы можете непосредственно обращаться к файлам этой удаленной файловой системы. Преимущество состоит в том, что различные компьютеры сети могут получать прямой доступ к одним и тем же файлам без необходимости создания их копий. Существует только один экземпляр файла, находящийся в удаленной файловой системе, и к нему может обращаться любой компьютер.
Система NFS работает в сети TCP/IP. Удаленный компьютер, на котором находится файловая система, предоставляет ее другим машинами сети. Это достигается за счет экспорта файловой системы, для чего на удаленном компьютере следует добавить соответствующие строки в файл конфигурации NFS (его имя - /etc/exports), а также запустить два процесса-демона, обеспечивающих доступ к удаленному компьютеру (это программы rpc.mountd и rpc.nfsd). В каждой строке файла /etc/exports указывается экспортируемая система и сетевые компьютеры, которые имеют право доступа к ней. Для файловой системы указывается точка монтирования - каталог, в который она монтируется. Затем следует список компьютеров, имеющих к ней доступ. За каждым именем может следовать разделенный запятыми список опций мон-тирования, взятый в круглые скобки. Например, одному компьютеру можно предоставить доступ только для чтения, другому - для чтения и записи и т.д. Если указаны только опции, они распространяются на всех. Перечень опций монтирования приведен в табл.7.8. Ниже приведены примеры записей файла /etc/exports. К файловой системе, смонтированной в каталоге /pub (это имя обычно используется для общедоступного каталога), всем компьютерам предоставляется доступ только для чтения без проверки прав доступа. Компьютеру ant.trek.com предоставляется доступ для чтения и записи к файловой системе, смонтированной в каталоге /home/foodstuff. Следующая запись предоставляет компьютеру biitterny.trek.com доступ к компакт-диску. Последняя запись запрещает всем компьютерам доступ к каталогу /home/ richlp.
/etc/exports /pub (ro,insecure,all_squash) /home/foodstuff ant.trek.com(rw) /mnt/cdrom butterfly.trck.com(ro) /home/richip (noaccess)
Прежде чем начать пользоваться удаленной файловой системой, ее нужно смонтировать на локальном компьютере. Удаленную файловую систему можно смонтировать, либо сделав соответствующую запись в файле /etc/fetab, либо явно командой mount. В строке, описывающей сетевую файловую систему, в поле filesystemtype файла /etc/fetab тип файловой системы должен быть определен как NFS. Имя сетевой файловой системы состоит из имени хост-компьютера, на котором она расположена, и путевого имени каталога, в котором она находится. Эти имена разделяются двоеточием. Например, имя rose.berkeley.edu:/ home/project относится к файловой системе, смонтированной в каталоге /home/ project на компьютере rose.berkeley.edu.
Существует несколько специальных опций монтирования NFS, которые можно указать в файле /etc/fstab. Допускается, в частности, указание размера передаваемых и принимаемых дейтаграмм, а также периода, в течение которого компьютер будет ждать ответа от удаленной системы. Можно указать и режим монтирования файловой системы - hard или soft. Если система смонтирована в режиме hard, то в случае, когда удаленная система не отвечает, ваш компьютер будет непрерывно пытаться установить соединение с нею. При монтировании в режиме soft компьютер прекращает попытки и выдает сообщение об ошибке. По умолчанию осуществляется монтирование в режиме hard. Полный перечень опций монтирования NFS со стороны клиента содержится на man-странице, относящейся к команде mount, и в табл.7.9. Они отличаются от опций монтирования NFS на стороне сервера.
Ниже приведен пример строки файла /etc/fstab для сетевой файловой системы. Удаленная система - ant.trek.com, а файловая система смонтирована в каталоге /home/projects. В локальной системе эту файловую систему необходимо смонтировать в каталоге /home/richlp. Тип системы - NFS. Опция timeo указывает на то, что локальная система будет ожидать ответа в течение 20 десятых секунды, т.е. 2 секунды.
ant.trek.com:/home/projects /home/richlp nfs timeo=-20
Файловую систему NFS можно смонтировать явно командой mount с опцией -t nfs. Предыдущая операция выполняется следующей командой:
t mount -t nfs -о timeo=20 aut.trek.com:/home/projects /home/richlp
Вводя в Linux-систему новый раздел жесткого диска, пользователь, конечно, хотел бы, чтобы он автоматически монтировался при запуске и демонтировался при останове. В противном случае этот раздел придется при каждой загрузке и каждом останове системы монтировать и демонтировать явно. Для того чтобы ОС/ Linux автоматически монтировала файловую систему, существующую в новом разделе жесткого диска, нужно добавить ее имя в файл fstab. Это можно сделать вручную либо с помощью команды fstool. Файл fstab расположен в каталоге /etc. В нем перечислены файловые системы, которые монтируются командой mount с опцией -а. Эта команда находится в файле /etc/rc.d/rc.boot. Команды данного файла выполняют операции по инициализации системы. Они выполняются при каждой загрузке системы. При останове системы выполняется команда umount -а, которая демонтирует все файловые системы, перечисленные в файле fstab. Команда umount -а находится в файле /etc/rc.d/init/halt, который содержит команды, выполняемые при каждом останове системы. Таким образом, все файловые системы, которые вы указываете в файле /etc/fstab, автоматически монтируются при запуске системы и демонтируются при ее закрытии. В других системах, например Redhat, команда mount -а может находиться в файле /etc/rc.d/rc.sysinit.
Элемент файла fstab содержит несколько полей, разделенных пробелами или знаками табуляции. Первое поле - имя монтируемой файловой системы. Оно обычно начинается с /dev, например /dev/hda3, - третий раздел жесткого диска. Следующее поле - каталог в файловой структуре, к которому вы хотите присоединить файловую систему, находящуюся на данном устройстве. Третье поле - тип монтируемой файловой системы. Опции команды mount перечислены в табл. 7.2, а перечень типов файловых систем дан в табл. 7.6. Тип раздела жесткого диска для стандартной файловой системы Linux - ext2, В следующем примере показана строка файла fstab, соответствующая основному разделу жесткого диска для Linux. Он монтируется в корневом каталоге (/) и имеет тип ext2.
/dev/hda3 / ext2 defaults 0 1
В поле, следующем после типа файловой системы, указываются различные опции монтирования. Имеется стандартный набор опций, устанавливаемых по умолчанию; все их можно задать вводом одной опции defaults/ Другие опции в списке разделяются запятыми (без пробелов). Опция deffaults обозначает устройство как устройство чтения/записи, асинхронное, блок-ориентированное, без возможности монтирования для обычных пользователей, с возможностью выполнения на нем программ. Для CD-ROM указываются всего две опции, го и noauto. Опция го показывает, что файлы, находящиеся на этом устройстве, предназначены только для чтения, noauto - что оно автоматически не монтируется. Опция noauto используется как для CD-ROM, так и для дискет, чтобы они не монтировались автоматически, поскольку вы не знаете, будут ли они установлены при запуске. В то же время в записях рассматриваемого файла, относящихся и к CD-ROM, и к дискетам, указывается, в каком каталоге они будут монтироваться при запуске, если вы все же решите монтировать их. Ниже приводится пример записей для CD-ROM и дискет. Тип файловой системы на CD-ROM, iso9660, отличается от типа раздела жесткого диска. Для дисковода гибких дисков также предусмотрены все стандартные опции, используемые для разделов жесткого диска.
/dev/fd0 /mnt/floppy ext2 defaults,noauto 0 0 /dev/hdc /mnt/cdrom iso9660 ro,noauto 0 0
Последние два поля содержат целочисленные значения. Первое используется командой dump для определения периодичности резервного копирования файловой системы. Последнее используется командой fsck для определения необходимости проверки системы и порядка возможной проверки. Если значение поля - 1, то это корневой раздел. Значение 0 говорит о том, что проверять файловую систему при загрузке не нужно.
Ниже приведена копия файла /etc/fstab. Первая его строка - комментарий. Все строки комментариев начинаются со знака #. Файловая система /ргос - это специальная файловая система, которую операционная система Linux использует для управления системными процессами. Никакому реальному устройству она не соответствует.
/etc/fstab_____________________________________________________________________________________ | # device mountpoint filesystemtype options dumpm fsckorder| | /dev/hda3 / ext2 defaults 0 1 | | /dev/hdc /mnt/cdrom iso9660 ro,noauto 0 0 | | /dev/fd0 /mnt/floppy ext2 defaults,noauto 0 0 | | /proc /proc proc defaults | | /dev/hda2 /none swap sw | | /dev/hda1 /mnt/dos msdos defaults 0 0 | | /dev/hda4 /mnt/win vfat iocharset=koi8-r,codepage=866,rw,noexec 0 0 | |____________________________________________________________________________________|
Чтобы указать в файле /etc/fstab новую файловую систему, можно либо отредактировать его вручную, либо воспользоваться утилитой fstool, которая попросит вас ввести соответствующую информацию.
Как уже упоминалось выше, в файловой структуре Linux можно монти-ровать разделы, используемые операционной системой MS-DOS. Делается это так же, как при монтировании любой файловой системы Linux. Нужно только указать тип раздела - msdos. Вероятно, будет удобнее, если система будет автоматически монтировать разделы MS-DOS при запуске системы Linux. Для этого нужно ввести в файл /etc/fstab запись для каждого монтируемого раздела MS-DOS. Укажите имя устройства для раздела и имя каталога, в котором он должен монтироваться. Логичный выбор - каталог /mnt/dos (убедитесь, что каталог dos в /mnt уже создан). В качестве типа файловой системы введите msdos. В следующем примере показана стандартная строка файла /etc/fstab для раздела MS-DOS. Обратите внимание на то, что эта запись является последней в приведенном выше файле /etc/fstab.
/dev/hda1 /mnt/dos msdos defaults 0 0
Раздел, для которого в файле /etc/fstab есть запись, можно монтировать только в каталоге, указанном в этой записи. Имя файла устройства вводить не нужно. Программа mount найдет запись, соответствующую этому разделу, в файле fstab (по имени каталога) и таким образом определит имя устройства. Например, чтобы демонтировать DOS-раздел /dev/hda1 в предыдущем примере, команде mount нужно указать только каталог, в котором он смонтирован. В данном случае это /mnt/dos.
# umount /mnt/dos
Если файл /etc/fstab испорчен - скажем, вы случайно удалили или изменили строку - система загрузится в режиме сопровождения и предоставит вам доступ к разделам только для чтения. Чтобы получить доступ на чтение и запись и исправить файл fstab, необходимо перемонтировать основной раздел. Эту операцию выполняет следующая команда:
# mount -n -0 remount,ro /
Приведенный здесь в качестве примера файл /etc/fstab можно использовать как руководство по формированию записей. Особенно важны элементы, соответствующие разделам /ргос и swap.
-f | Имитирует монтирование файловойсистемы. используется для проверки возможности монтирования файловой системы |
-v | Текстовый режим. Команда mount выдаёт описания действий, которые выполняет. Совместно -f используется для выявления проблем, возникающих при монтировании файловой системы. |
-w | Монтирует файловою систему с правом на чтение и запись. |
-r | Монтирует файловою систему с правом только на чтение. |
-n | Монтирует файловою систему без записи соответствующей строки в файле mtab |
-t mun | Задаёт тип монтируемой файловой системы. Типы файловых систем перечисленны в табл. 7.6 |
-a | Монтирует все файловые системы, перечисленные в файле /etc/fstab |
-o список_опций | Монтирует файловою систему с учетом списка опций. Список опций (через запятую) даётся после -о (сокращённый список опций приведен вТабл. 7.7, а полный - в диалоговом рукаводстве по команде mount |
В сетях, поддерживающих NFS, многие ресурсы и устройства совместно используются несколькими компьютерами. Как правило, у каждого ком-пьютера есть собственные файлы конфигурации для каждого устройства и ресурса. Изменения в конфигурации ресурсов и устройств влекут за собой индивидуальное обновление файлов на каждом компьютере. Однако существует специальный сервис, Network Information Services (NIS), который обеспечивает поддержку таких файлов конфигурации для всей сети. При изменениях нужно обновлять только файлы NIS. Этот сервис работает с информацией, необходимой для решения большинства административных задач, к которым относятся регистрация пользователей и контроль доступа к сети и устройствам. Например, с помощью сервиса NIS можно сохранять, изменять и контролировать информацию о паролях, обновляя только соответствующие NIS-файлы.
NIS разработала фирма Sun Microsystems. Первоначально он назывался Sun's Yellow. Pages (YP). NIS-файлы хранятся на сервере NIS (эти серверы до сих пор иногда называют серверами YP). Отдельные системы в сети направляют запросы на сервер NIS с помощью клиентских программ NIS. Сервер NIS хранит информацию в специальных файлах баз данных, называемых картами. Существуют Linux-версии и клиентов, и серверов NIS. Linux-клиенты NIS свободно связываются с любой сетью, где используется этот сервис.
Компакт-диск Caldera содержит ПО клиента и сервера NIS для Linux в виде RPM-пакетов, которые инсталлируются со стандартной конфигурацией. Клиент NIS инсталлируется вместе с исходной системой OpenLinux, и его можно в любое время переконфигурировать с помощью программы Lisa. Клиентские программы NIS - это ypbind (демон клиента NIS), ypwhich, ypcat, yppoll, ypmatch, yppasswd и ypset. У каждой из них есть своя man-no?aieoa, на которой подробно освещается использование программы. Серверные программы NIS - это ypserv, ypinit, yppasswdd, yppush, ypxfr и netgroup. У каждой из них тоже есть отдельная man-страница. Подробный документ HOW-TO о NIS находится в каталоге /usr/doc/HOWTO.Утилита tar предназначена для создания архивов файлов и каталогов. С помощью этой программы можно архивировать файлы, обновлять их в архиве и вводить в этот архив новые файлы. Можно архивировать и целые каталоги со всеми их файлами и подкаталогами. При необходимости все эти файлы и подкаталоги можно восстановить из архива. Программа tar предназначалась для создания архивов на лентах, отсюда и название tar (tape archive, т.е. "архив на ленте"). Архив можно создавать на любом устройстве, например на дискете или в архивном файле на диске. Программа tar - идеальное средство для создания резервных копий файлов или объединения нескольких файлов в один с целью передачи его по сети.
В операционной системе Linux программу tar часто используют для создания архивов на устройствах и в файлах. Ей можно дать указание архивировать файлы на определенном устройстве или в определенном файле, для чего служит опция f с именем устройства или файла. Синтаксис команды tar с опцией f очевиден из нижеследующего примера. Имя устройства или файла часто называют именем архива. При создании файла для tar-архива к имени этого файла обычно добавляется расширение .tar Это условное обозначение; оно не обязательно. В команде можно указать сколько угодно имен файлов. Если указано имя каталога, то в архив включаются и все подкаталоги этого каталога.
$ tar опцииf имя_архива.tar имена_файлов_и_каталогов
Для создания архива служит опция с. В сочетании с опцией f опция с приводит к созданию архива в файле или на устройстве. Эта опция ставится непосредственно перед опцией f. Обратите внимание, что дефиса перед опцией нет. В следующем примере каталог mydir и все его подкаталоги сохраняются в файле myarch.tar.
$ tar cf myarch.tar mydir
Потом пользователь может извлекать каталоги из архива, применяя команду tar с опцией х. Опция xf позволяет извлекать файлы из архивного файла или устройства. При извлечении формируются и все подкаталоги. В следующем примере посредством опции xf команде tar дается указание извлечь все файлы и подкаталоги из файла myarch.tar.
$ tar xf myarch.tar
Для добавления файлов в существующий архив служит опция r. В приведенном ниже примере пользователь добавляет файлы из каталога letters в архив myarch.tar.
$ tar rf myarch.tar letters
Если нужно изменить какой-либо файл в архивированных ранее каталогах, можно с помощью опции u дать команде указание обновить архив, заменив некоторые файлы их новыми версиями. Программа tar сравнивает время последнего изменения каждого архивированного файла и соответствующего файла в каталоге и копирует в архив все файлы с более поздней датой модификации. В архив будут добавлены и все вновь созданные в этих каталогах файлы. В следующем примере пользователь обновляет файл myarch.tar, вводя в него все измененные и вновь созданные в каталоге mydir файлы.
$ tar uf myarch.tar mydir
Если вы хотите посмотреть, какие файлы хранятся в архиве, дайте команду tar с опцией t. В следующем примере показано, как с помощью этой команды можно вызвать список всех файлов, хранящихся в архиве myarch.tar.
$ tar tf myarch.tar
Для создания резервных копий файлов на определенном устройстве укажите имя этого устройства в качестве имени архива. В следующем примере пользователь создает архив на дискете в устройстве /dev/fd0 и копирует в него все файлы из каталога mydir.
$ tar cf /dev/tdO mydir
Для того чтобы извлечь архивированные таким образом файлы, используйте опцию xf.
$ tar xf /dtv/fd0
Если архивируемые файлы занимают больше места, чем имеется на носителе, например на дискете, создайте tar-архив, состоящий из нескольких томов (дискет или лент).
Посредством опции M команде tar дается указание выводить сообщение о том, что текущий носитель заполнен. При архивировании файлов на дискете с использованием опции M в случае заполнения дискеты программа tar предложит вам вставить новую дискету. Таким образом вы сможете записать свой архив на нескольких дискетах.
$ tar cMf /dev/fd0 mydir
Чтобы распаковать архив, записанный на нескольких дискетах, вставьте первую дискету в дисковод и введите команду tar с опциями х и М, как показано ниже. Программа подскажет вам, когда надо вставить следующую дискету.
$ tar xMf /dev/fd0
При использовании команды tar операция сжатия архивных файлов не выполняется. Если вы хотите сжать файлы, дайте tar указание вызвать утилиту gzip. Если команда tar применяется с опцией z, то сначала программа gzip выполняет сжатие, а затем tar архивирует файлы. Та же опция z обеспечит вызов gzip для распаковки файлов при извлечении их из архива.
$ tar czf myarch.tar mydir
Помните, что между сжатием отдельных файлов с последующим архивированием и сжатием всего архива есть разница. Во многих случаях архив создается, чтобы переслать по сети несколько файлов в виде одного tar-файла. Для сокращения времени передачи размер этого архива должен быть по возможности небольшим. Чтобы добиться этого, можно с помощью утилиты gzip сжать архивный tar-файл, уменьшив его размер, а затем переслать сжатую версию. Получатель распакует его и восстановит файл. В результате применения утилиты gzip к tar -файлам часто получаются файлы с расши-рением .tar.gz. Расширение .gz добавляется к сжатому gzip-файлу. В следующем примере создается сжатая версия файла myarch.tar под тем же именем, но с расширением .gz.
$ gzip myarch.tar $ la myarch.tar.gz
Если вы хотите создать архив на некотором устройстве, например на ленте или в файле, нужно дать команду tar с опцией f и именем устройства или файла. Такой вариант эффективен при создании резервных копий файлов. Имя устройства по умолчанию хранится в файле /etc/default/tar. Синтаксис команды tar, подразумевающей использование устройства, заданного по умрлчанию (накопителя на магнитной ленте), приведен в показанном ниже примере. Опция f и имя устройства не задаются. Если указано имя каталога, то в архив включаются все его подкаталоги.
$ tar опция имена_каталогов_и_файлов
В представленном ниже примере каталог mydir со всеми подкаталогами сохраняется на ленте как на носителе по умолчанию.
$ tar с mydir
А в этом примере каталог mydir со всеми файлами и подкаталогами извлекается из устройства, принятого по умолчанию, и помещается в рабочий каталог пользователя.
$ tar x mydir
Приложение ХТаг системы Х Window позволяет с помощью окон и меню выбрать файл tar-архива и разархивировать его. Для того чтобы запустить это приложение, нужно ввести команду xtar в окне Xterm либо воспользоваться меню рабочей области fvwm. В ХТаr три меню: ХТаr, Options и Attributes. Сначала необходимо выбрать файл tar-архива, для чего используется элемент Open меню ХТаr. Откроется окно выбора файла, в котором перечислены находящиеся в каталоге файлы. Вы можете переходить из одного каталога в другой. Когда вы выберете нужный tar-архив, в главном окне появятся все содержащиеся в нем файлы. ХТаr позволяет распаковывать как весь tar-архив, так и отдельные его файлы. Чтобы распаковать весь архив, выберите элемент Unpack All в меню ХТаr. Элемент Unpack All As позволяет распаковать архив в выбранный вами каталог. Чтобы распаковать отдельный файл, сначала выберите его (для поиска можно использовать функцию Search из меню ХТаr), а затем выберите элемент Extract в меню Options. В этом же меню есть элемент View, который позволяет просто просматривать текстовые файлы, например файл README. ХТаг может работать и со сжатым архивом (распаковывать его предварительно не нужно).
Уменьшать размер файла приходится по разным причинам. Чаще всего это делается для экономии места и, если вы пересылаете файл по сети, для экономии времени передачи. Сжатие и распаковка файлов осуществляются с помощью утилиты gzip. При сжатии в качестве аргумента вводится имя файла. Этот файл заменяется сжатой версией с расширением .gz.
$ gzip mydata $ la mydata.gz
Для распаковки grip-архива введите либо команду gzip с опцией -d, либо команду gunzip . Эти команды приводят к распаковке файла с расширением .gz и замене его распакованной версией с тем же именем, но без расширения .gz . При использовании команды gunzip не нужно даже вводить расширение .gz. Команды gunzip и gzip -d заведомо предполагают его наличие.
$ gunzip mydata.gz $ ls mydata
Пусть, например, вы хотите вывести на экран или напечатать содержимое сжатого файла, не распаковывая его. Команда zcat создает распакованную версию файла и посылает ее на стандартный вывод. Затем этот вывод можно переадресовать в утилиту печати или отображения, например в more. Оригинал файла остается записанным в сжатом виде.
$ zcat mydata.gz | more
Можно сжимать и архивированные файлы. Эта операция дает в результате файлы с расширением .tar.gz. Сжатые архивированные файлы часто используются для передачи очень больших файлов по сетям.
$ gzip myarch.tax $ ls myarch.tar.gz
Файлы, входящие в архив, можно сжимать и по отдельности, используя команду tar с опцией z, которая вызывает утилиту gzip. В этом случае файл сначала сжимается, а затем помещается в архив. Следует отметить, однако, что архивы с файлами, сжатыми с применением опции z, обновлению не подлежат, и добавлять в них файлы нельзя. Все файлы необходимо сжимать одновременно и добавлять тоже одновременно.
Для создания сжатых файлов можно также пользоваться командами compress и uncompress. В утилите compress используется другой формат сжатия. В результате ее использования образуются файлы с расширением .Z. Команды compress и uncompress применяются не очень широко, но файлы с расширением .Z иногда встречаются. Для распаковки файла с расширением .Z можно использовать не только команду uncompress, но и команду gunzip. Однако gzip является стандартной утилитой сжатия из набора программного обеспечения GNU, поэтому вместо команды compress по возможности следует использовать именно ее.
Программы операционной системы Linux можно получить с различных узлов сети Internet. Для пересылки используется программа ftp. Программное обеспечение обычно пересылается в виде сжатого архивного файла. Такие файлы создаются программой tar , а затем сжимаются с помощью утилиты gzip. Для инсталляции такого файла его сначала нужно распаковать утилитой gunzip, а затем посредством утилиты tar извлечь файлы и каталоги, входящие в пакет программного обеспечения. Вместо команды gunzip можно использовать команду gzip -d. В следующем примере распаковывается файл SpecTcll.Uar.gz. Он заменяется распакованной версией с именем SpecTcll.l.tar.
$ ls SpecTcl1.1.tar.gz $ gunzip SpecTcl1.1.tar.gz $ ls SpecTcll.l.tar
Сначала дайте команду tar с опцией t, чтобы проверить содержимое архива. Если первая запись - имя каталога, этот каталог создается и извлекаемые файлы помещаются в него. Если первая запись - не имя каталога, вы должны создать каталог сами и скопировать в него архивный файл. Затем извлекайте файлы в этот каталог. Если в качестве первой записи указано не имя каталога, файлы извлекаются в текущий каталог.
$ tar tf SpecTcll.1.tar
Теперь можно извлекать файлы из tar-архива. Для извлечения файлов в команде tar должны быть указаны опция х , опция f и имя архива, а для выдачи путевых имен файлов по мере их извлечения - опция v.
$ tar xvf SpecTcll.1.tar
Процедура инсталляции программных средств зависит от конкретного пакета. Инструкции к программам инсталляции обычно прилагаются.
Операцию распаковки и извлечения из архива можно объединить в одну команду tar, добавив в список опций опцию z: xzvf. Ниже показана команда, которая распаковывает и разворачивает архив:
$ tar xzvf SpecTcll.1.tar.gz
Процедура инсталляции программного обеспечения может быть различной для разных пакетов. Инструкции, как правило, прилагаются.
Многие пакеты прикладных программ, находящиеся на стадии разработки или рассчитанные на разные платформы, могут быть представлены не в формате RPM, а в архивированном и сжатом виде. Имена этих файлов заканчиваются расширением .tar.gz или .tar.Z. На практике большинство программ в формате RPM имеет и соответствующий эквивалент в формате .tar.gz. После загрузки такой программы нужно сначала распаковать ее программой gunzip, а затем развернуть командой tar. Многие RPM -пакеты содержат лишь двоичные версии приложений. Если вам нужен исходный код приложения, то следует загрузить и распаковать его сжатый архив.
В следующем примере пользователь с помощью команды ftp выходит на ftp-узел sunsite.unc.edu. В качестве регистрационного имени он вводит слово anonymous, а в качестве пароля - свой Internet-адрес. Устанавливается двоичный режим пересылки, для чего вводится ключевое слово binary. Вначале с помощью команды cd пользователь переходит в каталог pub/Linux/Hbs/X/xview, где находится программное обеспечение менеджера окон Xview. Пересылка пакета осуществляется посредством команды get. Команда close разрывает соединение, a quit обеспечивает выход из утилиты ftp.
# ftp sunsite.unc.edu Connect to sunsite.unc.edu 220- Welcome to the SunSITE USA ftp archives! 1999) ready. Name (sunsite.unc.edu:root): anonymous 331 Guest login ok, send your complete e-mail adress as password. Password: (Здесь вводите e-mail адрес) 230 Guest login ok, access restrictions apply. Remoute system type is Unix. Using binary mode to transfer files. ftp>cd pub/Linux/libe/X/xview >250-README for libs/X/xview 250-What you'll find here: various Xview and OpenLook libriares 250 CWD command successful. ftp> Is xv* >200 PORT command successful. 150 Opening ASCII mode data connection for /bin/Is. -rw-rw-r- 1 67 1002 6100 Jun 27 11:16 xview-3.2pl.4.README -rw-rw-r- 1 67 1002 2192197 Jun 27 11:17 xview-3.2pl.4.bin.tar.gz 226 Transfer complete. ftp> get xview-3.2pl.4.bin.tar.gz > local: xview-3.2pl.4-bin.tar.gz remote: xview-3.2pl.4.bin.tar.gz 200 PORT command successful. 150 Opening BINARY mode data connection for xview-3.2pl-4.bin.tar.gz (2192197 bytes). 226 Transfer complete. 2192197 bytes recieved in 728 sees (2.9 Kbytes/sec) ftp> close 221 Good-bye. ftp> quit #
Чтобы не связываться со всеми этими командами ftp, можно воспользоваться программой Netscape, которая позволит вам получить доступ к программному обеспечению, просмотреть его и переписать необходимые программы. Не забудьте перед именем ftp-узла поставить ftp:// вместо обычного http:// (ftp://sunsite.unc.edu). Выделив необходимые программы, дважды щелкните на их названиях, и они будут переписаны на ваш компьютер.
Все файлы, имена которых заканчиваются буквами .Z или .gz, сжаты, и их нужно распаковать. Для этого необходимо дать команду gunzip с именем файла
$ gunzip xview-3.2pl.4.bin.tar.gz
Если распакованный файл имеет окончание .tar, значит, его необходимо разархивировать. Для этого служит команда tar. Разворачивать архив следует только после того, как вы поместили его в нужный каталог. Исходный код, который вы намереваетесь компилировать, обычно помещается в каталог /usr/src. В большинстве случаев файлы из архивов помещаются в подкаталог, который создается при их извлечении; все файлы и каталоги, составляющие пакет прикладных программ, помещаются в этот подкаталог. Например, файлы из архива xvtew-3.2pl.4.bin.tar помещаются в каталог usr. Чтобы проверить, будет ли создан подкаталог, дайте команду tar с опцией t, которая выведет на экран перечень содержимого архива. Посмотрите, начинаются ли имена с имени каталога. Если начинаются, то этот каталог будет создан и извлеченные файлы разместятся в нем. Если имени каталога нет, нужно сначала создать его, затем скопировать в него архивный файл и только после этого извлекать из него файлы.
# tar tf xview-3.2pl.4.bin.tar
Теперь можно извлекать файлы из tar-архива. Для извлечения файлов команда tar дается с опцией х, опцией f и указанием имени архива, а для выдачи путевых имен файлов по мере их извлечения используется опция v.
# tar xvf xview-3.2pl.4.bin.tar
Процедура инсталляции программных средств зависит от конкретного пакета. Инструкции обычно прилагаются к программе инсталляции. Если имя файла заканчивается буквами rpm, для его инсталляции следует пользоваться командой rpm -i. Переписанное с ftp-узла программное обеспечение обычно имеет в своем составе справочные файлы и другую документацию. Обязательно прочтите эти документы.
Некоторые программы существуют в виде исходного кода, который перед инсталляцией необходимо откомпилировать. Это касается в первую очередь программ, предназначенных для кроссплатформной реализации. Программы, рассчитанные на работу не только в Linux, но и в других Unix-системах, например Sun, могут распространяться в виде исходного кода, который и компилируется в этих системах. В последние годы процедура компиляции такого ПО значительно упростилась благодаря сценариям. Которые автоматически определяют конфигурацию системы и соответствующим образом компилируют программу. Например, компилятор С в системе может иметь имя дсс или ее. Сценарии конфигурации определяют, какой компилятор присутствует, и используют его для компиляции программы.
Прежде чем компилировать ПО, прочтите прилагаемые к нему файлы README и INSTALL. В них содержатся подробные инструкции по ком-пиляции и инсталляции программы. Если в данном ПО используется сценарий конфигурации, то компиляция и инсталляция выполняются тремя простыми командами:
# ./configure # make # make install
В помощью команды ./configure определяется конфигурация системы. Команда make выполняет собственно компиляцию, используя файл makefile, сгенерированный командой ./configure. Команда make install инсталлирует программу в систему, помещая ее исполняемый файл в какой-нибудь каталог, например в /usr/local/bin, а файлы конфигурации, если они есть, - в каталог /etc. Все созданные разделяемые библиотеки могут быть помещены в каталог /usr/lib.
Если вы компилируете программу, разработанную на базе Х Window, убедитесь, что нужные библиотеки X11 инсталлированы. Если при инсталляции системы OpenLinux вы выбрали стандартный вариант, эти библиотеки не инсталлируются. Вам придется сделать это самостоятельно с помощью программы Lisa или программы glint. Кроме того, обязательно должна быть инсталлирована программа xmkmf. Для многих приложений Х Window могут понадобиться специальные разделяемые библиотеки, например xforms или qt. Некоторые из них вам придется загрузить по сети. Так, библиотеки qt находятся на сервере www.troll.no. RPM-версии библиотек qt и xforms находятся в каталоге contrib сервера Redhat.
Для генерации необходимого файла makefile многие программы Х Window используют не сценарий конфигурации, а программу xmkmf. В этом случае вместо команды ./configure нужно ввести команду xmkmf. Обязательно уточните это в файлах INSTALL и README, прилагаемых к компилируемому ПО. Как правило, достаточно перейти в каталог, который содержит файлы исходного кода данного ПО, и дать следующие команды:
# xmkmf # make # make install
Если сценария конфигурации нет и программа не использует программу xmkmf , то, вероятно, можно ограничиться командами make и make install. Об этом тоже можно узнать из файлов README и INSTALL.
# make # make install
Обязательно ознакомьтесь с документацией на такое ПО и проверьте, не нужно ли вносить изменения в makefile. Таких изменений может быть немного, однако если они существенные, то от вас потребуется знание основ программирования на С и понимание того, как работает команда make. Если вы успешно сконфигурировали makefile, то, возможно, достаточно будет ввести команды make и make install. Например, для многих игр, на-ходящихся на сервере sunsite.unc.edu в каталоге /pub/Unux/games, возможно, придется вносить изменения в makefile. Одна из вероятных проблем - поиск библиотек для С и Х Window. Библиотеки Х Window находятся в каталоге /usr/X11R6/lib. Стандартные библиотеки С расположены в каталоге /usr/lib.
В системе Linux имеется набор утилит mtools, которые обеспечивают доступ к дискетам, отформатированным для использования в MS-DOS. Команда юсору позволяет копировать файлы на такую дискету и с нее. Никаких специальных операций вроде операции монтирования проводить не нужно. В частности, при использовании утилиты mtools не придется монтировать раздел MS-DOS для получения доступа к нему. Просто вставьте дискету MS-DOS в дисковод и пользуйтесь командами mtools. Скажем, для копирования файла с дискеты MS-DOS в систему Linux служит команда mсору. В отличие от обычных путевых имен DOS, в путевых именах, используемых с командами mtool, вместо обратной косой черты используется обычная косая. Каталог docs на диске А: обозначается путевым именем a:/docs, а не a:\docs. В следующем примере файл mydata копируется на дискету MS-DOS, а затем файл preface копируется с этой дискеты в текущий каталог Linux.
$ mсору mydata a: $ mcopy a:preface.
С помощью команды mdir можно получить список файлов, имеющихся на дискете MS-DOS, а с помощью команды mcd ≈ переходить на этой дискете из каталога в каталог. В следующем примере выдается перечень файлов, а затем пользователь переходит в каталог docs.
$ mdir a: $ mcd a:docs
Большинство стандартных команд MS-DOS могут выполняться как операции mtools . В частности, можно создавать каталоги MS-DOS (команда mmd) и удалять файлы (команда mdel). Перечень команд mtools приведен в табл.7.12. Например, для того чтобы вывести на экран содержимое файла, находящегося на дискете MS-DOS в 5,25-дюймовом дисководе, введите команду mtype с именем дисковода и файла:
$ mtype b:readme
Доступ к разделам MS-DOS конфигурируется файлом /etc/mtools.conf, в котором перечислены различные стандартные разделы MS-DOS и дисководы. Каждый дисковод или раздел обозначается определенным именем устройства. Записи, соответствующие дисководам гибких дисков, уже введены. Первый дисковод обозначен именем /dev/fd0, а второй ≈ /dev/fd1. Запись файла /etc/mtools.conf состоит из метки дисковода, слова file, знака равенства и имени устройства, заключенного в кавычки. Например, если первый раздел жесткого диска ≈ раздел MS-DOS, а имя соответствующего ему файла устройства ≈ /dev/hda1, то приведенная ниже запись обозначит его как дисковод с: в системе MS-DOS:
drive с: file="/dev/hda1"
Очень важно, чтобы имя устройства, присвоенное разделу, было правильным. Эти имена перечислены в файле /etc/fstab. Их можно также просмотреть с помощью утилиты fstool с рабочего стола пользователя root. Если у вас жесткий диск SCSI, то имена его разделов будут состоять из букв sd, буквенного обозначения дисковода и номера раздела. Так sda1 обозначает первый раздел на жестком диске SCSI. Имена разделов жесткого диска IDE состоят из букв hd, буквенного обозначения дисковода и номера раздела. Так, hda1 обозначает первый раздел жесткого диска IDE.
При первоначальной инсталляции системы OpenLinux файл /etc/mtools.conf конфигурирует дисковод C: как соответствующий разделу жесткого диска SCSI. Есть также запись для раздела жесткого диска IDE, но она закомментирована знаком #. Если у вас есть жесткий диск IDE (как у большинства пользователей), удалите знак # из соответствующей записи и поставьте такой знак перед записью, соответствующей разделу SCSI. Кроме того, если раздел MS-DOS ≈ не первый раздел на жестком диске IDE, то имя устройства придется изменить. Например, если раздел MS-DOS ≈ второй раздел, то именем устройства будет /dev/hda2. Если у вас несколько разделов MS-DOS, то можно ввести записи для каждого из них и присвоить каждому свою метку. В следующем примере метка d: присваивается четвертому разделу жесткого диска IDE:
drive d: file="/dev/hda4"
/etc/mtools/conf drive a: file="/dev/fd0" exclusive drive b: file="/dev/fdl" exclusive # First SCSI hard disk partition #drive c: ile="/dev/sda1" # First IDE hard disk partition drive c: file="/dev/hda1" drive d: file="/dev/hda4" #dosemu floppy image drive m: file="/var/lib/dosemu/diskimage" #dosemu hdimage drive n: file="/var/lib/dosenni/disldmage" offset=3840 #Atari ramdisk image drive o: file="/tmp/atari_rd" offset=136 mtools lower case=1
После того как DOS-разделы жесткого диска соответствующим образом обозначены, их буквенные обозначения можно использовать для копи-рования в них файлов из Linux-разделов и обратно. Следующая команда копирует файл mydoc.htm в каталог webstaff на диск C: и переименовывает его в mydoc.htm. Обратите внимание на то, что вместо символа "обратная косая черта" используется обычная косая.
$ mсору mydoc.htm с:/webstuff/mydoc.htm
Поскольку DOS и Linux по-разному обрабатывают символы новой строки в текстовых файлах, при копировании текстового DOS-файла в Linux-раздел следует использовать опцию -t. Следующая команда копирует файл mуdoc.txt из каталога c:/project в каталог /newdocs:
$ mcopy -t c:/project/mydoc.txt /newdocs
Для ОС Linux есть эмуляторы, которые позволяют выполнять программы DOS и Windows. Они, правда, находятся на стадии разработки и пока можно говорить лишь о частичном успехе этих проектов. Как эмуляторы они вы-полняют программы медленнее, чем сами DOS и Windows. Эмулятор DOS называется DOSemu. Его можно инсталлировать с компакт-диска OpenLinux. В каталоге examples вы найдете шаблон файла конфигурации, который называется config.dist. Этот файл содержит длинный перечень опций конфигурации. Все они закомментированы знаком #. Этот файл нужно скопировать в dosemu.conf. Отредактируйте файл dosemu.conf, удалив знаки # из всех записей, которые относятся к вашей системе. К каждому разделу файла имеются пояснения.
Чтобы создать загружаемый гибкий диск DOS, с помощью команды тосору скопируйте на этот диск файлы command.com, sys.com, emufs.sys, ems.sy.cdrom.sys и exitemu.com. Для запуска эмулятора DOS введите в командной строке команду dos, а для выхода из эмулятора ≈ команду exitemu. Команда dos -? выдает перечень опций команды dos.
Эмулятор Wine предназначен для выполнения программ Windows. Он пока находится на стадии разработки, причем непрерывно выпускаются все новые и новые версии. На данный момент он считается экспериментальным. Версию этого эмулятора вы можете загрузить из каталога /pub/IJnux/ALPHA/wine/development, который находится на сервере sunsite.unc.edu. Подробную инфор-мацию вы найдете в ответах на часто задаваемые вопросы по Windows.
Инструментальный набор Willow предоставляет программисту интерфейс прикладного программирования (API) Windows для кроссплатформной разработки и содержит ряд библиотек и инструментов (Willow Twin Libraries and Tools). С помощью вышеупомянутого интерфейса можно писать приложения, а затем реализовывать их, используя библиотеки. Предусмотрена поддержка приложений как Win32, так и Windows. Библиотеки Willow распространяются по открытой лицензии GNU. Подробную информацию о Willow можно найти на Web-сервере www.wiDow.com.
Для управления доступом к файлам и каталогам устанавливаются права доступа. Доступ к файлу или каталогу может быть разрешен для чтения, записи и выполнения по трем категориям: владелец, группа и прочие пользователи. Разрешения устанавливаются с помощью команды chinod, a команда ls с опцией -l выдает список файлов и каталогов с текущими правами доступа
Различные запоминающие устройства содержат собственные файловые системы, которые можно объединять в общую файловую структуру и к которым затем можно обращаться. Вы можете обращаться к CD-ROM, дискетам и разделам жесткого диска. Кроме того, можно монтировать разделы MS-DOS жесткого диска и обращаться к ним непосредственно из системы Linux Если поместить в файл /etc/fstab запись для какой-нибудь файловой системы, она будет автоматически монтироваться при начальной загрузке. Если ваш компьютер включен в сеть, можно монтировать файловые системы с удаленного сервера и обращаться к ним.
Для пересылки и резервного копирования файлов их можно архивировать и сжимать Команда tar служит для архивирования файлов, а команда gzip ≈ для их сжатия. Программные пакеты, предлагаемые удаленными источниками, в большинстве своем и архивированы, и сжаты. Их имена обычно имеют окончание tar.gz . Их можно загрузить с удаленного сервера, распаковать с помощью команды gunzip, а затем разархивировать посредством команды tar Инсталляция этого программного обеспечения может осуществляться при помощи команды rpm.
Устанавливает право на чтение для файла или каталога. Файл может отображаться на экране и печататься. Для каталога может отображаться список находящихся в нем файлов | |
Устанавливает право на запись для файла или каталога. Дм файла это означает возможность его редактирования. Для каталога это право означает возможность создания и удаления файлов в нем | |
Устанавливает право на выполнение для файла или каталога. Если файл - сценфрий shell, он может выполняться как программа. В каталог с таким режимом доступа можно переходить. | |
Устанавливает права доступа для пользователя, который создал файл или каталог и владеет им. | |
Устанавливает права доступа к файлу или каталогу для группы. | |
Устанавливает права доступа к файлу или каталогу для почих пользователей системы. | |
Устанавливает права доступа для владельца группы и прочих пользователей. | |
Устанавливает бит смены идентификатора пользователя или группы. | |
Устанавливает sticky-бит. | |
имя_группы имена_файлов | Изменяет группу для файла или файлов. |
имя_пользователя имена_файлов | Изменяет владельца файла или файлов. |
имя_файла | Выдаёт имя файла с правами доступа. |
каталог | Выдаёт имя каталога с правами доступа. |
Выдаёт имена всех файлов, содержащихся в каталоге, с указанием прав доступа к ним. |
Хотя все файлы в системе Linux логически соединены в одно общее дерево, сами файлы размещаются на различных запоминающих устройствах, например на жестких дисках и CD-ROM. Файлы, записанные на запоминающих устройствах, организованы в файловые системы. Дерево каталогов в ОС Linux может охватывать несколько файловых систем, каждая из которых размещена на отдельном устройстве. Сами файлы организованы в единое файловое дерево, вершиной которого является корневой каталог. Несмотря на то что файловая система с корневым каталогом расположена в одном из разделов жесткого диска, всегда существует путь к файлам, расположенным в файловой системе, размещенной на компакт-диске.
Файлы той или иной файловой системы остаются отделенными от дерева каталогов до тех пор, пока вы явно не присоедините их к этому дереву. В каждой файловой системе файлы организованы в отдельное дерево каталогов. Это дерево можно рассматривать как поддерево, которое необходимо присоединить к основному дереву каталогов. Например, на дискете с файлами ОС Linux - свое дерево каталогов. Это поддерево нужно присоединить к основному дереву, расположенному в разделе жесткого диска. Пока это не сделано, доступа к файлам на дискете у вас не будет.
Присоединение файловой системы, расположенной на запоминающем устройстве, к основному дереву каталогов называется монтированном устройства. Монтирование устройства осуществляется командой mount. Для того чтобы получить возможность работать с файлами, записанными на CD-ROM, это устройство нужно сначала смонтировать. Операция монтирования предполагает присоединение дерева каталогов, находящегося на устройстве памяти, к указанному пользователем каталогу. Лишь после этого можно перейти в присоединенный каталог и обращаться к его файлам. Монтировать файловые системы может только привилегированный пользователь, root. Эта задача относится к функциям системного администратора, и обычный пользователь ее выполнять не может. Для того чтобы монтировать файловую систему, нужно войти в систему в качестве привилегированного пользователя. В табл. 7.2 перечислены различные опции команды mount.
Команда mount принимает два аргумента: имя устройства, через которое Linux получает доступ к файловой системе, и каталог в файловой структуре, к которому присоединяется новая файловая система. Точка_монтирования - это каталог, к которому вы хотите присоединить файлы, находящиеся на запоминающем устройстве. Устройство - это специальный файл устройства, с помощью которого система получает доступ к аппаратным устройствам. Команда mount имеет следующий синтаксис:
# mount устройство точка_монтирования
Файлы устройств находятся в каталогах /dev и обычно имеют сокращенные имена, которые заканчиваются номером устройства. Например, fd0 может обозначать первый дисковод гибких дисков, присоединенный к системе. В Linux-системах, работающих на PC, разделы жесткого джка имеют префикс hd, за которым следует буквенный символ, обозначающий этот диск, и номер раздела. Например, hda2 обозначает второй раздел первого жесткого диска. В большинстве случаев с помощью команды man с префиксом можно получить более подробную информацию о таком устройстве. Так, команда man sd выводит страницы руководства с информацией об устройствах SCSI.
Для того чтобы к файловой системе был возможен доступ, она должна быть смонтирована. Даже файловую систему, расположенную в разделе жесткого диска, нужно монтировать командой mount. Следует отметить, однако, что при инсталляции Linux и создании на жестком диске раздела Linux система автоматически конфигурируется на монтирование основных файловых систем при каждом запуске. Для дискет и компакт-дисков такая возможность не предусмотрена, и их придется монтировать явно.
# mount /dev/fd0/mydir
Перед тем как останавливать систему, необходимо демонтировать все смонтированные файловые системы. Основные файловые системы демонтируются автоматически. Если, однако, вы хотите заменить смонтированную файловую систему другой, сначала нужно демонтировать первую явно. Скажем, вы смонтировали файлы, содержавшиеся на дискете, а теперь хотите заменить ее на другую. Для этого нужно сначала демонтировать файловую систему установленной дискеты. Файловая система демонтируется командой umount. В качестве аргументов эта команда использует имя устройства и каталог, в котором оно было смонтировано. Вот синтаксис команды umount:
# umount устройство точка_ыонтирования
В следующем примере демонтируется гибкий диск, смонтированный в каталоге /mydir:
# umount /dev/fd0
Вспомните пример, в котором устройство было смонтировано в каталоге /mydir. Для демонтирования файловой системы вы могли бы использовать имя этого каталога:
# umount /mydir
Для команды umount установлено одно существенное ограничение. Нельзя демонтировать файловую систему, в которой вы работаете в настоящий момент. Если вы перейдете в какой-либо каталог файловой системы и затем попытаетесь демонтировать ее, то получите сообщение об ошибке - вас уведомят о том, что файловая система занята*. Предположим, вы смонтировали компакт-диск OpenLinux в каталог /mnt/cdrom, а затем перешли в этот каталог. Если вы решите поставить новый компакт-диск, то вам сначала придется командой umount демонтировать предыдущий. Эта попытка будет неудачной, потому что в данный момент вы находитесь в каталоге, в котором смонтирована файловая система. Сначала нужно выйти из него, и только после этого демонтировать компакт-диск.
# mount /dev/hdc /mnt/cdrom /mnt/cdrom # umount /mnt/cdrom umount: /dev/hde: device is busy # cd /root # umount /mnt/cdrom
Файловые системы на всех запоминающих устройствах занимают весь выделенный для них объем. Например, файловая система может занимать раздел жесткого диска размером 300 Мбайт. Файлы, инсталлируемые и создаваемые в этой файловой системе, будут занимать лишь часть пространства, а остальная часть будет свободна для новых файлов и каталогов этой системы. Определить, сколько свободного пространства имеется в файловой системе, можно с помощью команды df. Она выдает список всех файловых систем по именам устройств, сообщает их размер и точки монтирования. Команда df - очень надежный способ получить список всех разделов (лучше использовать ее, а не команду fdisk).
$ dt Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 297635 169499 112764 60% / /dev/hdal 205380 182320 23060 89% /mnt/dos /dev/hdc 637986 637986 0 100% /mnt/cdromКоманду df можно использовать и для получения информации о том, к какой файловой системе относится тот или иной каталог. Для этого команду df нужно ввести с именем каталога (для текущего каталога - df .).
$ df Filesystem 1024-blocks Used Available Capacity Mounted on /dev/hda3 297635 169499 112764 60% /
Проверка работоспособности файловой системы осуществляется с помощью команды fsck. Аргументом команды является имя устройства, на котором находится файловая система. В следующем примере проверяются дискета и основной раздел жесткого диска.
# feck /dev/fd0 # fsck /dev/hdal