OS QNX 6.X: Установка. - ОС и разработчик - Shelek
Немного истории: Постоянно, будучи занятым своим профессиональным делом, написанием новых программ для различных операционных систем (в последнее время преимущественно для QNX), я имел неосторожность в соавторстве с Дмитрием Алексеевым из Санкт-Петербурга написать для журналов несколько обзорных статей об операционной системе QNX ([1]-[3] они отличаются детализацией и направленностью). Почему неосторожность? Потому, что с тех пор электронная почта заваливает меня письмами с вопросами: Где взять? Что делать дальше? (почти дословно - извечный вопрос русской интеллигенции: Что происходит? Кто виноват? Что делать?). Это и послужило побудительным мотивом к тому, чтоб отложить незаконченные программные фрагменты, и написать эти заметки, которые, я надеюсь, позволят множеству желающих быстро и безболезненно войти в необычный и заманчивый мир QNX. И поверьте он того стоит!

Где взять? Канадская фирма QSSL разработчик QNX по своим лицензионным условиям предоставляет один из релизов своей операционной системы (QNX Momentics NC Non Commercial) для свободного некоммерческого использования: обучение, индивидуальная разработка программ, перенос программ из других UNIX систем и т.д. Поэтому, я не стану советовать вам пойти на Митинский рынок (более того, как далее станет ясно именно на рынок ходить не нужно: там всё оно не того качества). Необходимые дистрибутивы в виде ISO-образов 2-х CD свободно предоставляются QSSL по адресам: http://get.qnx.com - собственно система QNX Momentics 6.2, и http://qdn.qnx.com - программное обеспечение для QNX от сторонних разработчиков (QNX Public Software CD - QNX Unsupported Repository). Образ предыдущего релиза системы QNX RTP 6.1 (полуторагодичной давности) имеет размер 442Mb. Новый релиз QNX Momentics 6.2, представленный только в июне этого года, предлагается на двух CD: собственно система размером 195Mb и free, public программное обеспечение от сторонних производителей (преимущественно портированное GNU) размером 441Mb. Если вас смущает необходимость достать из Internet 636Mb, то существует ещё одна возможность: обратитесь в форум некоммерческого русскоязычного сайта пользователей QNX: http://qnx.org.ru/forum - вам обязательно помогут по региональному признаку получить копию CD на тех же некоммерческих началах. Я категорически советую использовать только последний релиз системы 6.2, хотя в описаниях ниже присутствуют параллельно и особенности 6.1: просто при этом многие детали сразу становятся понятнее.

Примечание: Остаётся ещё технический вопрос: каким инструментом перенести ISO-образ на CD-диск? Это, возможно, и не так принципиально, но опыт показывает, что писать образ для полного сохранения его структуры лучше всего программой Nero Burning ROM, версий 5 и выше: ею очень просто писать именно образы ISO. Для этого используется режим меню Файл Прожечь образ (File Burn image ) с последующим указанием файла образа. В то время, как ряд даже более известных программ записи CD вносят какие-то дополнительные эффекты, после которых CD потом не могут быть использованы создание загрузочных дисков QNX таким образом заведомо не создаёт проблем.

Установка. Установка системы столь же продумана и приятна, как и сама система. Система допускает 2 принципиально различные вида установки: в уже существующую файловую систему FAT32 системы Windows (практически любой Windows с некоторыми вариациями), или установку на вновь создаваемый раздел диска с родной файловой системой QNX. Кроме того, могут быть различные вариации установки в зависимости от оборудования, формы дистрибутива и т.д., большая часть их и описывается ниже.
Установка в Windows FAT32. Такой вид установки предназначен, в первую очередь, для ознакомительных целей: ему свойственна простота, более привычные действия при инсталляции, не требует предварительного знания командного языка UNIX и т.д. Тем не менее это вполне полноценный вид установки, функционально ничем не отличающийся от установки в раздел QNX. На первом рисунке показано стартовое окно установки (возникающее при автостарте CD или запуске программы Setup.exe из его корневой директории) системы QNX 6.1. На следующем рисунке, соответственно, то же для QNX 6.2 NC (в этом окне нас пока интересует левая его часть Install, к правой Create мы очень скоро вернёмся). Чуть ниже показано начальное окно установки последней пред-релизной beta-версии QNX 6.2, что, очевидно, соответствует QNX 6.2 SE.
При выборе Install начинается привычная процедура Windows инсталляции: вас попросят принять лицензию QSSL, выбрать FAT диск для установки, и определить размер, выделяемый для файловой системы QNX. На 2-х последних пунктах следует остановиться подробнее. Установка будет произведена во вновь созданный каталог FAT системы D:Program Filesqnx (где D: - это, как пример, выбранный вами диск установки). В Windows файл config.sys будет вписано нечто, подобное следующему (показанные у меня 2 строки это одна длинная перенесенная строка):
Код:
[QNX]
DEVICE=D:PROGRA~1QNXbootbinloadqnx.sys
D:PROGRA~1QNXbootfsroot.qfs,D:PROGRA~1QNXbootfsqnxbase.ifs

Это действие создаст начальное меню загрузки, с помощью которого пользователь при следующей (и всех последующих) загрузке сможет выбирать: какую систему он хочет загрузить Windows или QNX. После завершения установки (здесь мы забегаем немного вперёд, но это нужно для понимания), содержимое (DIR) каталога D:Program Filesqnxbootfs будет примерно следующим:
Код:
Том в устройстве D не имеет метки
Серийный номер тома: 16E1-1C30
Содержимое папки D:Program Filesqnxbootfs

QNXBASE IFS 727 052 29.06.02 11:46 qnxbase.ifs
QNXBAS~1 IFS 727 052 29.06.02 11:46 qnxbasedma.ifs
QNXBASE QFS 50 577 920 29.06.02 11:46 qnxbase.qfs
ROOT QFS 1 468 006 400 29.06.02 11:45 root.qfs

Здесь нас интересуют 2 файла:

* qnxbase.ifs это образ ядра OS QNX, с которого, собственно, и происходит загрузка. К нему мы ещё будем возвращаться не раз.
* root.qfs это файл образа файловой системы QNX. Его-то размер и запрашивает программа Windows инсталляции. QNX 6.1 указывает в качестве минимально рекомендуемого (по умолчанию) размера - 600Mb, QNX 6.2 - 800Mb. Увеличить этот размер позже нельзя (или достаточно проблематично). Если вы планируете активно устанавливать новые программные пакеты от других производителей, то эти размеры следует несколько увеличить. Хорошие результаты дают уже значения 1.2Hb для QNX 6.1, 1.5Hb для QNX 6.2, соответственно. Тем не менее, у меня есть положительный опыт установки долго и плодотворно работающего экземпляра QNX 6.1 на отдельный старенький винчестер полной ёмкостью 820Mb. (Сравните с аппетитами Windows: в какой объём вы сможете втиснуть Windows XP, ну пусть даже Windows NT QNX серверная OS с утилитами, целевыми программными пакетами, сервером HTTP, средствами программной разработки и мн. др.?). В этом файле будет полностью размещаться корневая файловая система вновь созданной QNX системы (т.е. внутри файловой области будет воссоздана структура файловой системы QNX). Поэтому кажется совершенно разумным, что лучшие результаты можно ожидать, если этот файл будет размещён одним непрерывным сегментом (не сегментирован) на диске (но это не является необходимым условием). Т.е. диск (на который предполагается установить QNX) перед установкой целесообразно дефрагментировать в Windows, при этом можно ожидать большие скорости дисковых операций в QNX. Это подтверждают и экспериментальные наблюдения.


Возвращаемся к инсталляции (мы всё ещё находимся в Windows). После определения диска установки и размера файловой системы QNX, вам будет предложено создать загрузочную дискету (мы к ней ещё вернёмся), лучше сейчас же это сделать, хотя это можно сделать всегда и автономно, используя программу qmakedsk.exe из корневого каталога дистрибутивного CD.

В завершение программа установки попросит определить пароль (password) для пользователя root. Внимание! Не забудьте введенный пароль, QNX это UNIX, а в любом UNIX без прав root вы не можете устанавливать и конфигурировать программное обеспечение, систему т.е. ничего не сможете. В этом месте проявляется отличия QNX-ов, установленных в FAT раздел, и в QNX раздел диска. Здесь трудно сказать, обязаны ли мы в этом недосмотру QSSL, либо в этом есть глубокая сермяжная правда. Во-первых, FAT-установка не позволит завести пользователя root без пароля (с пустым паролем), а QNX-установка позволит (хотя это и слишком опасно и, поэтому, вряд ли имеет смысл). Во-вторых, и это существеннее, FAT-установка попросит (вернее потребует, потому, что иначе вы не пройдёте это место) завести имя ещё одного пользователя, и указать для него пароль (и уже этот пароль может быть пустым).

Примечание: Замечание о начальном вводе пароля. Первоначально, наверное, лучше ввести простейший цифровой пароль, например 1: пароль конвертируется из Microsoft UNICODE в реальный пароль, в том числе, и с преобразованием русских литер в результате не исключено, что вы не сможете войти в систему при первой загрузки. Позже, можно сразу же после первой загрузки, вы можете произвольно изменить пароль.

Всё. На этом Windows-часть установки QNX завершена вам предлагается перезагрузиться. После первой перезагрузки у вас появится меню выбора загружаемой системы, нечто такое:

* Windows
* QNX Neutrino RTOS
* QNX Neutrino RTOS (DMA Disabled)


Примечание: Стоп, скажет придирчивый читатель: как же так - обещали 2 позиции, а дали 3! Я сознательно раньше упрощал картину: QNX предоставляет сразу 2 альтернативные ядра загрузки (qnxbase.ifs и qnxbasedma.ifs), отличаются они только тем, используют ли режим DMA обмена с диском, с которого производится загрузка. Сделано это потому, что в некоторых (на практике достаточно редких) случаях (в зависимости от комплектации компьютера) режим загрузки с DMA может завершиться зависанием. В этом случае у вас всегда остаётся возможность загрузки без DMA. Более того, на одном из моих компьютеров стоит аппаратный ULTRA66 (tm) Controller от Promise Technologe, который при включении компьютера догружает свой BIOS и т.д. так вот на нём удаётся установить QNX только DMA Disabled - UDMA обеспечивается аппаратно, а два механизма DMA на один диск это, наверное, уже слишком много В любом случае полезная возможность!

После выбора одного из режимов загрузки QNX начинается собственно установка системы, процесс этот достаточно продолжительный можем идти курить, на этом этапе от нас ничего не потребуется. Завершается этот этап установки переходом в графический режим (здесь пользователю предлагается уточнить параметры видеорежима, но лучше этого не делать всё это можно сделать позже), и формой для ввода: logon password. Входите под именем root, его полномочия понадобятся вам для конфигурирования системы, а его password вы определяли ранее - и вы в установленной системе QNX. В ней ещё предстоит выбрать и установить некоторые программные пакеты, присутствующие на дистрибутивных CD, но это уже совсем другая история

Примечание: В начальной форме для определения параметров графического режима есть один малоприметный флажок, добраться к которому нет возможности после завершения инсталляции (при снятом флажке создаётся файл /etc/system/trap/nophoton). Этот флажок означает он что-то такое: всегда изначально входить в графическую среду Photon, и по умолчанию он установлен. Если вы, как истинный UNIX-ист, предпочитаете загрузку в режиме текстовой консоли снимите этот флажок: в графический режим Photon вы при этом в любое время сможете входить вручную (командой ph). Эту опцию можно установить (или снять) и позже, вручную удаляя (или создавая) файл nophoton в каталоге /etc/system/trap.

В завершение, посмотрим в окне терминала (pterm) каталог корневой директории созданной системы (он нам понадобится далее по тексту), здесь и далее я буду выделять жирным шрифтом те команды, которые мы вводим с консоли:
Код:
#cd /
#ls -l
total 467638
drwxrwxr-x 5 root adm 2048 Jun 29 2001 .
drwxrwxr-x 5 root adm 2048 Jun 29 2001 ..
-rw------- 1 root root 0 Aug 21 20:54 .altboot
-r--r--r-- 1 root root 307200 Aug 21 20:54 .bitmap
-rw------- 1 root root 0 Aug 21 20:54 .boot
-rw------- 1 root root 0 Aug 21 20:54 .diskroot
-r--r--r-- 1 root root 142336 Aug 21 20:54 .inodes
-rw------- 1 root root 134217728 Aug 21 20:54 .swapfile
-rwxr-xr-x 1 327 120 5987 Jun 04 2001 MANIFEST
drwxr-xr-x 2 root bin 4096 Jun 28 2001 bin
drwxrwxrwx 4 root root 0 Aug 22 20:39 boot
dr-xr-xr-x 2 root root 0 Aug 22 18:05 dev
drwxr-xr-x 7 root sys 2048 Jun 28 2001 etc
dr-xr-xr-x 2 root root 0 Aug 22 18:05 fs
drwxrwxr-x 3 root root 2048 Aug 22 00:56 home
drwxr-xr-x 3 root bin 2048 Jun 28 2001 lib
dr-xr-xr-x 1 root root 0 Aug 22 17:39 net
drwxrwxr-x 2 root root 2048 Aug 22 00:56 opt
drwxr-xr-x 3 root root 2048 Aug 22 00:56 pkgs
dr-xr-xr-x 2 root root 104726528 Aug 22 18:05 proc
drwx------ 3 root root 2048 Aug 22 00:58 root
drwxr-xr-x 2 root bin 2048 Jun 28 2001 sbin
drwxrwxrwt 2 root root 2048 Aug 22 18:00 tmp
drwxr-xr-x 5 root sys 2048 Jun 28 2001 usr
drwx--x--x 11 root root 2048 Aug 21 22:04 var
drwxrwxr-x 8 root adm 2048 Jun 29 2001 x86

Это типичный вид QNX файловой системы (очень близкий ко всем другим UNIX). Пока обратим внимание на следующие особенности:

* Файл .inodes это набор информационных записей (inode) файлов, присутствующих в системе, главный справочник файловой структуры диска, что характерно для всякого UNIX;
* Файл .bitmap это битовая карта разметки участков секторов диска (бит 1 - сектор занят, 0 - свободен);
* Файл .diskroot нулевой длины файл-признак корневой файловой системы QNX, в вашей дисковой системе может быть несколько альтернативных файловых систем QNX (но только файловых систем, созданных в QNX разделах, в FAT может быть создана только одна корневая файловая системы, даже на физически различных дисках). Если в компьютере найдено несколько корневых файловых систем, то при загрузке система запросит вас, какую из них монтировать как корневую;
* Файлы .boot и .altboot основной и альтернативный образ ядра системы QNX (к ним мы ещё вернёмся).


Установка в Windows NT / 2000 FAT32. QNX не может устанавливаться в файловую систему NTFS. Тем не менее, он может быть установлен на FAT32 диск под управлением Windows NT / 2000. При этом, однако, загрузка системы QNX не может обеспечиваться через config.sys. QSSL предлагает следующий способ обойти это ограничение:

Осуществлять загрузку ядра системы с загрузочной дискеты, подготовленной в ходе инсталляции, как это описывалось выше. После завершения начальной загрузки, будет подмонтирована корневая файловая система с FAT32, ядро загружено в оперативную память, а дискета может быть удалена из привода. Начальная загрузка с дискеты не влияет на скорость последующей работы загруженной OS.

Ещё один способ совместного сосуществования на диске QNX с Windows NT / 2000 будет описан ниже, при рассмотрении установки OS в раздел QNX.

Типовая установка в раздел QNX. Это настоящая, взрослая установка, но здесь придётся повозиться существенно больше (и ещё больше в каждом действии понимать что же мы такое делаем). Вся установка QNX в раздел производится в текстовом консольном режиме (ни о каком GUI здесь не может быть и речи), при необходимости, некоторые параметры запрашиваются у пользователя в диалоге: будьте готовы к осмысленным ответам на вопросы.

Чем такая установка лучше? Ну, во-первых это правильная установка, так, как и для всякой другой OS. Но, во многом, предпочтения определяются тем, для чего вы собираетесь использовать систему. Установка в раздел QNX работает с оригинальной файловой системой QNX, которая:

* робастая (устойчивая к сбоям)
* существенно быстрее.

Если вы предполагаете выполнять разработку или портирование программ, с большими объёмами компиляции (большой объём файловых операций) то система, установленная в раздел, будет в 2-2.5 раза быстрее. С другой стороны, если вам предстоит активно эксплуатировать Photon GUI приложения, то и установки в FAT раздел может оказаться вполне достаточно, и не нужно мучиться с установкой в собственный раздел.

Сразу же обратим внимание, что дистрибутивный CD QNX загрузочный. При записи CD с ISO образа проявите особую тщательность и не вносите изменений, чтобы сохранить эту его особенность (возможно, создать QNX и с дефектного не загрузочного CD, но тогда всё становится на порядок сложнее, и такие варианты будут рассматриваться ниже). Пока мы будем рассматривать установку QNX в раздел диска именно в предположении загрузочности дистрибутива, такая установка и названа выше как типовая.

Устанавливаем в SETUP компьютера первичную загрузку в CD. После загрузки вам предлагается альтернативные возможности на выбор (названы только основные, реально их больше: отладочный режим, safe режим и т.д.):

* Полная загрузка работоспособной системы с CD. Получив, таким образом, работоспособную QNX OS, вы можете выполнять любые действия, пользуясь возможностями системы, в том числе, и ручную пооперационную установку нового экземпляра на диск. Но этот путь требует глубокого знания консольных команд QNX.
* Загрузка OS с CD, с подмонтированием уже существующей корневой файловой системы QNX с диска. Позволяет таким образом работать с ранее созданным экземпляром системы (на диске может быть более одного экземпляра корневой файловой системы).
* Режим создания нового QNX раздела на диске с последующей установкой в него системы QNX. Собственно этот режим нас сейчас и интересует.


Для того, чтобы воспользоваться этим (полуавтоматическим) режимом создания раздела и системы, вы должны предусмотреть на диске неразмеченное пространство требуемой величины (выше уже назывались минимальные ориентиры этой величины 1-1.5Hb), возможно, удалив ранее существовавший на нём раздел (например, программой fdisk Windows). Если вы выберете режим создания раздела с установкой, то система предложит использовать под создаваемый раздел:

* всё свободное пространство;
* половину свободного пространства;
* четверть свободного пространства и т.д.

После этого система:

* Подготавливает раздел к созданию файловой системы (команда dinit, см. ниже);
* Отмечает созданный раздел как загрузочный;
* Записывает начальный QNX загрузчик;
* Копирует файл образа ядра .boot на раздел;
* Копирует корневую файловую систему QNX на раздел.


В процессе установки системы вас, так же как при установке в FAT32 запросят пароль пользователя root, но вы можете оставить его пустым. Дополнительные регистрационные записи пользователя создаваться не будут: это вам предстоит сделать позже вручную при администрировании созданной системы.

Всё! Даже проще, чем в случае FAT32 (но это только в том случае, если абсолютно всё пройдёт гладко, что тоже иногда случается). Следующую перезагрузку вы делаете уже из раздела QNX под управлением загрузчика QNX. При загрузке он позволяет выбрать раздел диска, с которого будет происходить загрузка, т.е. выбрать одну из установленных у вас OS (при наличии нескольких дисков загрузчик QNX позволяет выбрать и диск загрузки). Такая установка разрешает и проблемы сосуществования QNX с Windows NT / 2000, о чём говорилось выше.

Рассмотрим, как и ранее, каталог корневой директории (приведено только начало):
Код:
#ls -l /
total 265993
drwxrwxr-x 15 root root 4096 Aug 22 18:06 .
drwxrwxr-x 15 root root 4096 Aug 22 18:06 ..
-rw------- 1 root root 0 Aug 22 17:37 .altboot
-r--r--r-- 1 root root 1034185 Aug 22 17:37 .bitmap
-rw------- 1 root root 681300 Aug 22 17:37 .boot
-rw------- 1 root root 0 Aug 21 20:54 .diskroot
-r--r--r-- 1 root root 205824 Aug 22 17:37 .inodes
-rw------- 1 root root 134217728 Aug 21 20:54 .swapfile
. . . . . . . . . .

Обращает на себя разница в размерах .boot в корневых файловых системах, установленных в FAT32 и в QNX раздел. Почему? Да потому, что в QNX разделе это действительно образ ядра системы, а в FAT32 образ ядра остался в Windows файловой системы в файле qnxbase.ifs. И размеры их подобны: .boot 681300, qnxbase.ifs 727052, но не равны. Это и естественно: образы незначительно отличаются функционально, но, самое главное, форматом: .boot чистый бинарный QNX образ, qnxbase.ifs - что там в config-драйверах DOS - *.com формат без PSP

Примечание: Хорошей идеей было бы копирование сразу после создания системы содержимого основного образа системы .boot в .altboot. При этом, если в результате манипуляций с основным образом (например, при сборке нового образа системы, хотя в состав QNX 6.2 в поставке NC и не входит mkifs средство сборки ядра) ваша система перестанет загружаться, то у вас всегда останется альтернативная загрузка со старым образом ядра, после чего можно всё поправить. Как перекопировать образ - рассказывается ниже.

Установка без загрузочного CD. А что делать в этом случае? Так бывает, например, когда запись CD произведена с отклонениями, пусть незначительными, от исходного ISO образа. Или другой случай и CD нормальный, но SETUP компьютера не позволяет установить загрузку с CD (на старых моделях компьютеров). Установку в раздел можно произвести и в этом случае.

Нам нужна минимальная загрузочная система QNX. Для этого воспользуемся загрузочной дискетой. Её создание - это и есть тот режим Create в правой части окна Windows-инсталляции, о котором я обещал рассказать позже (но дискету можно создать и автономно DOS-программой qmakedsk.exe, находящаяся в корневой директории дистрибутива QNX 6.2). В QNX 6.1 есть почти аналогичная программа, но она нас не устраивает в этом качестве: в QNX 6.1 система на дискете пригодна только для загрузки с монтированием уже ранее существующей корневой директории QNX, но не для создания раздела и корневой системы.

При загрузке с загрузочной дискеты (с нажатием пробел для выбора опциональных возможностей), мы можем по F10 (удобно вместе в F6 для режима детального вывода) перейти в полный цикл подготовки раздела и инсталляции, как это было описано выше.

Если уже ничего не помогает. Может возникнуть ситуация, когда нужно установить QNX на компьютер без CD привода, или при отсутствии загрузочного CD с QNX 6.1, наконец: что-то при установке пошло не так, как описано выше. Не всё ещё потеряно, можно установить QNX и в этом случае. При такой установке нам предстоит вручную, командами QNX, подготовить раздел, а потом перенести в него уже существующую систему. Самое важное, что если мы умеем это делать, то мы сможем произвольно переносить свою систему в любое место, например, во flash диск DiskOnChip! Но этот тип установки только для настоящих мужчин, любящих поработать руками.


Итак, приступаем.

* Нам нужна некоторая исходная система QNX, но ни с CD, ни с дискеты нам её получить не удаётся. Установим систему в FAT раздел. Это, как правило, не обязательный этап чаще у нас будет потребность перенести уже существующую копию QNX на новый носитель, но, по крайней мере, таким образом можно легко получить стартовый экземпляр системы. Обычно, установка в раздел FAT происходит без каких либо проблем. Загружаем эту систему (все операции должны выполняться в системе QNX, не в DOS/Windows!).
* Создаём QNX раздел, для чего запустим программу fdisk (всё под именем пользователя root): #fdisk /dev/hd0

Это вид команды для 1-го IDE диска в системе (часто это Primary Master), для других, соответственно: /dev/hd1, /dev/hd2, /dev/hd3 Возможный вид (текстового) экрана вывода fdisk показан ниже. На представленном на рисунке диске нет собственных QNX-разделов, QNX в данном случае установлен в FAT, но видно 2 Linux-раздела (native и swap: в Linux-нотации они привычней как 0x82 и 0x83, но QNX fdisk показывает тип системы в десятичной нотации). Клавишами стрелки Up-Down на клавиатуре вы можете перемещаться между разделами диска, а Left-Right между операциями меню в верхней части экрана. Чем приятен fdisk от QNX (так же как и fdisk в Linux), так это то, что он не сделает изменений (не напортит) в разбивке диска до тех пор, пока вы не выполните операцию Save в меню. Экспериментируйте!

В рассматриваемом случае, вам необходимо выбрать неиспользуемый (неразмеченный) раздел диска (или удалить существующий - Delete) и выполнить из меню Change. Для разделов QNX предусмотрены 3 типа разделов: QNX 77, QNY 78, QNZ 79 (на одном физическом диске не могут одновременно присутствовать более одного QNX раздела с совпадающими типами). Интересно, что QNX 6.1 при стандартной установке с загрузочного CD создавал первичный раздел типа QNX (77), а QNX 6.2 создаёт QNZ (79). Но оставим это на совести QSSL, похоже, что это 3 полностью идентичные типа. Вам предстоит: Change определить тип неиспользуемого раздела; определить его границы (размер); Boot определить его как загрузочный; Save записать сделанные изменения в MBR.

Код:
FDISK
Ignore Next Prev 1 2 3 4 Change Delete Boot Unboot Restore Loader Save Quit

_____OS_____ Start End ______Number_____ Size Boot
name type Cylinder Cylinder Cylinders Blocks

--> 1. FAT32 ( 11) 0 194 195 3132612 1529 MB *
2. nonQNX (130) 580 596 17 273105 133 MB
3. nonQNX (131) 195 579 385 6185025 3020 MB
4. Extd'd ( 15) 597 1215 619 9944235 4855 MB


Choose a partition by typing the partition number OR moving the pointer
with the UP/DOWN arrows.
Then, choose one of the actions on the top line of the screen.


Drive : /dev/hd0 Config: 255 Heads
Size : 9538 Mbytes 63 Sectors/track
Loader: QNX 1216 Cylinders
512 Block Size
[/li]
[li]Перегружаем систему, чтобы сделанные изменения вступили в силу. После перезагрузки у вас в каталоге /dev появится устройство какого-то такого вида: hd0t79 (обратите внимание, что в каталоге примонтированных файловых систем /fs у вас всё ещё нет нового устройства диск не подготовлен). Созданный диск нужно подготовить: #dinit -h
После выполнения этой операции хорошо бы проверить подготовленный диск (операция может оказаться достаточно продолжительной):
#dcheck m /dev/hd0t79
Теперь диск подготовлен. Снова перезагрузка. Теперь в /fs появится новый диск, нечто типа /fs/qnx4-hd0t79, мы можем посмотреть его содержимое:
Код:
#ls /fs/qnx4-hd0t79
drwxrwxr-x 5 root adm 2048 Jun 29 2001 .
drwxrwxr-x 5 root adm 2048 Jun 29 2001 ..
-rw------- 1 root root 0 Aug 21 20:54 .altboot
-r--r--r-- 1 root root 307200 Aug 21 20:54 .bitmap
-rw------- 1 root root 0 Aug 21 20:54 .boot
-r--r--r-- 1 root root 142336 Aug 21 20:54 .inodes

Стандартных UNIX каталогов нет (да и откуда им пока взяться), обращает на себя внимание нулевой размер .boot и отсутствие .diskroot. К этой стадии завершено создание нового рабочего диска QNX, который вы можете примонтировать, например, в качестве /home (естественно, в таком качестве раздел не следует отмечать как загрузочный). Для получения системного диска нам осталось скопировать на него образ ядра системы, и поместить на него файл .diskroot, отмечающий файловую систему как корневую. Эти файлы мы можем взять с дискеты, которая создаётся в DOS программой qmakedsk.exe:
Код:
#mount /dev/fd0 /fs/fd
#mv -f /fs/fd/.boot /fs/qnx4-hd0t79
#mv -f /fs/fd/.diskroot /fs/qnx4-hd0t79

Минимально необходимые комментарии к этим операциям:

* не монтируйте дискету с типом DOS (часто используемый ключ t dos);
* вместо операции cp мы используем POSIX операцию mv во избежание Permission denied, связанного со специфическими атрибутами файлов;

[/li]
[li]Кажется всё Можно попробовать загрузиться (обратите внимание, что поскольку теперь у вас уже присутствует 2 альтернативных образа корневой файловой системы, OS просит по F1/F2 выбрать ту, с которой она будем работать). Но из этого ничего не получается: начинаетсначинается загрузка с нового раздела, но она завершается выводом последовательности до несколько сот символов . (нормальная загрузка сопровождается выводом ., но в количестве несколько десятков). Происходит это потому, что у нас уже создано загрузочное ядро системы, но нет типовой структуры UNIX файловой системы (/etc, /bin, /sbin, /lib, /opt и т.д.), некоторые файлы которой используются, в том числе, и на поздних стадиях загрузки. Поправим это дело, предварительно загрузившись со старого работоспособного экземпляра QNX (кстати, можете грузиться из нового образа, но по F2 указать старую корневую файловую систему очень поучительно):
#cd /
Копируем по-каталогам раздельно (к примеру, каталоги /dev, /fs, /net, /proc не подлежат копированию), например:
#cp -cR /bin /fs/qnx4-hd0t79/bin
. . . . и т.д.
В принципе, должно сработать и cp cR * /fs/qnx4-hd0t79 (благодаря ключу -R), но это уже для самостоятельной проработки. Всё, вот теперь можно перезагружаться с вновь созданной системы (и, возможно, уничтожить старый её экземпляр, установленный в FAT).[/li]
[/list]

Примечание: В п.3 мы могли бы инициализировать раздел одновременно с созданием в нём образа системы .boot, и тем самым упростить себе последующую жизнь. Делается это такой командой: dinit -hf /fs/fd/.boot при этом, конечно, дискета должна быть уже предварительно смонтирована, как мы это делали в п.4. Но я изложил последовательный путь по шагам, который даёт больше для понимания.

Примечание: Выше было написано уничтожить старый её экземпляр, установленный в FAT - естественно, предполагалось не физическое уничтожение каталога D:/Program Files/qnx, а деинсталляцию по правилам Windows. Но есть ещё одна интересная возможность (иногда, полезная практически, но ещё более для понимания происходящего). Установим загрузку с раздела Windows, с config-меню выбора OS и т.д. При загруженном экземпляре QNX, установленном в FAT32, удалим файл .diskroot в корне её файловой системы. Перезагружаемся образ ядра системы QNX qnxbase.ifs при загрузке перестаёт видеть корневую систему на своём FAT32 разделе и без запроса выбора монтирует файловую систему на разделе QNX. Что мы получили OS, со всеми преимуществами установки в раздел QNX, может быть запускаема из стартового меню Windows.



В завершение. В результате проведения инсталляции любого из описанных выше видов, вы должны получить полноценную работающую OS QNX с установленной графической системой Photon. Возможный вид установленной системы показан на рисунке (обои экрана показанной на рисунке системы отличаются от того, что вы получите сразу после установки, но это дело вкуса и настроек).

Следующее, что вам предстоит это настройки параметров системы, с дальнейшим выбором и установкой программных инструментов, комплектуемых с OS QNX (на 1-м CD QNX Momentics, и более чем 400Mb на 2-м CD). Но это уже совсем другая история, и я постараюсь её описать как-то в другой раз.

Благодарности: Настоящие заметки просто не имели бы шансов появиться, по крайней мере, в таком развёрнутом виде, если бы не имели место обсуждения этих вопросов на форуме: http://qnx.org.ru/forum . Первоначально я предполагал назвать в благодарностях 2-3 участника форума, чьими обсуждениями фактически была внесена полная ясность в вопрос, но позже понял, что все 338 (на сегодня) зарегистрированных участников форума, в той или иной мере, способствовали его прояснению, и поэтому должны быть названы все!
Information
  • Posted on 01.02.2010 00:42
  • Просмотры: 2113