RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : GRUB и попалама


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : valerius
To : valerius
Subj : GRUB и попалама

Блин, браузер обрезает сообщение -- пощу в 3-ий раз:

> лучше скачай с freeldr-201204012.zip Док, кроме release notes пока особых нет. Если что, спрашивай...

ЗЫ: Ставится на любой раздел жесткого диска, хоть logical, хоть primary. Просто берешь и распаковываешь архив в корень диска. (из всего архива для загрузки нужна лишь ветка boot). Затем запускаешь toolsfreeinstfi-os2.exe (OS/2 бинарь) или fi-w32.exe (Win32 бинарь). Linux и DPMI версии пока только полурабочие. Для запуска FreeLDR раздел с ним надо либо сделать загружаемым из другого бутменеджера, типа IBM-овского, либо установить (из FreeInst) мою MBR. Для установки MBR надо знать номер физдиска и номер раздела на нем. Физдиски и номера разделов нумеруются начиная с 1. Номера разделов 1-4 обозначают primary разделы. Разделы с номерами 5 и далее обозначают 1-й, и т.д. логические диски в extended разделе.

Ну и, надо прописать собственно бутблок FreeLDR, для этого достаточно указать букву диска. Букву FreeInst спрашивает сразу при запуске.

Для запуска linux-like ядер надо прописать такие строчки:

title openSUSE 11.3 - 2.6.34-12
kernel ()bootloaderlinux.mdl
module ()linuxvmlinuz root=/dev/sda9 resume=/dev/sda8 splash=silent quiet showopts vga=0x31a
module ()linuxinitrd.img

Т.е., первым модулем должно идти ядро со своей командной строкой, и, опционально, вторым модулем идет начальный рамдиск. Т.е., в отличие от GRUB, ядро и рамдиск указываются модулями.

Кроме того, в отличие от GRUB, макросом "()" обозначается диск, на котором стоит FreeLDR. И еще, можно указывать как прямые, так и обратныйе слеши. Еще одно отличие от GRUB состоит в том, что символ продолжения строки не "", а "^", подобно тому, как это сделано в подписях к WPS-объектам и 4os2.

Таким образом, можно запускать не только Linux, но и другие совместимые ядра, например, для запуска memtest86:

title Memtest86 3.4
kernel ()bootloaderlinux.mdl
module ()bootmemtest86

аналогично, запускаются образы дискет, харддисков и ISO-образы компакт-дисков при помощи memdisk, взятого из загрузчика SysLinux:

title Kolibri OS from ISO image
kernel ()bootloaderlinux.mdl
module ()bootmemdisk iso
module ()dataisoimgkolibri.iso

Кроме того, из FreeLDR можно запускать бутсекторы других разделов "по цепочке" при помощи chain.mdl:

title Load a bootsector of first primary partition (chainloading)
kernel ()bootloaderchain.mdl --bootdev=(hd0,0)
bsmodule (hd0,0)0+1

Здесь используется команда bsmodule вместо обычного module. Эта команда предназначена для запуска бутсекторов, она делает то же, что и IBM Bootmanager -- патчит бутсектор, передавая в его полях букву диска, номер физдиска и hiddensectors.

Кроме bsmodule, есть еще команда preproc -- это тоже вариант команды module, она предназначена для загрузки конфигов. Она не просто грузит конфиг как модуль в память, но и обрабатывает его препроцессором. Например, это используется в config.sys на моем бутдиске -- эта команда подставляет переменные из конфиг-файла загрузчика boot.cfg в config.sys и другие конфиги. Пример конфига (ramboot.cfg) я положил рядом с freeldr на ftp. Рядом лежат также memtest86 и memdisk, для экспериментов :)

Ну и, напоследок, пример для загрузки OS/2:

title OS/2 (PM/XWP)
kernel ()bootloaderbootos2.mdl --fs=FAT32 --module=FAT32 --drv=dlat --auto-preload
module ()os2ldr
module ()os2ldr.msg
preproc ()os2ldr.ini
module ()os2dump
module ()os2krnl
module ()os2krnl.sym
module ()os2logo
module ()kdb.ini
module ()altf2on.$$$
module ()os2norev.$$$
preproc ()ramboot.cfg config.sys
module ()os2bootaltf1.cmd
module ()os2bootaltf1bot.scr
module ()os2bootaltf1mid.scr
module ()os2bootaltf1top.scr
module ()os2bootconfig.x
module ()os2dlluconv.dll
module ()os2dllufat32.dll
module ()os2dllchkdsk32.dll
module ()os2chkdsk32.exe

--Здесь, как видно, препроцессируются os2ldr.ini и config.sys, причем config.sys берется из файла ramboot.cfg (который не обязательно должен быть в корне диска). Кроме того, в командной строке bootos2.mdl мы видим: --drv=dlat, это означает, что буква загрузочному разделу присваивается согласно LVM DLAT таблицам. можно также явно задавать букву, например --drv=d, или есть вариант --drv=auto, это для автоназначения буквы диска при использовании DANIDASD.DMD в качестве DASD-менеджера (нужно, например, при загрузке с USB-носителей ;))

Ну и, --fs=FAT32 и --module=FAT32 означает загрузку с FAT32 -- второе означает, что продолжить загрузку надо при помощи fat32.ifs (имя модуля FAT32), и первое означает, что импорт FS_NAME у IFS должен иметь значение FAT32. Для HPFS указывается --fs=HPFS --module=HPFS, для JFS аналогично JFS в обеих параметрах, а вот, например, для EXT2-OS2.IFS параметры разные :) (подробности см. в прилагаемой документации).

Параметр --auto-preload означает, что остальные модули (а их, на саммом деле, несколько десятков, в том числе, все BASEDEV) угадываются из config.sys автоматически. Если не указывать этот ключ, то все модули надо прописывать явно.

Ну и, наконец, возможна загрузка с рамдиска (рамдиск должен быть IFS-based, например, ramfs.ifs). В этом случае в --fs= и --module= указывается RAMFS, и, кроме того, указывается ключ --ramdisk-boot. На этом принципе работает мой бутдиск. Можете скачать его у меня с FTP (лежит в каталоге /incoming/bootos2/). Подробности здесь опущу (более подробно написано в readme к бутдиску). Бутдиск этот замечателен тем, что ест относительно мало памяти, запускает полную OS/2 с WPS, с TShell и с WPS/XWP (три варианта загрузки). Кроме того, диск замечателен еще и тем, что он одинаково грузится как с CD/DVD, так и с ATA HDD или USB HDD/flash. Загрузка с USB CD/DVD также поддерживается.

WBR,
valery


Thu 12 Apr 2012 23:50 Mozilla/5.0 (OS/2; Warp 4.5; rv:2.0.1) Gecko/20110611 Firefo




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.