- •Часть I. Подготовка к работе
- •Глава 1. Использование клавиатуры 11
- •Глава 2. Основные команды языка 19
- •Глава 3. Работа с файловой системой qnx 29
- •Часть II. Управление системой 34
- •Глава 4. Основная установка 34
- •Глава 5. Установка сети 48
- •Глава 6. Ввод учитываемых пользователей 58
- •Глава 7. Подключение терминалов, принтеров и модемов 71
- •Глава 8. Установка второй файловой системы 88
- •Глава 9. Развитие конфигурации сети 99
- •Глава 10. Буферизация печати 112
- •Глава 11. Построение заданного образа операционной системы 134
- •Глава 12. Использование системы управления версиями 140
- •Глава 13. Изготовление копий 149
- •Глава 14. Восстановление дисков и файлов 156
- •Глава 15. Система обновления версий Quantum 176
- •Часть I. Подготовка к работе
- •Глава 1. Использование клавиатуры
- •Глава 2. Основные команды языка
- •Глава 3. Работа с файловой системой qnx
- •Часть II. Управление системой
- •Глава 4. Основная установка
- •Глава 5. Установка сети
- •Глава 6. Ввод учитываемых пользователей
- •Глава 7. Подключение терминалов, принтеров и модемов
- •Глава 8. Установка второй файловой системы
- •Глава 9. Развитие конфигурации сети
- •Глава 10. Буферизация печати
- •Глава 11. Построение заданного образа операционной системы
- •Глава 12. Использование системы управления версиями
- •Глава 13 изготовление копий
- •Глава 14. Восстановление дисков и файлов
- •Глава 15. Система обновления версий quantum
Глава 8. Установка второй файловой системы
В этой главе...
Разделение пространства полных имен
Установка файловой системы DOS
8.1. Введение
Файловая система, определяемая корнем (/), может состоять из
одной или более физических файловых систем, скомпонованных вместе.
Физическая файловая система - это отдельный диск или раздел. Одна
из физических файловых систем, естественно, должна быть корнем (/),
тогда как другие файловые системы устанавливаются, как подкаталоги.
Эти подкаталоги могут существовать или на диске, как в случае с
символическими связями, или в независимом пространстве, названном
деревом префиксов. Дерево префиксов отображает полные имена адми-
нистраторам ввода/вывода, которые в свою очередь устанавливают со-
ответствие с дисками и устройствами. Во всех примерах в этой главе
дерево префиксов используется для разделения пространства полных
имен. Для получения дополнительной информации о дереве префиксов
смотрите в "Архитектуре системы" главу "Пространство имен ввода/вы-
вода".
8.2. Разделение пространства полных имен
Следующие примеры должны помочь разъяснить, как разметить
пространство имен маршрутов. Мы рассмотрим следующие конфигурации:
- жесткий диск и флоппи-дискета; - два жестких диска; - два или бо-
лее QNX-разделов; - локальные и удаленные жесткие диски.
ВНИМАНИЕ. В этих примерах, мы предполагаем, что Fsys также,
как и соответствующие драйверы, запущены и что ко-
манда mount -p была выдана на Ваш жесткий диск.
8.2.1. Жесткий диск и флоппи-дискета
Жесткий диск монтируется, как наклонная черта вправо_(/), и
формируется корень файловой системы. Флоппи-дискета устанавливает-
ся, как /fd0:
mount /dev/hd0t77 /
mount /dev/fd0 /fd0
- 89 -
Любая ссылка на полное имя, начинающееся с /fd0, будет направ-
ляться к файловой системе QNX на флоппи-дискету. Например, команда:
ls -aR /fd0
отображает все файлы на флоппи-дискете.
8.2.2. Два жестких диска (на одном узле)
Первый жесткий диск смонтирован, как наклонная черта впра-
во (/), и формируется корень файловой системы. Второй жесткий диск
установлен, как /home2:
mount /dev/hd0t77 /
mount /dev/hd1t77 /home2
Любая ссылка на полное имя, начинающееся с /home2, будет нап-
равляться к файловой системе QNX на втором жестком диске. Например,
команда:
ls -aR /home2
отображает все файлы на втором жестком диске.
8.2.3. Два или более разделов QNX
Вы можете иметь три раздела QNX на одном жестком диске. Первый
раздел должен иметь тип 77 (смотрите утилиту fdisk в "Utilities Re-
ference"). Второму разделу должен быть назначен тип 78 и третьему -
тип 79.
Например:
mount /dev/hd0t77 /
mount /dev/hd0t78 /home2
Любая ссылка на полное имя, начинающееся с /home2 будет нап-
равляться к файловой системе QNX во втором разделе. Например, ко-
манда:
ls -aR /home2
отображает все файлы во втором разделе.
- 90 -
8.2.4. Локальные и удаленные жесткие диски
В сети Вы можете иметь диски с файловой системой QNX в более
чем одной машине. Вы можете скомпоновать их так, чтобы они были:
- независимыми;
- первичными/вторичными;
- связно-независимыми.
ВНИМАНИЕ. В следующих примерах локальные файловые системы свя-
зываются с блочными специальными файлами (например,
/dev/hd0t77), а удаленные файловые системы связыва-
ются с отображениями префиксов полных имен. Этот
префикс переназначает запросы к удаленной файловой
системе, которая будет связана с удаленным блочным
специальным файлом.
Независимая
В этой конфигурации Вы рассматриваете каждую машину, как неза-
висимую, с замкнутой файловой системой. Для того, чтобы управлять
файлом в удаленной машине, Вы должны в начале полного имени указать
номер узла удаленной машины. Например:
/etc/motd файл локальной файловой системы
//10/etc/motd файл удаленной файловой системы (узел_10)
Определение файловой системы для конкретного узла работает
всегда, как наиболее общий механизм для доступа к удаленным файлам.
Первичная/вторичная
В этой конфигурации Вы рассматриваете одну файловую систему,
как первичную, и устанавливаете вторую файловую систему, как подка-
талог в первичной. Например, предположим, что узел 1 имеет первичную
файловую систему, а узел 2 - вторичную, установленную, как /home2.
Узел 1 загружен с жесткого диска и имеет корень, установленный на его
локальном диске утилитой mount и построенный в образе операционной
системы (с Fsys и драйвером). Его файл системной инициализации вы-
зывает утилиту prefix, чтобы установить удаленную файловую систему
следующим образом:
prefix -A /home2=//2/home2
Узел 2 загружается через сеть из узла 1 и имеет корень файло-
- 91 -
вой системы, установленный /=//1/, используя утилиту sinit с опцией
-r операционной системы. Его файл системной инициализации вызывает
утилиту mount, чтобы установить локальную файловую систему следую-
щим образом:
mount /dev/hd0t77 /home2
Администратор файловой системы (Fsys) и его драйвер могут быть
включены в образ, но более предпочтительно запускать их из файла
системной инициализации. Другими словами, узел 2 загружен, как
простая бездисковая рабочая станция, которая стартует со своей фай-
ловой системой после загрузки. Оба узла 1 и 2 будут иметь доступ к
файловой системе на узле 1, как /, а на узле 2, как /home2.
Связно-независимая
В этой конфигурации Вы рассматриваете каждую машину, как неза-
висимую, с замкнутой файловой системой, но Вы компонуете их вместе
через утилиту prefix. Например, допустим, что файловая система на
узле 1 имеет каталог /home1, а файловая система на узле 2 имеет ка-
талог /home2. Вы могли бы отобразить каждый каталог home в область
другой файловой системы следующим образом:
В узле 1: В узле 2:
prefix -А /home2=//2/home2 prefix -A /home1=//1/home1
Вместе с тем, каждая файловая система автономна со своими
собственными копиями /bin и т.п. Преимущество - большая избыточ-
ность: если один отдел использует узел 2, и узел 1 отключается, от-
дел, используя узел 2, может продолжать работу (кроме файлов из
/home1, которые не будут доступны).
ВНИМАНИЕ. Вместо использования префиксов в разделении прост-
ранства полных имен, Вы можете использовать символи-
ческие связи. Более полное описание смотрите в "Ар-
хитектуре системы" в главе 5 "Администратор файловой
системы".
8.3. Установка файловой системы DOS
Администратор файловой системы Dosfsys обеспечивает полностью
прозрачный доступ к файлам DOS и каталогам, которые находятся на
диске DOS. Dosfsys может поддерживать до восьми накопителей. Вы мо-
- 92 -
жете создавать файлы на дисках DOS, читать, записывать и удалять их
c использованием большинства программ QNX. Вы можете также созда-
вать, читать и удалять каталоги на дисках DOS стандартными утилита-
ми QNX, такими как, например, mkdir, ls и rmdir. Большинство стан-
дартных утилит QNX будут работать с файлами DOS при условии, что
структура файлов DOS соответствует функциональному запросу утилиты.
Ваши собственные программы также смогут обрабатывать файлы DOS точ-
но так же, как они обрабатывают файлы QNX, используя стандартные
функции ввода/вывода open(), read(), write(), close(), seek() и
т.п. Когда Вы читаете каталоги DOS, они представлены в формате QNX.
8.3.1. Режимы вызова
Dosfsys имеет четыре режима вызова:
Dosfsys [-S|s] [-e] [-m] [-t] [dos_drive=qnx_drive[,R]]... &
Dosfsys -i [-n node] [dos_drive_path]...
Dosfsys -o [-n node]
Dosfsys -x [-n node]
Опция -i позволяет Вам получать информацию о накопителях DOS,
установленных в настоящее время. Опция -o позволяет Вам увидеть
имена любых файлов, открытых к настоящему времени на каждом уст-
ройстве. Опция -x завершает работу сервера Dosfsys. Если Вы не за-
даете -i, -o или -x, Dosfsys будет запускаться и пытаться настро-
иться на определенные накопители. Для того, чтобы запустить сервер
Dosfsys или завершить его работу, Вы должны войти в систему, как
суперпользователь (root).
8.3.2. Запуск Dosfsys
Когда Вы запускаете Dosfsys, он:
- открывает определенный накопитель(накопители);
- принимает имя /dos, как корень DOS;
-регистрирует имя qnx/dosfsys в локальном Администраторе про-
цессов.
Если никакие опции не были определены или если было задано
-S или -s, Dosfsys просматривает каталог /dev для настройки на за-
данные накопители DOS. Если в командной строке ничего дополнительно
не указано, Dosfsys настраивается максимум на восемь накопителей.
Первичные разделы DOS (/dev/hd0t1, /dev/hd0t4, /dev/hd0t6,...) и
разделы расширения (/dev/hd0t1.1, /dev/hd0t1.2,...) монтируются,
начиная с накопителя C (/dos/c). Накопители на гибких дисках монти-
руются следующим образом:
- 93 -
/dev/fd0 ---> /dos/а
/dev/fd1 ---> /dos/b
8.3.3. Восприятие имен Dosfsys
Dosfsys может настраиваться максимум на восемь накопителей.
Как отмечалось выше, Dosfsys принимает имя /dos, как системный пре-
фикс. Он также будет управлять каждым специфическим именем накопи-
теля, таким как /dos/а, /dos/b и т.п. Эти имена не регистрируются в
системном префиксном дереве, но содержатся непосредственно в Dosf-
sys. Это обеспечивает прозрачный доступ пользователю за исключением
того, что пользователь не может создавать файлы или каталоги в кор-
не /dos.
8.3.4. Устройства DOS
Устройством DOS может быть одно из следующих:
- раздел DOS на жестком диске;
- флоппи-дискета;
- образ раздела DOS или дискеты.
Для того, чтобы создать образ дискеты DOS или раздела DOS, ис-
пользуйте утилиту cp QNX. Например, для того, чтобы скопировать об-
раз флоппи DOS на Ваш накопитель на гибких дисках, используйте сле-
дующее:
cp /dev/fd0 /usr/qnx/dosa
и затем вызывайте Dosfsys следующим образом:
Dosfsys a=/usr/qnx/dosa &
То же самое можно сделать с разделом жесткого диска. Dosfsys
будет оперировать с этими образами также, как и с фактическими уст-
ройствами. Для всех несменных устройств Dosfsys немедленно читает
блок параметров загрузки DOS (BPB), а также начальную часть таблицы
размещения записей файла (FAT). Для сменных устройств BPB и FAT чи-
тается только тогда, когда накопитель доступен. Когда Dosfsys имеет
открытое несменное устройство, устройство блокируется на запись
так, что никакой другой процесс не может ничего записать на это
устройство, минуя Dosfsys. Сменные устройства остаются открытыми и
блокированными только в момент обращения (например, в течение чте-
ния или записи на диск). Имейте в виду, что если Вы не задали оп-
цию R, все накопители имеют доступ на чтение/запись.
- 94 -
8.3.5. Поддерживаемые версии DOS
Администратор Dosfsys поддерживает все разделы DOS, форматиру-
емые в DOS 2.1 или выше, включая стандартные начальные разделы DOS,
большие разделы DOS (DOS 4.0 и DOS 5.0 >32M), и расширенные разделы
DOS (тип 5). Поддержаны жесткие диски, флоппи-дискеты 5 1/4 дюйма и
3 1/2 дюйма.
Типы разделов DOS
Стандартные типы разделов жесткого диска DOS:
-------------------------------------------------------------------
Тип раздела: Описание:
-------------------------------------------------------------------
1 Начальный раздел DOS (12-бит FAT)
4 Начальный раздел DOS (16-бит FAT; _7,_032M)
5 Расширенный раздел DOS (DOS 3.3 или старше)
6 Начальный раздел DOS (DOS 4.0 или старше; >32M)
-------------------------------------------------------------------
8.3.6. Текстовые файлы DOS
Структура текстовых файлов DOS отличается от структуры, ис-
пользуемой в QNX (под текстовым файлом понимаются строки AS-
CII-текста, разделяемые последовательностями разделителей строк). В
DOS каждая строка текстового файла завершается последовательностью
возврат каретки/перевод строки (CR/LF), в то время, как в QNX каж-
дая строка завершена символом перевода строки (LF).
Администратор Dosfsys не преобразует эти файлы. Все файлы
рассматриваются "так, как есть".
Таким образом, Вы должны использовать утилиту textto QNX, что-
бы преобразовать Ваши текстовые файлы перед копированием их на (или
из) QNX и DOS-диски.
Имейте также в виду то, что текстовые файлы, создаваемые неко-
торыми программами DOS могут содержать символ (^z), как последний
символ файла. Это также рассматривается так, как есть.
8.3.7. Двоичные файлы DOS
Т.к. Dosfsys не преобразует содержимое файлов, двоичные файлы
будут скопированы на (или из) QNX/DOS разделов без изменения.
- 95 -
8.3.8. Преобразование символов и имен из QNX в DOS
В DOS Вы не можете включить никакой из этих символов в имя
файла:
/ \ [ ] : * | + = ; , ?
Также Вы не можете использовать следующие имена файлов:
CLOCK$ CON PRN
NUL AUX COM1
COM2 COM3 COM4
LPT1 LPT2 LPT3
Если Вы пытаетесь создать файл, который содержит один из недо-
пустимых символов DOS или он имеет запрещенное имя файла, то Ваша
попытка будет отвергнута. Т.к. все имена файлов и все символы в
имени файла в QNX допустимы, никаких разрешений на эти имена файлов
не требуется. DOS также отображает все алфавитные символы на верх-
нем регистре, поэтому при создании имени файла Dosfsys отображает
эти символы на верхнем регистре; DOS при возврате в приложение QNX
имя файла отображает на нижнем регистре.
Преобразование имен файлов QNX
Если Вы задаете -t при запуске Dosfsys, сервер переведет и/или
исключит любые имена файлов QNX, которые не соответствуют правилам
присваивания имен в DOS. Следующая таблица описывает, как преобра-
зовываются имена:
-------------------------------------------------------------------
Если имя файла QNX: Dosfsys будет:
-------------------------------------------------------------------
начинается с точки: . точка изменяется на $
содержит несколько точек изменяются все точки на $, кроме
последней
имеет префикс длиннее преобразует префикс в восемь символов
восьми символов
имеет суффикс длиннее преобразует суффикс в три символа
трех символов
-------------------------------------------------------------------
- 96 -
Вот некоторые примеры:
-------------------------------------------------
Имя файла QNX: Имя файла DOS:
-------------------------------------------------
.profile $profile
a.b.c.d $a$b$c.d
longfilename longfile
longfilename.extension longfile.ext
a..b..c.def.g.h a$$b$$c$.h
-------------------------------------------------
8.3.9. Метки тома DOS
DOS использует понятие метки тома, которое является фактичес-
ким входом в корневой каталог файловой системы DOS. Для того, чтобы
отличать метки тома от фактического файла DOS, Dosfsys устанавлива-
ет знак равенства (=) первым символом в имени метки тома. Dosfsys
рассматривает эту метку тома, как файл с нулевой длиной, который
открыт только на чтение и доступ к которому не может быть изменен.
8.3.10. Преобразование атрибутов доступа DOS/QNX
DOS не использует все биты доступа, которые имеются в QNX. DOS
рассматривает биты доступа следующим образом:
READ_ONLY - только для чтения
HIDDEN - скрытый
SYSTEM - системный
VOLUME_LABEL - метка тома
DIRECTORY - каталог
ARCHIVE - архивный
Преобразование битов-атрибутов
Dosfsys использует следующую логику, чтобы преобразовать би-
ты-атрибуты из QNX в DOS: - если на входе - каталог, устанавливает-
ся бит DIRECTORY DOS - если на входе - файл и, если все биты записи
QNX отсутствуют, то устанавливается бит READ_ONLY
Преобразование битов доступа
Используется следующая логика, чтобы преобразовать биты досту-
- 97 -
па из DOS в QNX:
- в QNX устанавливается бит "чтение" для пользователя, группы
и других пользователей;
- если на входе не метка тома и если обращение не только на
чтение, в QNX устанавливается бит разрешения записи для пользовате-
ля, группы и других пользователей;
- если на входе каталог, в QNX устанавливаются биты "каталог"
и "выполняемый" для пользователя, группы и других пользователей;
- если на входе файл, в QNX устанавливается бит "регулярный
файл".
ВНИМАНИЕ. Если файл записывается, в DOS устанавливается бит
"архивный". Если Dosfsys стартовала с опцией -e,
все файлы и каталоги DOS будут иметь в QNX бит "вы-
полняемый", установленный для группы/владельца/дру-
гих пользователей.
8.3.11. Владелец файла
Хотя файловая система DOS не поддерживает идентификаторы поль-
зователя и группы, Dosfsys не возвращает код ошибки, если была сде-
лана попытка изменить ID группы или ID пользователя утилитой chown
или библиотечной функцией chown(). Поэтому много утилит, использую-
щих библиотечную функцию chown(), которая могла бы в результате
дать много сообщений об ошибке, работают без выдачи ошибок. Все
файлы под Dosfsys, принадлежащие суперпользователю (uid=0, gro-
up=0), доступны всем.
8.3.12. Завершение Dosfsys
Опция -x завершает работу сервера Dosfsys. Если Вы задаете
-x, никакие новые запросы open() приниматься не будут, и сервер
закрывает все активные файлы (то есть файлы, которые все еще оста-
ются открытыми).
8.3.13. Коды ошибок, возвращаемые Dosfsys
Если запрос, сделанный приложением, не поддерживается Dosfsys,
возвращается код ошибки EOPNOTSUPP. Примеры запросов, не поддержи-
ваемые Dosfsys, приведены ниже:
- 98 -
LINK
BLOCK_READ
BLOCK_WRITE
MOUNT_PARTITION
MOUNT_RAMDISK
PIPE
DISK_GET_ENTRY
RECORD LOCKING
SYMBOLIC LINK
Если Dosfsys обнаружит искажения файловой системы, он возвра-
щает код EBADFSYS, после чего Вы можете выполнить утилиту CHKDSK
под DOS, чтобы скорректировать искажения. Структура файловой систе-
мы DOS такая, что размер корневого каталога фиксируется во время
форматирования и не может меняться. Если корневой каталог перепол-
няется, выдается ошибка (ENOSPC).
.
- 99 -