Руководство по Grub4dos

Добро пожаловать в руководство по Grub4dos на Русском языке (Version 1.11 23.10.2008).

Данное руководство переведено стараниями проекта GreenFlash с Англоязычного аналога.
Если вы заметите неточности перевода, ошибки или опечатки, пожалуйста отправьте их копию используя
форму обратной связи.

Загрузить Английскую версию этого мануала можно Здесь. A версию .chm можно взять Здесь

Загрузить Русскую .chm версию этого мануала от S.M.A.R.T можно Здесь.

Последнее редактирование и сборка в .chm: Sly Din.
Специально для сайта GreenFlash.
На другие ресурсы не перекладывать, возможно только указание ссылки на сайт GreenFlash.

Grub4dos многофункциональный загрузчик, который используется для загрузки операционных системы при мультисистемной конфигурации.
Это руководство ориентированно на пользователей Windows, но также должно быть полезно для пользователей Linux.
Все скриншоты и команды взяты из Grub4dos версии 0.4.3 (сборка 2008-03-14).

Выражаем благодарность Jaclaz, Без его помощи это руководство не было бы закончено.
Так же Выражаем благодарность ilko за его поддержку.
Выражаем благодарность Nuno Brito за публикацию английской версии этого руководства.

Copyright GreenFlash (c) 2007-2008


Содержание

  • Введение
  • Установка Grub4dos
    • Метод 1 - Загрузка через DOS
    • Метод 2 - Загрузка через SYSLINUX
    • Метод 3 - Загрузка через Windows NT/2K/XP (1)
    • Метод 4 - Загрузка через Windows NT/2K/XP (2)
    • Метод 5 - Загрузка с помощью Windows Vista
    • Метод 6 - Установка Grub4dos из Windows
    • Метод 7 - Установка Grub4dos из DOS
    • Метод 8 - Установка Grub4dos для Windows NT/2000/XP в загрузочный сектор (1)
    • Метод 9 - Установить Grub4dos для Windows NT/2000/XP в загрузочный сектор (2)
    • Метод 10 – Использование grldr как не-эмулируемый загрузочный сектор на CD/DVD
    • Метод 11 - Установка Grub4dos на дискету
  • Нумерация устройств в системе для Grub4dos
  • Основы Grub4dos
  • Командная строка
  • Конфигурация файла Меню
    • Опции Дисплея
    • Назначение параметров по умолчанию
    • Защита пунктов загрузки паролем
    • Использование подменю
    • Использование команды "find --set-root"
  • Создание фоновой картинки
  • Опции загрузки
    • МБР (Master Boot Record)
    • Загрузочный сектор раздела
    • Загрузочный Floppy диск (или образ дискеты)
    • Загрузка с CD-ROM
    • Загрузка Windows NT/2K/XP
    • Загрузка Консоли восстановления (cmdcons)
    • Загрузка Windows Vista
    • Загрузка Linux
    • Загрузка Windows9x/ME/DOS/FreeDOS
  • Команда "MAP"
    • Прямой Маппинг
    • Маппинг памяти
    • Загрузка из .ISO образа
    • Вложеный Маппинг
  • Примеры
  • Примеры мультизагрузочных настроек

Дополнение

  • Команды
  • Эксперименты с Grub4dos
  • Ссылки на закачку


Введение

Все 32х битные утилиты были проверены на Windows XP, все DOS утилиты были проверены дискетой с Windows 98 SE. Совместимость с другими ОС не гарантируется.

На протяжении всего руководства любой текст с (зелёным) (например C:\grldr), представляет собой файл и / или путь. Он может также указать папку, которая должна быть создана.

Любой текст выделенный вот так (жёлтым) (например find --set-root /grldr), является командой.

Любой текст выделенный вот так (синим) (e.g. grub> help --all ), выводится через экран (например ответ Grub4dos на какую либо команду).

Любой текст выделенный [ ] скобками вводится с клавиатуры - например [tab] = нажмите "Tab".

Grub4dos представляет собой постоянно развивающийся проект, поэтому некоторая информация, содержащаяся в данном руководстве, не может применяться к предыдущей версии, или быть применимой для следующих версий.

Руководство не преследует цели охватить все функции Grub4dos, ни оно не намерено заменить README_GRUB4DOS.txt файл входящий в состав пакетов Grub4dos.
Руководству предназначено стать отправной точкой и охватывать синтаксис и некоторые из наиболее часто используемых команд - надеемся, что после изучения команд, охватываемых в руководстве, пользователи будут экспериментировать дальше, основываясь на этих знаниях.

Если вы захотите распечатать это руководство - Убедитесь, что ваш браузер настроен отображать картинки, иначе все цветные метки не распечатаются.

GRUB4DOS Это универсальный загрузчик на основе GNU GRUB. Он может управляться в режиме командной строки или с помощью конфигурационного файла, в его возможности входят:

  • Загрузка МБР (MBR)
  • Загрузка из раздела
  • Загрузка DOS 6.22/7.x/8.0 (Windows 9x/Me) Загрузчиком (io.sys)
  • Загрузка FREEDOS, Загрузчиком (kernel.sys)
  • Загрузка Windows NT/2000/XP, Загрузчиком (ntldr)
  • Загрузка Windows Vista, Загрузчиком (bootmgr)
  • Загрузка Linux, Загрузкой ядра (kernel)
  • Поддержка нескольких файловых систем
  • Загрузка с любого устройства доступного в BIOSе, Включая:
    • Жёсткий диск (HDD)
    • CD/DVD диск
    • Флешка (USB Flash drive)
    • Флоппи дискета (Floppy Disk)
  • Загрузка образов дисков (HDD,Floppy,ISO)
  • Изменение очерёдности загрузки (используя маппинг)
  • Загрузка образов по сети
  • Поддержка режима LBA

В отличии от GNU GRUB, который функционирует за счёт нескольких файлов, Grub4dos использует всего один файл grldr (или grub.exe если загрузка происходит из DOS или Linux).
grldr может быть загружен с помощью уже существующей операционной системы, например, через NT загрузчик NTLDR , В ходе загрузки Windows NT/W2K/XP.
Основной способ загрузки grub4dos, это загрузка из MBR. Файл grldr.mbr входит пакет в Grub4dos и и может быть записан в загрузочную область (HDD, floppy, USB Flash drive)
Файл в корне устройства grldr загружается из MBR файлом grldr.mbr.

Когда Grub4dos загружается из MBR, он сканирует все поддерживаемые устройства со всеми поддерживаемыми файловыми системами (смотрите список этих систем ниже) на наличие файла grldr – если он найден, он загружается. Когда grldr загружен, производится сканирование на предмет нахождения конфигурационного файла menu.lst – если такой файл не найден, то активируется командный режим. Файлы grldr и menu.lst могут находиться не только в корне активного раздела вместе с MBR, но и на любых локальных дисках с поддерживаемыми файловыми системами.
Поддерживаемые файловые системы:

  • FAT12\FAT16\FAT32
  • NTFS
  • EXT2\EXT3

Если файлы grldr или grub.exe загружаются другой операционной системой (или из загрузочного сектора), происходит сканирование (поиск) конфигурационного файла menu.lst.
При использовании этого метода конфигурационный файл так же может быть перемещён на любой поддерживаемый локальный диск.
Если файлов menu.lst несколько (например они на разных дисках) первым загруженным menu.lst будет файл на (hd#),а поиск на устройствах (cd#) и (fd#) производиться не будет
(если конечно (fd#) не выставлен как первое загрузочное устройство).

К сожалению на данный момент можно найти не так много документации на загрузчик Grub4dos помимо файла readme входящего в пакет. Полезную информацию можно подчерпнуть здесь - sourceforge, а так же на форумах 911cd forum и boot-land (на последнем про Grub говорят здесь).

Оглавление Следующая Проект GreenFlash Форум


Установка загрузчика Grub4dos

Создаём папку C:\Grub4dos. Скачиваем последнюю версию Grub4dos *.zip (ищем Здесь), Распаковываем то что вы скачали в эту папку и выбираем один из нижеперечисленных методов:

  • Метод 1 - Загрузка через DOS
  • Метод 2 - Загрузка через SYSLINUX
  • Метод 3 - Загрузка через Windows NT/2K/XP (1)
  • Метод 4 - Загрузка через Windows NT/2K/XP (2)
  • Метод 5 - Загрузка с помощью Windows Vista
  • Метод 6 - Установка Grub4dos из Windows
  • Метод 7 - Установка Grub4dos из DOS
  • Метод 8 - Установка Grub4dos в загрузочный сектор Windows NT/2000/XP (1)
  • Метод 9 - Установка Grub4dos в загрузочный сектор Windows NT/2000/XP (2)
  • Метод 10 – Использование grldr как не-эмулируемый загрузочный сектор на CD/DVD
  • Метод 11 - Установка Grub4dos на дискету

Метод 1 - Загрузка через DOS

Вам понадобится носитель (например дискета) с Дисковой Операционной Системой (ДОС) – Скопируйте файл C:\Grub4dos\GRUB.EXE на него. Загрузитесь с этого носителя, и дождавшись приглашения в командной строке введите GRUB.EXE [ENTER] эти действия загрузят grub4dos.
Grub4dos может быть загружен автоматически путём редактирования конфигурационного файла ДОС CONFIG.SYS.
Чтобы добавить опцию загрузки в меню загрузки для Windows 98 (SE), редактируйте файл config.sys (в текстовом редакторе, например в блокноте) и добавте следующие пункты (как редактировать config.sys смотрим Здесь - изменения помечены красным)

Файл config.sys можно найти в скачанном пакете Grub4dos. Autoexec.bat так же может быть использован для автоматического запуска Grub4dos.

[Наверх]

Метод 2 - Загрузка через SYSLINUX

Для запуска Grub4dos через SYSLINUX, вам нужен носитель с установленным SYSLINUX-ом . Скопируйте файл C:\Grub4dos\GRUB.EXE на него и отредактируйте конфигурационный файл Syslinux-а syslinux.cfg.Например так:

LABEL grud4dos
MENU LABEL Grub4dos
KERNEL grub.exe

[Наверх]

Метод 3 - Загрузка через Windows NT/2K/XP (1)

Скопируйте файл C:\Grub4dos\grldr в корень диска с установленной ОС Windows, отредактируйте конфигурационный файл boot.ini следующим образом:

C:\grldr="Grub4Dos"

Примечание 1 - Адрес "C:\grldr" должен быть использован даже если установленная ОС имеет другую букву диска.
Примечание 2 – boot.ini Это скрытый системный файл. по умолчанию он не отображается, чтобы его редактировать вам надо открыть "Мой Компьютер" и в меню Сервис Выбрать Свойства папки… открыть вкладку Вид.

  • Выбрать "Показывать скрытые файлы и папки"
  • Снять галочку "Скрывать расширения для зарегистрированных типов файлов"
  • Снять галочку "Скрывать защищённые системные файлы"

Отредактированный boot.ini будет выглядеть примерно так:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\grldr="Grub4Dos"

Затем перезагрузите windows – в меню загрузки будет отображаться новая опция Grub4dos (Смотри Фото 1).

Фото 1.

[Наверх]

Метод 4 - Загрузка через Windows NT/2K/XP (2)

Это метод с использованием NT загрузчика от Windows NT/2K/XP ntldr, метод работает даже если ОС Windows не установлена на компьютере. На носителе с которого мы планируем загружаться должен быть загрузочный сектор от NT/2000/XP (если его нет то надо установить этот самый NT загрузчик ntldr). Существует несколько утилит, которыми это можно сделать:

  • mkbt.exe - Bart’s Make Bootable. Может быть выполнена из Windows однако вы должны иметь загрузочный сектор для записи (это файл). Использование: mkbt -x *.bin #: (Где # это буква диска и *.bin загрузочный сектор для установки)
  • bootpart.exe - Должна быть запущена из под ДОС. Скачайте эту программу и скопируйте её на носитель с ДОС-ом. Загрузите ДОС и используйте команду BOOTPART WINNT BOOT:#: (Где # это буква диска).
  • bootsect.exe - Входит в состав Windows Vista и может быть запущена из Windows. Использование bootsect.exe /nt52 #: /force (Где # это буква диска)

Плюс ко всему надо скопировать на диск файлы ntldr, ntdetect.com и boot.ini (из файлов windows) и файл C:\Grub4dos\grldr на загружаемое устройство. Отредактировать boot.ini добавив туда следующие строки:

[boot loader]
timeout=10
default= C:\grldr
[operating systems]
C:\grldr="Grub4Dos"

[Наверх]

Метод 5 - Загрузка с помощью Windows Vista

При загрузке Windows Vista используется конфигурационный файл BCD (Загрузочная конфигурация) этот файл представляет собой базу данных которая не может быть отредактирована из текстового редактора. Для добавления параметра запуска Grub4dos придётся использовать утилиту командной строки bcdedit.exe. Чтобы установить загрузчик grub4dos скопируйте файл C:\Grub4dos\grldr.mbr на загрузочный раздел с Вистой (Обычно это активный раздел на первом жёстком диске содержащий файлы BCD и bootmgr (Загрузчик Висты)). Затем следует проделать следующие манипуляции:

  • Открыть командную строку с привилегиями Администратора (right click and select Run as administrator)
  • ввести следующий текст (где - %STORE% = путь к файлу BCD (Например: C:\boot\BCD)) -
BCDEDIT.EXE /store %STORE% /create /d "Start GRUB4DOS" /application bootsector
  • Это создаст уникальный GUID номер для нового пункта загрузки в виде:
{2a4b5efd-0969-11dd-9a85-000000000000}
  • В 32-х символьной строке будут использоваться следующие команды (Заменяем %GUID% на значение созданное выше, и заменяем %STORE% на путь к файлу BCD)
BCDEDIT.EXE /store %STORE% /set %guid% device boot

BCDEDIT.EXE /store %STORE% /set %guid% path \grldr.mbr

BCDEDIT.EXE /store %STORE% /displayorder %guid% /addlast
  • Копируем grldr и menu.lst на раздел с поддерживаемой файловой системой.
  • Как альтернатива, вышеперечисленные команды могут быть заскриптованы, однако вам всё равно нужно будет скопировать C:\Grub4dos\grldr.mbr на загрузочный раздел. Открыть блокнот, скопировать и в ставить в него нижеследующий текст:
  • Редактировать файл - добавить путь к bcdedit.exe и BCD.
  • Затем сохраните этот документ с расширением .cmd.
  • Запустите полученный файл (Запускайте от имени Администратора, если вы делаете это в Windows Vista) - Файл может быть запущен и из других версий Windows (Например из Windows PE).
  • Копируем файлы grldr и menu.lst на раздел с поддерживаемой файловой системой.

[Наверх]

Метод 6 - Установка Grub4dos из Windows

Чтобы установить grub4dos в MBR из Windows XP/2000 - скачайте архивы grubinst/grubutil Здесь (или Здесь). Grubinst.exe это утилита командной строки, но у неё есть и графический интерфейс (GUI) он есть в составе скачиваемых архивов. Проверьте номер диска на который вы собираетесь установить grub4dos - Используйте для этого "Windows Disk Management console" (в консоли напишите путь C:\Windows\System32\diskmgmt.msc [ENTER]). Результатом установки на неверный раздел будет нежелание Windows загружаться после перезагрузки, так что будьте осторожны. Чтобы установит загрузчик в MBR на диске disk:0 используйте команду C:\Grub4dos\grubinst.exe (hd0); Чтобы установит загрузчик в MBR на диске disk:1 используйте команду C:\Grub4dos\grubinst.exe (hd1); и так далее.

Опции для Grubinst:

  • -v (Подробно)
  • -l (Показать раздделы - Например: C:\Grub4dos\grubinst.exe –l (hd0))
  • -t (режим - "только для чтения")
  • -h (Помощь)

Затем скопируйте C:\Grub4dos\grldr в корень (поддерживаемого) локального диска.

Используя Grubinst, мы можем установить код Grub4dos в загрузочный сектор раздела. Используя команды с синтаксисами grubinst.exe -p=n [device] или grubinst.exe --install-partition=n [device] (Где n = Номер раздела, начиная с 0 (нуля) Пример для первого раздела: grubinst.exe -p=0 (hd0). Так же можно использовать команду grubinst.exe (hd0,0). grldr должен быть скопирован туда, куда установлен загрузочный код, и этот раздел должен быть активным.

[Наверх]

Метод 7 - Установка Grub4dos из DOS

Чтобы установить grub4dos в MBR с помощью DOS или Windows 9x скопируйте C:\Grub4dos\BOOTLACE.COM в корень диска с этой ОС. Затем перезагрузите компьютер и загрузите DOS. Установка Grub4dos в MBR на первом жёстком диске (Обычно первый жёсткий диск назначена на загрузку в настройках BIOS) осуществляется командой:

BOOTLACE.COM 0x80

Для установки на второй жёсткий диск используйте команду

BOOTLACE.COM 0x81

Для избежания установки Grub4dos не на тот диск используйте сторонние программы, такие как MBRWizD.exe (найти можно Здесь) чтобы проверить номер\порядок диска.
Скопируйте MBRWizD.exe в корень диска с DOS и в командной строке напишите MBRWizD.exe /List - вы должны будете определить нужный диск, из данных выведенных этой командой (для установки на disk 0 - используйте команду BOOTLACE.COM 0x80; для установки на disk 1 -используйте команду BOOTLACE.COM 0x81; и так далее).
В завершение установки копируем файлы grldr и menu.lst в корень (поддерживаемого) локального диска.

Есть так же вариант установки используя пакет Grubinst, с его помощью можно установит код Grub4dos в загрузочный сектор раздела. Хотя эта функция приписывается bootlace.com, результат установки с его помощью (используйте команду bootlace.com --install-partition=0 0x80) будет следующим:

C:\>bootlace.com --install-partition=0 0x80

Sorry! --install-partition not yet implemented with this release

Для установки загрузчика через пакет grubinst используйте команду с синтаксисом grbins16.exe -p=n [device] или grbins16.exe --install-partition=n [device] (Где n = номер раздела, sначиная с 0 (нуля). Пример для первого раздела: grbins16.exe -p=0 (hd0).

grldr надо скопировать на раздел в который установлен загрузочный код, и этот раздел должен быть активным. Скачать Grubinst можно Здесь.

[Наверх]

Метод 8 - Установка Grub4dos в загрузочный сектор Windows NT/2000/XP (1)

Если загрузочный сектор содержит загрузчик Windows NT/2000/XP/2003 ("NTLDR"), возможен ещё одит способ установки Grub4dos в загрузочную область раздела. Hex редактирование загрузочного сектора и замена строки NTLDR на GRLDR. Пакетный файл для автоматической замены можно взять Здесь.

grldr нужно скопировать в тот раздел, где установлен редактированный загрузочный сектор, и этот раздел должен быть активным.

ВНИМАНИЕ - Этот метод работает только на разделах с файловой системой FAT32 и NTFS. Эта информация процитирована отсюда (by Grub4dos author tinybit) -

"Загрузочный сектор MS NTLDR на системах FAT12/16 загружает только один сектор, т.е первый сектор это часть файла NTLDR. И если NTLDR станет нашим GRLDR, загрузки не получится.
Но с другой стороны, загрузочный сектор MS NTLDR на системах FAT32/NTFS будет загружать целый файл NTLDR в оперативную память, и GRLDR(переименованный в NTLDR) может грузиться без проблем."

[Наверх]

Метод 9 - Установка Grub4dos в загрузочный сектор Windows NT/2000/XP (2)

Следующий метод (предложено членом форума 911cd spacesurfer - подробнее на английском можно почитать Здесь) имеет переменный успех, однако вполне приемлим для некоторых конфигураций.
Как и в "Методе 8" активный раздел должен содержать загрузчик Windows NT/2000/XP/2003 ("NTLDR" - если нужны инструкции по установке смотрите Метод 4).
Просто скопируйте grldr на носитель и переименуйте в ntldr. Переименованный grldr будет загружен при следующей загрузке.
Файловая система должна быть FAT32 или NTFS - дополнительно можете прочесть абзац - "ВНИМАНИЕ" в "Методе 8".

ВНИМАНИЕ - Фраза: "переменный успех" означает, что этот способ работает не всегда и если вы воспользуетесь этим способом, то в случае неудачи ваш Windows может не загрузиться!

[Наверх]

Метод 10 – Использование grldr как не-эмулируемый загрузочный сектор на CD/DVD

Для установки grub4dos на CDROM вам понадобится утилита командной строки mkisofs - разместите её по адресу C:\Grub4dos. С помощью mkisofs мы создадим образ CD диска (в формате .ISO)
- Полученный образ может быть записан на CD с помощью сторонних программ (Например: ImgBurn или Nero). Эта информация была взята из Grub4dos readme файла.
Создайте папку C:\Grub4dos\iso_root. Скопируйте C:\Grub4dos\grldr и menu.lst (если вы хотите использовать меню загрузки) в корень этой папки C:\Grub4dos\iso_root.
Есть две разные команды, для создания загрузочного Grub4dos CD/DVD. Откройте командную строку и напишите CD C:\Grub4dos чтобы перейти в каталог C:\Grub4dos.
Затем введите одну из команд:

mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -o grldr.iso iso_root

или:

mkisofs -R -b grldr -no-emul-boot -boot-load-seg 0x1000 -o bootable.iso iso_root

Первый способ более надёжный, и будет поддерживаться старыми версиями BIOS - т.к будет загружаться первый сектор файла grldr. При втором способе grldr будет загружаться целиком.

[Наверх]

Метод 11 - Установка Grub4dos на дискету

Для установки Grub4dos на флоппи дискету или на образ дискеты, будем использовать уже известную нам утилиту bootlace.com. Примечание - bootlace.com В Windows NT/2000/XP/2003/Vista не функционирует полностью из за запрета на прямой доступ к устройствам, Однако установка в образ диска работает нормально. Это работает так же и в DOS/Windows 9x/Linux. Используйте следующую команду для установки загрузчика на первый флоппи диск:

Bootlace.com --floppy --chs 0x00

Для установки Grub4dos в образ флоппи диска используйте команду Bootlace.com --floppy --chs [file] (Где [file] это образ флоппи диска с указанием полного пути к нему.)
Пример: win98.ima корень диска (C:)

Bootlace.com --floppy --chs C:\win98.ima

[Наверх]

Оглавление Предыдущая Следующая Проект GreenFlash Форум


умерация устройств в системе для Grub4dos

Нумерация устройств в системе для Grub4dos

Здесь представлены названия дисков и устройств в понятном для Grub4dos формате:

  • (hd0) - первый жесткий диск
  • (hd1) - второй жесткий диск
  • (hd0,0) - первый жесткий диск, первый раздел
  • (hd0,1) - первый жесткий диск, второй раздел
  • (hd0,2) - первый жесткий диск, третий раздел
  • (hd#,4) - первый логический раздел (в расширенном разделе) на диске #
  • (hd0,4) - первый жесткий диск, первый логический раздел (в расширенном разделе)
  • (hd3,3) - четвертый жесткий диск, четвертый раздел (если тип раздела главный (primary))
  • (hd2,5) - третий жесткий диск, второй логический раздел (в расширенном разделе)
  • (fd0) - первый флоппи диск
  • (cd0) - первый CDROM диск

Порядок дисков определяется BIOS-ом, Обычно загрузка происходит из (hd0) даже если загружаются файлы с вторичного (slave) диска.

Так же, Grub4dos может осуществлять загрузку с пререносных УСБ устройств (USB flash drives) но только если такая опция поддерживается BIOS-ом. Если BIOS поддерживает загрузка с УСБ устройства как с жёсткого диска (HDD), то синтаксис для этого устройства удет таким: (hd#) Например, если система имеет один жесткий диск и если этот локальный диск загружен до флешки, флешка станет определяться загрузчиком как (hd1), а сам локальный диск будет (hd0).

Copyright GeenFlash (c) 2007-2008


Основы Grub4dos

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

Во время загрузки grub4dos можно разглядеть сообщение "Booting GRLDR" и некоторые другие действия. Этот процесс происходит слишком быстро, чтобы прочитать, какая проблема могла возникнуть и на каком этапе загрузки она произошла. Если grub4dos не может загрузиться, быстро нажимайте [insert], это задействует отладочный режим пошаговой загрузки всех стадий, это поможет вам определить в чём проблема при загрузке.

Grub4dos имеет мощный интерфейс командной строки, которую можно запустить через конфигурационный файл. Конфигурационный файл загружается автоматически (если он находится на поддерживаемом разделе) Чтобы войти в командную строку нажмите [c]. Введение команд вручную представляется более гибким способом, по сравнению с использованием уже готовых пунктов загрузки, и даёт детальную информацию о результатах всех действий. Несмотря на то, что в арсенале содержится лишь набор из 60-и команд, этого вполне достаточно для загрузки множества операционных систем. Командная строка рекомендуется для тестирования новых вариантов загрузки и для устранения неполадок и проблем.

Файлы/папки в путях разделяются косой чертой слешем прямонаправленным / (а не обратной косой чертой \ как в windows системах). Пути могут быть абсолютными (Например: (hd0,0)/disk_images/msdos.img) или относительные в корневой папке (Например, если устройство это (hd0,0) путь к файлу с папкой /disk_images/msdos.img то этот путь правильный – и если устройство это (hd0,0)/disk_images путь к файлу с папкой /msdos.img то этот путь тоже правильный). Пробелы в пути не допускаются.

Корневой директорией/папкой будет являться то устройство из каторого загружен конфигурационный файл menu.lst, не зависимо от того где находится файл grldr (или GRUB.exe). Если конфигурационный файл не найден, то корневым каталогом будет то устройство/диск, откуда загружен файл grldr. Чтобы сменить корневое устройство или папку используйте команду root [PATH], Где PATH = имя устройства (Например: root (hd0,0) ) или имя устройства и папки (Например: root (hd0,0)/disk_images). Текущее устройство может быть назначенно корневым с помощью закрытых скобок ()
(Например: root ()/disk_images. Когда устройство назначенно корневым, все последующие команды будуд относиться к этому устройству, если конечно вы не зададите команду,
назначающую корневым другое устройство. Например, если (hd0,0) установлено как корневое устройство, то команда Chainloader +1 загрузит первый сектор (загрузочный сектор) этого устройства.

Чтобы узнать текущее (то с которого всё загрузилось) корневое устройство, напишите в командной строке root [enter]. Пример:

grub> root
(hd0,0): Filesystem type unknown, partition type 0x0

grub> _

Когда вы используете команду find (или find --set-root), все (hd) устройства (и разделы) сканируются до (cd) устройств, а когда доходит дело до сканирования (cd) устройств, то они сканируются до (fd) устройств.

Устройство должно делаться корневым root для того чтобы загрузиться с него. Есть две команды, чтобы сделать устройство корневым - root и rootnoverify. Команда root будет монтировать указанное устройство/диск, определять тип файловой системы. Команда rootnoverify, не будет монтировать устройство/диск. Использование команды root более предпочтительно, rootnoverify стоит использовать только если команда root не сработала. Ниже смотрите пример ответа после использования команды root. А после использования команды rootnoverify никакого ответа не будет.

grub> root (hd1,0)
Filesystem type is fat, partition type 0xe

Командная строка Grub4dos имеет функцию автозаполнения, для доступа к этой функции нажимайте [tab]. Нажатие кнопки [tab] без введения команд, будет отображать список всех возможных команд. Если вы введёте только часть команды и нажмёте [tab] то на экран выведутся возможные варианты вашей недописанной команды. Например,если вы введёте de и нажмёте [tab], то в ответ получите:

grub> de
Possible commands are: debug default

Возможности [tab] будут рассмотрены подробнее на следующей странице.


Командная строка

Прежде чем читать то что здесь написано вам надо усвоить материал на предыдущей странице, эдесь приведено лишь несколько вариантов команд. Если есть желание посмотреть на полный список команд, загляните сюда.

Чтобы попасть в командную строку нажмите [c] если вы находитесь в меню загрузки – это используется для исправления ошибок в пунктах загрузки в menu.lst. Если конфигурационный файл menu.lst не будет найден, вы окажетесь в командной строке по умолчанию.

Чтобы посмотреть на список всех доступных команд введи текст help --all (смотрим Фото 1. ниже).

Фото 1.

Для получения помощи по определённой команде введите help [command] – Например: введя help chainloader вы получите описание команды chainloader.

Функция автозаполнения была кратко описана на предыдущей странице. Нижеследующие примеры иллюстрируют её функциональность:
  • Если ввести букву f [tab], то будут показаны все возможные команды начинающиеся на эту букву "f" -
    • grub> f
    Possible commands are: fallback find foreground fstest
  • При вводе буквы i [tab] она будет автоматом дописана до grub> fi , т.к в арсенале есть только команда начинающаяся на "fi" -
    • grub> find _
  • Если ввести скобку ( [tab] то будут показаны варианты возможных устройств. -
    • grub> find (
    Possible disks are: hd0 hd1 rd cd
  • При вводе hd0 [tab] текст дополнится до -
    • grub> find (hd0,_
  • Введение [tab] ещё раз отобразит возможные разделы, если их больше чем один. -
    • grub> find (hd0,
    Possible disks are:
    Partition num: 0, Filesystem type is fat, partition type 0x4
    Partition num: 1, Filesystem type unknown, partition type 0x7
  • Введя 0 [tab] will мы получим -
    • grub> find (hd0,0)_
  • При введении / [tab] нам отобразятся все файлы и папки находящиеся в корневом устройстве/диске -
    • grub> find (hd0,0)/
    Possible files are: io.sys msdod.sys command.com

Как показано на одном из примеров возможности [tab] позволяют быстро находить возможные доступные устройства.
Пишем нужную нам команду, затем ставим ( [tab] (Например: root ( , chainloader ( , и.т.д) и отобразится список возможных устройств, команды к которым выполняются со скобкой ( :

grub> chainloader (
Possible disks are: hd0 hd1 rd cd

Добавляя (специальный) tag/marker файл в корень устройства позволяет использовать команду find чтобы определить имя устройства найденного при сканировании. Например, напишем find /hdd.tag и будет произведён поиск на в корнях всех поддерживаемых устройствах/дисках на наличие файла hdd.tag и будет отображено имя устройства сожержащего этот файл - Например: (hd0,0). Если этот файл находится больше чем на одном устройстве, эти устройства тоже будут отображены. Как расказывалось ранее, поиск происходит на всех поддерживаемых устройствах, сперва на (hd), затем на (cd), затем на (fd).Пользуясь данным методом можно применять относительные пути в пунктах меню загрузки используя эту команду find --set-root. Подробности смотрим Здесь.

[Наверх]


Конфигурация файла Меню

Следует отметить, что некоторые команды, такие как (e.g. password, fallback, и многие другие) действуют только через конфигурационные файлы – они не работают при введении их через командную строку. Конфигурационные файлы используются, чтобы заскриптовать (автоматизировать) загрузку пунктов меню. Меню по умолчанию имеет текстовый вид, но при желании легко можно добавить фоновую картинку, прописав... (об этом позже).

Все команды в конфигурационном файле должны быть в нижнем регистре. Все заголовки пунктов загрузки должны начинаться с команды title, это позволит отображать текст следующий после этой команды на экране загруженного меню. (Например: title Boot Windows XP Будет виден текст: “Boot Windows XP”.

Когда меню загружено и мы видим пункты загрузки, мы может отредактировать любой из них, выбрав его и нажав [e], но весь отредактированный текст остаётся в оперативной памяти и не сохранится в самом файле.

Пример файла menu.lst (он входит в пакет поставки Grub4dos):

Примечание - все строки начинающиеся со знака # не отображаются и не используются, чтобы их задействовать удалите этот символ.

  • Опции Дисплея
  • Назначение параметров по умолчанию
  • Защита пунктов загрузки паролем
  • Использование подменю
  • Использование команды "find --set-root"

Опции Дисплея

Цвета меню могут быть назначены следующей командой (по умолчанию мы видим белый текст на чёрном фоне, при выборе пункта меню цвет текста становится чёрным на фоне белого курсора):

color a/b c/d

Где a=это текст, b=общий фон, c=цвет текста выбранного пункта, d=цвет курсора.

Цвет b и d должен быть одним из перечисленных - black, blue, green, cyan, red, magenta, brown, light-gray

Цвет a и c должен быть одним из перецисленных - black, blue, green, cyan, red, magenta, brown, light-gray, dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow and white.

Например следующий ниже текст menu.lst приведйт к отображению светло-голубого текста на синем фоне с красным курсором и выбранный текст будет светло-красным (Смотрите Фото 1 ниже):

color light-blue/blue light-red/red

Фото 1.

Фоновое изображение (splash) должно быть в формате .xpm (каторое может быть задавлено gzip-ом),иметь размер изображения 640x480 пикселей и максимум 14 цветов.
Чтобы почитать про изготовление загрузочных картинок загляните (сюда).
Чтобы отобразить картинку splash.xpm.gz (в текущей корневой директории) Следующая команда, должна быть использовани в файле menu.lst

splashimage=/splash.xpm.gz

Чтобы отобразить splash.xpm.gz (находящуюся на 1-ом разделе 1-го жёсткого диска) команда будет иметь вид:

splashimage=(hd0,0)/splash.xpm.gz

По умолчанию, цвет текста будет белым, а выбранный пункт меню поменяет цвет текста на чёрный на фоне белого курсора. Чтобы это изменить исползуйте следующую запись в menu.lst:

splashimage=(hd0,0)/splash.xpm.gz
foreground=RRGGBB
background=RRGGBB

Где RR это красный, GG это зелёный, а BB синий. Нумерация цветов с виде HEX. В следующем примере текст будет светло-фиалетовый (В виде HEX как AB82FF) курсор будет светлоголубым (В виде HEX как 191970) и цвет в курсоре тоже будет светло-фиалетовым – Смотрите Фото 2 внизу.

splashimage=(hd0,0)/splash.xpm.gz
foreground=AB82FF
background=191970

Фото 2.

[Наверх]

Назначение параметров по умолчанию

Можно назначить один из пунктов к загрузке по умолчанию, исползуя команду default. Если команда timeout тоже указана, система будет ждать указанный после неё период времени, а потом загрузит пункт меню указанный после команды default.

Пример задания на 10 секунд ожидания указан в следующем примере:

timeout 10

Чтобы выбрать пункт меню, который загрузится по истечении заданного времени (to be booted after timeout period has completed) делайте следующим образом (default 0=Первый пункт меню, default 1=Второй пункт меню, и.т.д.):

default 0

Так же возможно заменить пункт меню загружаемый по умолчанию на последний загруженый пункт используя файл default. Например:

default (hd0,0)/default

Команда default (hd0,0)/default указывает какой пункт меню будет записан в файл default, находящийся на 1-ом разделе 1-го жёсткого диска (этот файл должен быть скопирован из пакета Grub4dos – не редактируйте его т.к он должен быть размером в 2048 байт). Если вы используете данную функцию, диск на катором находится файл default должен быть записываемым. Пункт меню при этом должен содержать команду savedefault Например:

timeout 10
default /default

title Boot Windows XP
root (hd0,1)
chainloader +1
savedefault

[Наверх]

Защита пунктов загрузки паролем

Чтобы запаролить загрузку всех или некоторых меню воспользуйтесь командой password Например:

color light-blue/blue light-red/red
timeout 10
default /default
password administrator

title........

Когда вы загрузите Grub4dos защищённый паролем, обычные строки подсказок внизу:

Use the ^ and v keys to highlight an entry. Press ENTER or 'b' to boot.
Press 'e' to edit the commands before booting, or 'c' for a command line.

Сменятся на эти строки:

Use the ^ and v keys to highlight an entry. Press ENTER or 'b' to boot.
Press 'p' to gain privileged control.

Как вы видите пропал доступ к редактированию пунетов меню и запуск командной строки. Теперь пользователя просят нажать [p] чтобы ввести пароль, и для успешной загрузи он должен совпасть с указанным нами (в нашем случае это - administrator).

Есть так же и возможность использовать зашифрованный пароль и поможет нам в это команда password --md5 за которой следует зашифрованный пароль: “$1$ZjU0$k107noL9DOaClJEu6n6f91”
т.е - administrator.

color light-blue/blue light-red/red
timeout 10
default /default
password --md5 $1$ZjU0$k107noL9DOaClJEu6n6f91

title........

ВНИМАНИЕ! - не генерируйте "md5-сумму” используя сторонние программы и методы, такая сумма будет недопустима в Grub4dos (Читайте Здесь (по Английски разумеется)).

Чтобы создать такой красивый зашифрованный пароль, который вы наблюдаете выше, загрузите Grub4dos и нажмите [c] чтобы попасть в командную строку,
затем пишите команду и выполняйте md5crypt - затем введите ваш пароль, и он чудесным образом превратится в зашифрованный в виде ничего незначащих символов md5-суммы (Смотри Фото 3).

Фото 3.

Можно так же ограничить доступ к отдельным пунктам меню. После установки пароля, добавляйте команду lock в желаемый пункт загрузки, пока пользователь не введёт пароль (используя [p]) все пункты меню с опцией "lock" будут недоступны:

color light-blue/blue light-red/red
timeout 10
default /default

title........
lock

Команда password тоже может быть использована для защиты отдельных пунктов, Например:

color light-blue/blue light-red/red
timeout 10
default /default
password --md5 $1$ZjU0$k107noL9DOaClJEu6n6f91

title........
password password2

Каждому пункту загрузки можно назначить разный пароль, простой или зашифрованный.

[Наверх]

Использование подменю

Используя команду configfile мы можем наделать много вложенных меню, указав ей имя конфигурационного файла, который вы намерены грузить. Например: menu.lst содержит:

color light-blue/blue light-red/red
timeout 10
password --md5 $1$ZjU0$k107noL9DOaClJEu6n6f91

title Boot Options
lock
find --set-root /submenu.lst
configfile /submenu.lst

Будет загружен файл submenu.lst. Файл submenu.lst это файл того же формата, что и menu.lst – но в нём можно поменять гамму, указать другую картинку, добавить новых пунктов загрузки и.т.д.. Так же следует в нём прописать ту же команду, но указывающую на главный файл menu.lst, чтоб была возможность вернуться к нему и не застрять в подменю.

[Наверх]

Использование команды "find --set-root"

Команда find --set-root в комбинации с именем файла ищет требуемый файл и делает его корневым/главным для всех команд в текущем пункте меню (или для команд вводимых из командной строки). Например:

title Find “hdd.tag” and chainload partition
find --set-root /hdd.tag
chainloader +1

Пример приведённый выше показывает поиск на всех поддерживаемых файла hdd.tag и найденое первое устройство, содеожащее этот файл hdd.tag, станет корневым. Загрузочный сектор устройства (chainloader +1 = первый сектор текущего корневого устройства) будет загружен (chainloaded).

Таким образом можно найти и загрузить ОС. Если мы ищем Windows XP , то следующий пример как раз для него:

title Find and load “ntldr”
find --set-root /ntldr
chainloader /ntldr

Используя вышеуказанный пример, мы предпологаем, что NT загрузчик ntldr всего один. А если несколько устройств содержат ntldr, то первый найденый будет назначен корневым. Это может привести к загрузке не того, что нам надо, в таком случае нам понадобится как то подругому найти и загрузить искомый файл. Устройства сканируются в следующем порядке:

  • (hd#)
  • (cd#)
  • (fd#)

Учтите, что файл ntldr (и остальные Windows-загрузочные файлы bootmgr и io.sys) должны быть на устройстве (hd0), иначе с загрузкой Windows ничего не выйдет - Смотрите Здесь, чтобы узнать что делать дальше.

Можно исключит флоппи устройства из поиска командой --ignore-floppies - Например: find --set-root --ignore-floppies /ntldr.

ЗАПОМНИТЕ! - Команда find --set-root иногда ведёт себя неадекватно - Например: Если вы используете команду map, то устройство, на катором вы хотите найти файл, станет невидимым в Grub4dos.
Всегда помните, что поиск остановится, когда вы найдёте тот файл который ищете. Даже используя точное (уникальное как вам кажется) имя файла, можно получить нежелательный результат, если вы забыли (или не знаете), что таких файлов на самом деле больше чем один.

[Наверх]


Создание фоновой картинки

Нижеследующая информация была взята Здесь

Чтобы создать фоновую картинку в среде Windows вам нужно будет скачать эти (бесплатные программы):
  • GIMP (portable-версия Здесь)
  • ImageMagick
Как было заявлено ранее, все изображения должны соответствовать следующим требованиям:
  • Картинка должна быть 640x480 пикселей размером.
  • Картинка не должна содержать больше 14-ти цветов.
  • Картинка должна быть в формате .xpm, и может быть пожата gzip-ом (.gz).

Первым шагом нужно сделать Windows Bitmap картинку (.bmp) из вашей выбранной картинки - В следующем примере мы конвертируем C:\splash.jpg (картинка размером 1024x768).
Запустите GIMP и откройте вашу картинку (или создайте своё собственное изображение с помощью GIMP).

Чтобы изменить размер картинки, заходим в меню Image (Изображение), затем Scale Image... (Размер Изображения).

GIMP по умолчанию, при изменении размера картинки, будет сохранять соотношение сторон. Чтобы отменить это, надо щёлкнуть по значку "цепочка" (Смотрим Фото 1.), чтобы она разомкнулась, как на следующем фото (Смотрим Фото 2.).

Фото 1.

Фото 2.

Выставьте размер картинки 640 x 480, затем щёлкните Scale (Изменить). Затем зайдите в File (Файл), Save As... (Сохранить как...), и сохраните картинку в формате Windows Bitmap. (т.е с расширением .bmp) - Например: Save Как C:\splash.bmp.

Чтобы установить максимальное число цветов (14) - Заходим в Image (Изображение) —>Mode (Режим) —>Indexed (Индексированное...). Меняем максимальное число цветов на 14 и щёлкаем Convert (Преобразовать) (Для этого можно использовать так же и convert.exe (ImageMagick tool) - но картинка при этом не будет оптимизирована, что скажется на её качестве, а использование GIMP даст более лучший результат).

Несмотря на то, что GIMP поддерживает .xpm файлы,.xpm сделанные в Win32 версии Gimp-а НЕ совместимы с GRUB. Поэтому заходим в File (Файл), Save (Сохранить) - в формате .bmp.
На этом мы с GIMP-ом и закончим.

Далее, чтобы конвертировать наше фото в совместимый .xpm файл, используем командную строку ImageMagick convert.exe с синтаксисом convert picture.bmp picture.xpm.gz. Открываем командную строку в ImageMagick install и вводим команду convert.exe C:\splash.bmp C:\splash.xpm.gz.


Опции загрузки

Grub4dos использует два различных метода загрузки операционных систем - которые можно применять из командной строки или из конфигурационного файла. Оба метода связаны с использованием команды chainloader, один для загрузки устройства, другой для загрузки ядра ОС или загрузочных файлов. Последовательной загрузкой (chainloading) устройства Grub4dos может загружать даже неподдерживаемые устройства, если эти устройства загружаются из MBR и/или загрузочный сектор раздела является частью механизма загрузки. Последовательная загрузка возможна для устройств, относящихся к следующим разделам:

  • МБР (Master Boot Record)
  • Загрузочный сектор раздела
  • Загрузочный Floppy диск (или образ дискеты)
  • Загрузка с CD-ROM

Последовательная загрузка файлов ОС, более перспективна, чем загрузка устройства, Например загрузка флоппи диска (или образа флоппи диска) с повреждённым загрузочным сектором, будет успешна, пока файловая система в порядке.

  • Загрузка Windows NT/2K/XP
  • Загрузка Консоли восстановления (cmdcons)
  • Загрузка Windows Vista
  • Загрузка Linux
  • Загрузка Windows9x/ME/DOS/FreeDOS

ПРИМЕЧАНИЕ - Все следующие примеры, это примеры пунктов загрузки конфигурационного файла, однако они могут быть легко изменены, для запуска из командной строки. Чтобы запустить эти пункты из командной строки, удалите из них всю сторку title. Затем введя команды, потребуется их загрузить командой boot command (чего не требуется в конфигурационном файле).
Внизу пример menu.lst:

title Boot MBR of First Hard Disk
chainloader (hd0)+1
rootnoverify (hd0)

А в переводе на командную строку будем вводить: chainloader (hd0)+1 [enter], rootnoverify (hd0) [enter], boot [enter].

МБР (Master Boot Record)

Главная загрузочная запись (кратко MBR) это первый сектор жёсткого диска (sector 1). Она содержит таблицу разделов, в каторой отмечено, какой из разделов активный (активный раздел, он же загрузочный раздел). Загрузить MBR жёсткого диска как раз можно командой chainloader. Чтобы загрузить MBR первого жёсткого диска, мы воспользуемся вот этим примером:

title Boot MBR of First Hard Disk
chainloader (hd0)+1
rootnoverify (hd0)

Где (hd0) целый первый жёсткий диск, (hd1) - это выбор загрузки второго жёсткого диска и.т.д... Символ "+" используется для блок списка - в этом случае +1 это первый сектор устройства (hd0). Блок список используется для указания файла, который не фигурирует в файловой системе, как chainloader.

[Наверх]

Загрузочный сектор раздела

В ходе установки Windows загрузочный сектор прописывается впервый сектор раздела на который ставится ОС (больше чем один загрузочный сектор может быть использован на файловой системе NTFS). Обычно, загрузочный сектор раздела (PBS),определяет, какой файл будет использоваться как часть загрузочного процесса - Когда загружается например Windows XP то PBS загружает NT загрузчик ntldr. Имя файла "ntldr" забито в PBS, и может быть просмотрено в hex редакторе. GRUB и Linux загрузчики, могут быть только записаны в PBS. Чтобы загрузить первый раздел первого устройства смотрите пример:

title Boot Partition Boot Sector - First Hard Disk, First Partition
root (hd0,0)
chainloader (hd0,0)+1

Читайте предыдущий пункт "МБР (Master Boot Record)" для подробностей по "+1" (блок списки).

[Наверх]

Boot Загрузочный Floppy диск (или образ дискеты)

Чтобы грузиться с первого флоппи дисковода (fd0) пишите команду:

title Boot Floppy Disk
chainloader (fd0)+1
rootnoverify (fd0)

Чтобы замапить образ дискеты win98.ima на устройстве (hd0,0) в виде виртуального флоппи дисковода (fd0), делаем следующим образом:

title Boot Disk Image
map (hd0,0)/win98.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1

Обратитесь к разделу "Маппинг" Здесь для более детального объяснения вышелседующего примера.

Как альтернатива - memdisk (часть пакета Syslinux) можно использовать для загрузки образов дисков. Следующий пример использует memdisk для загрузки образа диска win98.ima (на устройстве (hd0,0)):

title Boot Disk Image – (memdisk)
root (hd0,0)
kernel /memdisk
initrd /win98.ima

[Наверх]

Загрузка с CD-ROM

Загружаемся с CD/DVD:

title Boot CD-ROM - (cd)
chainloader (cd)
rootnoverify (cd)

Если устройство (cd) не найдено, или верхний пример не работает, пробуем:

title Boot CD-ROM - (cd0)
cdrom --init
map --hook
chainloader (cd0)
rootnoverify (cd0)

Если CD всё равно не загружается и вы возвращаетесь в меню (или командную строку), привод будет продолжать работать. Чтобы остановить cdrom введите команду,
map --unhook [enter], cdrom --stop [enter].

Для загрузки CD каторый Grub4dos не смог загрузить, попробуйте BCDL (Bootable CD Loader) - Взять можно Здесь (или Здесь).
Программа выглядит как образ флоппи диска, каторый грузится командой "map", Например:

title Boot CD Loader
find --set-root /bcdl201a.ima
map --mem /bcdl201a.ima (fd0)
map --hook
root (fd0)
chainloader (fd0)+1

Или используйте задавленный gzip-ом образ, Например:

title Boot CD Loader
find --set-root /bcdl201a.ima.gz
map --mem /bcdl201a.ima.gz (fd0)
map --hook
root (fd0)
chainloader (fd0)+1

ПРИМЕЧАНИЕ - Новая версия BCDL (2.01a) работала на тестах, а (стабильная) версия 1.50z, нет.

[Наверх]

Загрузка Windows NT/2K/XP

Чтобы последовательно загрузить NT загрузчик ntldr (установленный на первый раздел первого жёсткого диска) используем команду:

title Boot Windows NT on (hd0,0)
root (hd0,0)
chainloader /ntldr

Если установлена только одна Windows, следующая команда тоже может быть полезной (если ОС Windows больше одной штуки, то загружена будет первая найденная):

title Boot Windows NT
find --set-root /ntldr
chainloader /ntldr

ПРИМЕЧАНИЕ - NT-система, должна быть установлена на вервый жёсткий диск - попытка загрузиться со второго жёсткого диска не удастся. Можно загрузить Windows с устройства (hd1) Ремапингом (hd0) – Смотрим Сюда.

[Наверх]

Загрузка Консоли восстановления (cmdcons)

Для загрузки Windows NT/2000/XP Recovery Console, делаем следующим образом:

title Windows NT/2K/XP Recovery Console
find --set-root /cmldr
chainloader /cmldr
########################################################
# write string "cmdcons" to memory 0000:7C03 in 2 steps:
########################################################
# step 1. Write 4 chars "cmdc" at 0000:7C03
write 0x7C03 0x63646D63
# step 2. Write 3 chars "ons" and an ending null at 0000:7C07
write 0x7C07 0x00736E6F

или,

title Windows NT/2K/XP Recovery Console
find --set-root /cmdcons/setupldr.bin
chainloader /cmdcons/setupldr.bin
########################################################
# write string "cmdcons" to memory 0000:7C03 in 2 steps:
########################################################
# step 1. Write 4 chars "cmdc" at 0000:7C03
write 0x7C03 0x63646D63
# step 2. Write 3 chars "ons" and an ending null at 0000:7C07
write 0x7C07 0x00736E6F

[Наверх]

Загрузка Windows Vista

Процесс загрузки Vista-систем похож на загрузку NT-систем и файлы ОС должны быть на первом жёстком диске (или заремапленом диске).
Для загрузки Vista последовательно загружаем загрузочный сектор раздела/MBR, или последовательно загружаем загрузчик Висты bootmgr.
Для загрузки bootmgr с первого раздела первого жёсткого диска (device (hd0,0)):

title Boot Windows Vista on (hd0,0)
root (hd0,0)
chainloader /bootmgr

[Наверх]

Загрузка Linux

Чтобы загрузить Linux мы должны использовать команды kernel и initrd – с путями до требуемых файлов.
Например: Для загрузки Puppy Linux (файл ядра vmlinuz и initrd файл initrd.gz) с флешки (определяемой в BIOS-е как второй жёсткий диск с одним разделом) используем команду:

title Linux Puppy
root (hd1,0)
kernel /vmlinuz PMEDIA=usbflash
initrd /initrd.gz

Из-за множества вариантов Linux-подобных ОС, трудно перечислить все возможные способы их загрузки. С каждой ОС нужно разбираться в отдельности вручную подбирая параметры загрузки, в этом может помочь документация по конкретному дистрибутиву.

[Наверх]

Загрузка Windows9x/ME/DOS/FreeDOS

Для загрузки MS DOS (или DOS-подобныс ОС, таких как Windows 9x/ME) можно последовательно (chainloader) загрузить загрузочный сектор раздела или напрямую, последовательно загрузить файл io.sys. Например: Если файлы ДОС находятся на втором разделе первого жёсткого диска:

title Boot MS-DOS
root (hd0,1)
chainloader /io.sys

Аналогично и FreeDOS, можно последовательно (chainloader) загрузить загрузочный сектор раздела или напрямую, последовательно загрузить файл kernel.sys:

title Boot FreeDOS
root (hd0,0)
chainloader /kernel.sys

[Наверх]


Команда "MAP"

Команда map используется для эмуляции дисков. Она является одной из более сложных команд, доступных в Grub4dos - Смотрим Здесь, что grub4dos показывает если ввести help map.
Используя команду map можно:
  • Загружать Windows не с первого жёсткого диска
  • Загружать образы жёстких дисков
  • Загружать образы флоппи дискет на безфлоповых компах
  • Создавать виртуальное устройство, доступное из некоторых операционных систем
  • Загружать ISO образы (в экспериментальном порядке)

Есть два типа маппинга, это прямой маппинг и маппинг памяти. Прямой маппинг обычно используется для больших образов/устройств. Если использовать прямой маппинг, то чтобы создать виртуальное устройство из образа диска, файл образа должен быть непрерывным (не фрагментированным). Эти утилиты - contig или wincontig могут дефрагментировать файл образа.
Попытка замапить фрагментированный файл приведёт к результату - Error 60: File for drive emulation must be in one contiguous disk area , при таком сообщении нужно делать маппинг в память или дефрагментировать образ и пробовать снова.

Маппинг памяти, это значит, что устройство/образ переносится в оперативную память, обычно используется для маленьких образов - Например образов флоппи дисков. При маппинге в память образ диска может быть и фрагментированным. Размер имеющейся оперативной памяти, будет определять максимальный размер образа который можно загрузить.

Процесс "map" осуществляется с помощью INT 13 - и эмулируемый диск будет доступен из других ОС которые используют совместный доступ к файлам, Например DOS и Windows 9x. Не будет доступа к дискам образов ОС, которые используют защищённый режим драйверов (Windows NT/2000/XP/Vista, Linux, FreeBSD) как только режим защиты вступит в работу.

В режиме командной строки мы пройдёмся по следующим понятиям:
  • Прямой Маппинг
  • Маппинг памяти
  • Загрузка из .ISO образа
  • Вложеный Маппинг

Прямой Маппинг

Прямой маппинг характеризуется следующими возможностями:
  • Загрузка образов дисков
  • Подмена диска (Например когда надо загрузить Windows не из первого раздела

[Наверх]

Загрузка образов дисков

Пример прямого маппинга образа флоппи диска уже приводился ранне в этом руководстве:

title Boot Disk Image
map (hd0,0)/win98.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1
Раберём подробно каждую строку этого примера:
  • title Boot Disk Image - Название пункта загрузки. Это можно пропустить, если будем использовать командную строку.
  • map (hd0,0)/win98.ima (fd0) [enter] - Это маппинг файла образа (в данном примере win98.ima, в корне раздела на первом жёстком диске) в виртуальный первый флоппи дисковод (fd0).
  • map --hook [enter] - эта команда осуществляет маппинг немедленно. Когда map --hook выполнена, маппинг будет "Глобальным" - он будет действовать даже в Grub4dos. Это подробно описано в следующем разделе. Если образ флоппи диска не загрузится и вас вернут в командную строку (или в меню), маппинг будет действовать пока команда map --unhook не будет выполнена.
  • chainloader (fd0)+1 [enter] - Это предлогает загрузчику grub4dos последовательно загрузить первый сектор флоппи диска. Когда файл образа будет замаплен как (fd0) и команда map --hook будет выполнена, тогда загрузится образ диска.
  • rootnoverify (fd0) [enter] - Это предлогает загрузчику grub4dos сделать первый замапленый флоппи диск корневым, без попытки его смонтировать. Как обсуждалось раннее, обычно используется "нормальная" команда "root", по крайней мере для образов с стандартными файловыми системами, такими как у флоппи в нашем примере.
  • map --floppies=1 [enter] - Это говорит загрузчику grub4dos, что должен "показываться" только один флоппи (замапированный) - это можно пропустить.
    • Если вы это делаете в командной сторке, то добавляйте команду boot.

Вот что мы видим, когда делаем всё это в командной строке:

grub> map (hd0,0)/win98.ima (fd0)
FAT12 BPB found with 0xEB (jmp) leading the boot sector.

probed C/H/S =80/2/18, probed total sectors = 2880

floppies_orig=0, harddrives_orig=2, floppies_curr=1, harddrives_curr=2

grub> map --hook

grub> chainloader (fd0)+1

grub> rootnoverify (fd0)

grub> map --floppies=1

grub> boot_

Загрузка образа жёсткого диска идёт с использованием некоторых принципов загрузки флоппи диска. Например, загружаем образ жёсткого диска PE.ima из первого логического раздела на втором жёстком диске:
  • map (hd1,4)/PE.ima (hd0) [enter] - мапируем образ диска (в нашем случае PE.img,на первом логическом разделе, второго жёсткого диска) как первый жёсткий диск (hd0).
  • map --hook [enter] - тот же пример, что и с флоппи диском выше.
  • chainloader (hd0)+1 [enter] - Это загружает MBR первого жёсткого диска. Когда файл образа будет замаплен как (hd0) и выполнена команда map --hook, тогда и будет загружена MBR файла образа.
  • rootnoverify (hd0) [enter] - Это сделает первый (замапленый) жёсткий диск корневым, без монтирования. В данной ситуации команда root не может использоваться т.к целый диск не может быть смонтирован. Однако команду root можно использовать когда надо загрузить раздел внутри файла образа, Например, команда последовательной загрузки будет - chainloader (hd0,0)+1, и команда root (hd0,0)+1 будет работать, если тип раздела поддерживается.
  • boot [enter] - Загрузка.

Когда используется прямой маппинг, образ диска должен иметь работоспособную MBR. Образ с несколькими разделами должен мапироваться как (hd) устройство. Если образ диска состоит из одного раздела (без MBR), тогда надо мапить его как флоппи.

Ряд примеров маппинга можно встретить в файле README_GRUB4DOS.txt.

[Наверх]

Подмена диска

Например можно исползовать команду map для подмены дисков, когда мы загружаемся с USB устройства (Например флешка или УСБ-жёсткий диск). Когда настройки BIOS выставлены на загрузку с USB, жёсткий диск станет (hd1). DOS и Windows 9x не смогут грузиться с этого жёсткого диска. Windows NT системы теоретически могут грузиться не с первого диска, но пути в boot.ini будут не верны, когда произойдёт загрузка с USB устройства. Если windows установлена на жёсткий диск, она не будет грузиться.

Например мы ставим в компьютер новый жёсткий диск. А старый жёсткий диск с установленной Windows XP - превращаем из первичного (master) во вторичный (slave) (он становится (hd1)). Новый диск становится первичным (master) (hd0) на нём установлена Vista и теперь нет никакой возможности грузить Windows XP со старого диска.

В подобном случае мы можем загрузить систему не с первого раздела путём подмены дисков (Например: поменяем (hd1) на (hd0)).

Рассмотрим тестовый пример, системы с двумя жёсткими дисками
  • (hd0) - FAT, 300MB, Linux установлен на (hd0,0)
  • (hd1) - FAT, 20MB, MS-DOS установлен на (hd1,0)

(hd0,0) содержит файл-метку hd0.tag и (hd1,0) содержит файл-метку hd1.tag. Программа MBR Wizard находится на (hd1,0), чтобы проверить какой диск будет доступен из ДОС после экспериментов с командой map.

Пробуем загрузить ДОС с (hd1) без подмены дисков, командами:
  • root (hd1,0) [enter]
  • chainloader +1 [enter]
  • boot [enter]

В результате получим ошибку,

Invalid system disk
Replace the disk, and then press any key

Возможно "обмануть" систему, заставив её думать, что (hd1) это первый жёсткий диск используя команду map. Чтобы переделать (hd1) в (hd0) и загрузить ядро ДОС io.sys, используем команды:
  • map (hd1) (hd0) [enter]
  • root (hd1,0) [enter]
  • chainloader /io.sys [enter]
  • boot [enter]

ПРИМЕЧАНИЕ - используя вышеуказанный набор команд, замена (hd1) на (hd0) не будет иметь эффекта пока команда boot не выполнена. Хотя устройство (hd1) было замаплено как (hd0), все ссылки на фактические устройства остаются к (hd1) в Grub4dos. Введение команды find /hd0.tag из командной строки, вернёт устройство (hd0,0), введение команды find /hd1.tag из командной строки, вернёт устройство (hd1,0) - смотрим пример ниже:

grub> map (hd1) (hd0)

grub> find /hd0.tag
(hd0,0)

grub> find /hd1.tag
(hd1,0)

grub> root (hd1,0)
Filesystem type is fat, partition type 0xe

grub> chainloader /io.sys
Will boot MS-DOS 7.x from drive=0x81, partition=0x0(hidden sectors=0x3f)

grub> boot_

Обратите внимание на то, что выводит команда chainloader - ...from drive=0x81. После загрузки ДОС выполняем команду mbrwizd.exe /list.
Теперь вы можете увидеть по размеру и типу файловой системы на Фото 1 - перед нами устройство (hd1) отображается как Disk:0 и Disk:1 - а устройство (hd0) не видимо.

Фото 1.

Как говорилось ранее, команда "map" не заработает пока команда boot не выполнена. Однако команда map --hook выполняет любые команды map немедленно.
Это проще всего объяснить на следующем примере:
  • map (hd1) (hd0) [enter]
  • map --hook [enter]
  • root (hd0,0) [enter]
  • chainloader /io.sys [enter]
  • boot [enter]

ПРИМЕЧАНИЕ - использование вышеперечисленного набора команд, заменит (hd1) на (hd0) немедленно, после того как команда map --hook будет выполнена. Ввод команды find /hd0.tag из командной строки будет иметь результат - "File not found" (файл не найден), ввод команды find /hd1.tag из командной строки вернёт устройства (hd0,0) и (hd1,0) - смотрим пример ниже:

grub> map (hd1) (hd0)

grub> map --hook

grub> find /hd0.tag
Error 15: File not found

grub> find /hd1.tag
(hd0,0)
(hd1,0)

grub> root (hd0,0)
Filesystem type is fat, partition type 0xe

grub> chainloader /io.sys
Will boot MS-DOS 7.x from drive=0x80, partition=0x0(hidden sectors=0x3f)

grub> boot_

Обратите внимание на то, что выводит команда chainloader - ...from drive=0x80. После загрузки ДОС выполняем команду mbrwizd.exe /list. Результат будет таким же как и в предидущем примере, устройство (hd1) отобразится как Disk:0 и Disk:1 - а устройство (hd0) опять не видимо.

Чтобы сделать жёсткие диски видимыми в ДОС-е, ремапим (hd1) как (hd0) и (hd0) как (hd1) с помощью команд:
  • map (hd1) (hd0) [enter]
  • map (hd0) (hd1) [enter]
  • root (hd1,0) [enter]
  • chainloader /io.sys [enter]
  • boot [enter]

ПРИМЕЧАНИЕ - после введения команды map (hd1) (hd0) и map (hd0) (hd1), введение команды find /hd0.tag из командной строки вернёт устройство (hd0). Введение команды find /hd1.tag вернёт устройство (hd1). Когда ДОС будет загружен, оба диска будут доступны, хотя физическое устройство (hd1) будет отображено как Disk: 0, и устройство (hd0) будет Disk: 1 - смотрим Фото 2.

Фото 2.

Следующие команды, с map --hook, тоже можно использовать:
  • map (hd1) (hd0) [enter]
  • map (hd0) (hd1) [enter]
  • map --hook [enter]
  • root (hd0,0) [enter]
  • chainloader /io.sys [enter]
  • boot [enter]

Запомните, что эмулируемые диски доступны только из ОС использующих INT 13.
В примере показанном выше, Windows-подобная система увидит устройство (hd0) как "disk 0" и устройство (hd1) как "disk 1".

Можно так же мапить отдельные разделы как устройство:
  • map (hd1,0)+1 (hd0) [enter]
  • map (hd0) (hd1) [enter]
  • map --hook [enter]
  • chainloader (hd0,0)/io.sys [enter]
  • rootnoverify (hd0) [enter]
  • boot [enter]

Когда маппинг раздела выполнен в следующем синтаксисе (hdm,n)+1 он используется для представления целого раздела (Где m=номер диска, и n=номер раздела), а не только первого сектора.

Пример ответа Grub4dos на команды приведённые выше:

grub> map (hd1,0)+1 (hd0)
FAT16 BPB found with 0xEB (jmp) leading the boot sector.

probed C/H/S =40/16/63, probed total sectors = 40257
Try to locate extended partition (hd1)0+40320 for the virtual (hd0).

probed C/H/S =40/16/63, probed total sectors = 40320

grub> map (hd1) (hd0)

grub> map --hook

grub> chainloader /io.sys
Will boot MS-DOS 7.x from drive=0x80, partition=0x0(hidden sectors=0x3f)

grub> rootnoverify (hd0)

grub> boot_

Отдельные разделы можно замапить как флоппи устройство - это даёт преимущество в том, что жёсткие диски остаются без изменений и будут доступны из загруженных ОС в оригинальном порядке.
Пример:
  • map (hd1,0)+1 (fd0) [enter]
  • map --hook [enter]
  • root (fd0) [enter]
  • chainloader (fd0)+1 [enter]
  • boot [enter]

Отрывок с предупреждением из README_GRUB4DOS.txt:

"Настройки для флоппи и жёстких дисков в BIOS-е остаются неизменными при любом, даже самом настойчивом маппинге. Вы должны вручную привести их к надлежащим значениям с помощью `map --floppies' и/или `map --harddrives=', Например физически нет флоппи диска подключённого к материнской плате. Если так не сделать, ДОС может не загрузиться. Команда`map --status' покажет текущее состояние устройств."

[Наверх]

Маппинг памяти

Мапинг памяти используется с комадами как и на примерах выше, и добавился параметр --mem.

Пример - В замен этих команд:
  • map (hd0,0)/win98.ima (fd0) [enter]
  • map --hook [enter]
  • root (fd0) [enter]
  • chainloader (fd0)+1 [enter]
  • boot [enter]
Используем эти:
  • map --mem (hd0,0)/win98.ima (fd0) [enter]
  • map --hook [enter]
  • root (fd0) [enter]
  • chainloader (fd0)+1 [enter]
  • boot [enter]

Когда мы используем маппинг памяти, допускается, что образ диска может быть фрпагментированым. Устройство преносится в оперативную память - Например: map --mem (hd0,0)+1 (fd0) (как говорилось ранее, +1 используется с командой map чтобы обозначить целый диск). Если замапить образа диска без MBR в память, он может быть в качестве (hd) устройства, а MBR будет создан в рамках Grub4dos - основываясь на данных раздела.

Сжатый образ тоже можно использовать при маппинге памяти. Образ должен быть сжат gzip-ом (получится файл с расширением .gz ), это бесплатный "opensource" архиватор. Т.к многие образы дисков не являются "заполнеными", их сжатие, может освободить достаточно много места. Стандартные образы дискет (1440 Кб) обычно оставляют как есть. Сжимать образы рекомендуется т.к это позволяет экономить место и ускорять их запуск.

Пример использования сжатого образа:
  • find --set-root /win98.ima.gz [enter]
  • map --mem /win98.ima.gz (fd0) [enter]
  • map --hook [enter]
  • root (fd0) [enter]
  • chainloader +1 [enter]
  • boot [enter]

gzip можно скачать Здесь. Если будем давить gzip-ом образ флоппи диска bcdl201a.ima 1440Кб, то в сжатом виде он будет весить 10.4Кб.

Grub4dos поддерживает только .gz формат, а ядро memdisk (часть пакета syslinux) поддерживает .zip формат - Например Winimage .imz формат.
Ядро memdisk может быть сжато gzip-ом и загружено с помощью Grub4dos.

Пример использования сжатого memdisk (с помощю gzip) для загрузки образа флоппи диска:
  • find --set-root /memdisk.gz [enter]
  • kernel /memdisk.gz [enter]
  • initrd /win98.ima [enter]
  • boot [enter]

или,

  • find --set-root /memdisk.gz [enter]
  • kernel /memdisk.gz [enter]
  • initrd /win98.ima.gz [enter]
  • boot [enter]

или,

  • find --set-root /memdisk.gz [enter]
  • kernel /memdisk.gz [enter]
  • initrd /win98.ima.zip [enter]
  • boot [enter]

ПРИМЕЧАНИЕ - на вышеприведённых примерах win98.ima должен находиться в том же разделе, что и memdisk.gz.

[Наверх]

Загрузка из .ISO образа

Новые версии Grub4dos могут мапить и загружать некоторые CD образы, Однако следует отметить, что эта опция имеет экспериментальный характер.
Некоторые CD-ROM (ISO9660) образы могут мапиться как устройство (hd32), и загружаться используя следующие команды (измените это (device)/path/file.iso под свои путь/имя файла):
  • map (device)/path/file.iso (hd32) [enter]
  • map --hook [enter]
  • root (hd32) [enter]
  • chainloader (hd32) [enter] - это можно заменить командой chainloader () [enter], если корневое устройство назначенно предидущей командой.
  • boot [enter]

Есть несколько типов эмуляции загрузки с CD, включая флоппи эмуляцию - в которой загрузочный сектор CD это образ загрузочной дискеты. Загрузочный сектор нельзя увидеть при просмотре содержимого CD в файловых менеджерах таких как Windows Explorer, может показаться, что диск пуст и нет на нём никаких файлов и образов.

В следующем примере был взят образ CD содержащий в себе загрузочный сктор в виде ДОС-загрузочной дискеты, с различными ДОС программами на диске CD (не в загрузочной области).
Когда мы загружаемся с этого (реального) CD, образ в загрузочном секторе определяется как диск A:, и сам CD-ROM (и программы в его корне) занимают следующую доступную букву диска.
Файл образа CD (hd0,0)/dos.iso будет грузиться используя команды приведённые выше, вот то что покажет Grub4dos в результате этих команд:

grub> map (hd0,0)/dos.iso (hd32)

grub> map --hook

grub> root (hd32)
Filesystem type is iso9660, using the whole disk

grub> chainloader (hd32)

Load segment: 0x0 System Type: 0x0 Sector Count: 0x1
Load RBA: 0x3E Boot Type: 2 = 1.44M floppy

grub> boot

С виду CD загрузился нормально. Загрузочный сектор CD определился как A:, а CD-ROM определился как E:.
Но к сожалению попытка дострупа к файлам на диске E: (корень CD образа) заканчивается ошибкой.

Файл README_GRUB4DOS.txt гласит:

ПРИМЕЧАНИЕ - Если команда mkisofs –iso-level 4 была использована для создания .iso образа (как это делается в PE билдах), MSCDEX.EXE не должна использоваться - удалите её с SHSUCDX
(Подробности Здесь).

Отредактированные config.sys и autoexec.bat и с добавленным в загрузочный образ файлом eltorito.sys, записали в dos.iso.
Этот переделанный CD загрузился как и ранее с доступным как A: загрузочным образом и с недоступным корнем CD.

Файл README_GRUB4DOS.txt так же предлогоает заменить (hd32) на (0xFF), Пример:
  • map (device)/path/file.iso (0xFF) [enter]
  • map --hook [enter]
  • root (0xFF) [enter]
  • chainloader (0xFF) [enter] - это можно заменить командой chainloader () [enter], если корневое устройство назначенно предидущей командой.
  • boot [enter]

Когда мы мапим .iso содержащий eltorito.sys в загрузочном секторе устройства (0xFF), CD-ROM загружается и теперь обе части, загрузочный образ (А:) и корень CD доступны!

Этот пример показывает какие сложности случаются при эмуляции CD-ROM. Если хотите посмотреть на рабочие примеры, то это можно сделать Здесь

[Наверх]

Вложеный Маппинг

Используя последние версии Grub4dos можно замапить образ из другого замапленного образа - Иногда это называют двойной маппинг.
UBCD проект, например, использует загрузочный CD содержащий загрузочный образ дискеты. Используя эмуляцию CDROM, мы можем замапить файл UBCD .iso как (hd32),
затем замапить образ флоппи диска из (hd32) как устройство (fd0), затем загрузиться со свежезамапленного образа флоппи диска.

Например:
  • map --mem (hd0,0)/ubcd34-basic.iso (hd32) [enter]
  • map --hook [enter]
  • map --mem (hd32)/IMAGES/MAXBLAST.IGZ (fd0) [enter]
  • map --hook [enter]
  • root (fd0) [enter]
  • chainloader +1 [enter]
  • boot [enter]
ПРИМЕЧАНИЕ для Grub4dos, автор tinybit - При использования этой формы маппинга, нет ограничения на число вложений. По примеру выше,
можно замапить ещё один образ из последнего замапленного как (fd0).

Пример:
  • map --mem (hd0,0)/ubcd34-basic.iso (hd32) [enter]
  • map --hook [enter]
  • map --mem (hd32)/IMAGES/MAXBLAST.IGZ (fd0) [enter]
  • map --hook [enter]
  • map --mem (fd0)/floppy.img.gz (fd1) [enter]
  • map --hook [enter]
  • root (fd1) [enter]
  • chainloader +1 [enter]
  • boot [enter]

[Наверх]


Примеры

Существует несколько способов загрузить ОС средствами Grub4dos - не существует единого, "правильного" метода. Это показано в нижеследующих примерах, на том как MSDOS загружается с первого жёсткого диска из первого раздела (hd0,0).

Пример 1

  • chainloader (hd0,0)+1 [enter] - грузится загрузочный сектор раздела.
  • root (hd0,0) [enter] - монтируется раздел, (см. Примечание).
  • boot [enter]
Примечание - Выполнить команду root не удастся, если файловая система не определится.

Ответ на введённые выше команды:

grub> chainloader (hd0,0)+1

grub> root (hd0,0)
Filesystem type is fat, partition type 0xe

grub> boot_

Пример 2

  • chainloader (hd0,0)+1 [enter] - как в пирмере 1
  • rootnoverify (hd0,0) [enter] - делает раздел корневым, но не монтирует его.
  • boot [enter]

Ответ на введённые выше команды:

grub> chainloader (hd0,0)+1

grub> rootnoverify (hd0,0)

grub> boot_

Пример 3

  • root (hd0,0) [enter] - как в пирмере 1
  • chainloader +1 [enter] - как только корневой раздел назначен, относительные пути могут быть использованы в следующих командах.
    В нашем случае +1 обозначает первый сектор (загрузочный сектор раздела) текущего корневого устройства.
  • boot [enter]

Ответ на введённые выше команды:

grub> root (hd0,0)
Filesystem type is fat, partition type 0xe

grub> chainloader +1

grub> boot_

Пример 4

  • find --set-root /io.sys [enter] - При использовании команды find --set-root, опции загрузки не указывают на определённый путь и будет произведён поиск в корнях всех поддерживаемых устройств, на предмет нахождения там файла io.sys. Устройство (или раздел) на катором будет найден этот файл, будет назначено корневым устройством, и все следующие команды будут относится к этому устройству. Следует помнить, что если этих файлов несколько и они на разных разделах, то будет загружен первый найденный, а это может привести к загрузке не того что нам надо. Можно использовать маркерный файл в замен системного (Например: find --set-root /hd00.tag).
  • chainloader +1 [enter] - как в примере 3
  • boot [enter]

Ответ на введённые выше команды:

grub> find --set-root /io.sys
(hd0,0)
Filesystem type is fat, partition type 0xe

grub> chainloader +1

grub> boot_

Команда chainloader (hd0,0)+1 может быть заменена на команду chainloader (hd0,0)/io.sys в примерах 1 и 2,
и команда chainloader +1 может быть заменена на команду chainloader /io.sys в примерах 3 и 4. Пример:

  • find --set-root /io.sys [enter]
  • chainloader /io.sys [enter]
  • boot [enter]

Ответ на введённые выше команды:

grub> find --set-root /io.sys
(hd0,0)
Filesystem type is fat, partition type 0xe

grub> chainloader /io.sys
Will boot MS-DOS 7.x from drive=0x80, partition=0x0(hidden sectors=0x3f)

grub> boot_

Как уже говорилось в этом руководстве, загрузка таким способом может не использовать MBR код, и не использовать загрузочный сектор раздела, загрузочный файл ОС может быть загружен напрямую.
Это значит, что пока данные в разделе не поврежденные, он является загрузочным, и grub4dos сможет восстановить/загрузить систему, когда загрузочный код повреждён.

[Наверх]


Примеры мультизагрузочных настроек

Чтобы понять этот раздел, вы должны усвоить все предидущие разделы.

Следующий пример будет описывать создание мультизагрузочной настройки с использованием Grub4dos, чтобы добиться сосуществования: Windows 2000; Windows XP; Windows Vista; и Puppy Linux. Инструкции по установке этих систем здесь не упомянаются, т.к цель примера показать работу Grub4dos. Существует много способов настроить мультизагрузку - это только один метод.

Система будет состоять из двух жёстких дисков, структура разделов на них будет следующая:

Устройство | Операционная система | Тип Раздела | Размер раздела
(hd0,0) | Windows 2000 | NTFS | 5GB
(hd0,1) | Windows XP | NTFS | 10GB
(hd0,4) | Linux Puppy | FAT | 200MB
(hd0,5) | N/A - Data | FAT 32 | -
(hd1,0) | Windows Vista | NTFS | 20GB

Как вы видите из таблицы, разделы с Windows 2000 и Windows XP являются главными (primary), Puppy Linux и "Data" (данные), являются логическими разделами в расширенном разделе. Windows Vista установлена на отдельный жёсткий диск. В ходе установки операционных систем, Grub4dos будет настроен, чтобы скрыть разделы ОС друг от друга. Раздел "Data" (hd0,5) будет доступен из всех ОС.

Описание установки операционных систем.

Следующая инструкция показывает, как будут разбиты разделы жёстких дисков. В этом разделе поговорим про первый жёсткий диск (hd0) - второй Vista диск (hd1) будет затронут позже.
Чтобы создать структуру разделов мы установим ОС (Windows 2000) и в ходе установки будем использовать "Windows disk mnagement console" т.е "Управление дисками".
  • Загружаемся с установочного CD Windows 2000 и следуя инструкции создаём раздел на 5GB, с файловой системой NT (NTFS).
  • Устанавливаем Windows в раздел созданный в первом шаге. Когда установка Windows 2000 завершена,
    Войдите в ОС и запустите "Управление дисками" (Пуск > Выполнить... и напишите diskmgmt.msc)
  • Сделайте правый щелчёк мышью на секции "Unallocated" (Неразмеченное пространство) на диске "Disk 0" и выберите опцию "New Partition..." (Новый раздел) -
    следуя инструкциям создайте Главный (Primary) раздел, на 10240Mб (10Gб) размером, с файловой системой NTFS.
  • Повторите предидущий шаг, но на этот раз создайте расширенный раздел в оставшемся пространстве.
  • Сделайте правый щелчёк мышью на секции "Free space" (Свободное пространство) и выбирайте опцию "New Logical Drive..." (Новый Логический Диск) - следуя инструкциям создайте Логический диск на 200Mб размером, с файловой системой FAT.
  • Повторите предидущий шаг, но на этот раз создайте Логический диск используя свободное пространство, с файловой системой FAT32.
  • Чтобы подготовить диск для Windows Vista, Сделайте правый щелчёк мышью на секции "Unallocated" (Неразмеченное пространство) на диске "Disk 1" и выберите опцию "New Partition..." (Новый раздел) - следуя инструкциям создайте Главный (Primary) раздел, используя всё доступное пространство, с файловой системой NTFS.
  • Чтобы установит XP на (hd0,1), Сделайте правый щелчёк мышью на втором разделе на "Disk 0" и задействуйте опцию "Mark Partition as Active" (Сделать раздел Активным) - НЕ пропустите этот шаг!
  • Вставьте установочный CD c Windows XP и перезагрузитесь. Убедитесь, что загрузка с CD выставленна в BIOS-е как первый пункт загрузки.
  • Затем вы увидите загадочную надпись "Press any key to boot from CD..." - нажмите что нибудь на клавиатуре иначе начнётся загрузка с раздела на катором ещё ничего нет.
  • В начале установки XP, мы выбираем раздел (hd0,1) - он должен будет стать "C:".
  • По завершении установки загрузите Windows XP, будем устанавливать Linux из XP (как бы кощунственно это ни звучало:).
  • Скопируйте следующие файлы с диска Linux Puppy, в корень первого логического диска (hd0,4):
    • vmlinuz
    • initrd.gz
    • pup_4**.sfs
    • zdrv_4**.sfs
  • Создайте маркерный файл в корне раздела (hd0,4) - если используется IDE HDD, то файл назовём idehd (без расширения).

В ходе установки Windows Vista на (hd1), база BCD и другие загрузочные файлы будут записаны на Активный раздел (hd0). Чтобы избежать этого, временно отключите (hd0) от системы
(отключите первый жёсткий диск в BIOS-е, а лучше физически, залезьте под крышку системника и отсоедините IDE/SATA шлейф соединяющий жёсткий диск и материнскую плату,
ну и заодно отключите питание от жёсткого диска). Убедитесь, что диск для Висты установлен как "Master" (Первичный), затем смело ставьте Windows Vista с установочного DVD.

Когда установка Висты завершится, подключите обратно первый жёсткий диск и сделайте его Первичным (master), а диск с Вистой сделайте Вторичным (slave).

Презагрузите PC, загрузится Windows XP, (hd0,1) - это всё ещё Активный раздел.

Чтобы создать конфигурационный файл для Grub4dos menu.lst, откройте блокнот и введите текст:

color light-blue/blue light-red/red
timeout 10
default 1

Теперь сохраните документ как menu.lst (только не сохраняйте как menu.lst.txt).

Пунктом загрузки Windows 2000 будет следующий текст:

title Windows 2000
chainloader (hd0,0)/ntldr
rootnoverify (hd0)

или,

title Windows 2000
chainloader (hd0,0)+1
rootnoverify (hd0)

Так как мы не хотим, чтобы остальные ОС были доступны из Windows 2000, мы добавляем команду hide и unhide для других разделов. Меняем пункт загрузки Windows 2000 на этот:

title Windows 2000
unhide (hd0,0)
hide (hd0,1)
hide (hd0,4)
unhide (hd0,5)
hide (hd1,0)
chainloader (hd0,0)+1
rootnoverify (hd0)

Теперь если мы загрузим Windows 2000 через этот пункт меню, видимыми разделами будут только (hd0,0) и (hd0,5) - это раздел с Windows 2000 и общий раздел DATA.

Пунктом загрузки Windows XP, будет следующий текст:

title Windows XP
hide (hd0,0)
unhide (hd0,1)
hide (hd0,4)
unhide (hd0,5)
hide (hd1,0)
chainloader (hd0,0)+1
rootnoverify (hd0)

или,

title Windows XP
hide (hd0,0)
unhide (hd0,1)
hide (hd0,4)
unhide (hd0,5)
hide (hd1,0)
chainloader (hd0,0)/ntldr
rootnoverify (hd0)

Пунктом загрузки Linux Puppy, будет следующий текст:

title Linux Puppy
hide (hd0,0)
hide (hd0,1)
unhide (hd0,4)
unhide (hd0,5)
hide (hd1,0)
find --set-root /vmlinuz
kernel /puppy400/vmlinuz pmedia=idehd psubdir=puppy400 pkeys=uk
initrd /puppy400/initrd.gz

или,

title Linux Puppy
hide (hd0,0)
hide (hd0,1)
unhide (hd0,4)
unhide (hd0,5)
hide (hd1,0)
kernel (hd0,4)/puppy400/vmlinuz pmedia=idehd psubdir=puppy400 pkeys=uk
initrd (hd0,4)/puppy400/initrd.gz rootnoverify (hd0,4)

Для загрузки Windows Vista entry мы вынуждены будем использовать команду map, чтобы сменить порядок дисков, т.к Виста откажется грузиться не с первого жёсткого диска.
Пункт загрузки будет выглядеть так:

title Windows Vista
hide (hd0,0)
hide (hd0,1)
hide (hd0,4)
unhide (hd0,5)
unhide (hd1,0)
map (hd1) (hd0)
map (hd0) (hd1)
map --hook
find --set-root /bootmgr
chainloader /bootmgr
rootnoverify (hd0)

Файл menu.lst будет выглядеть так:

И в завершении всего этого осталость только установить загрузчик Grub4dos любым подходящим вам способом, подробности Здесь. Файлы grldr и menu.lst должны при этом находиться на любом доступном загрузчику устройстве.

[Наверх]


Команды

Текст ответов на команды был оставлен без перевода, т.к оригинальный текст иногда достаточно информативен, но возможно перевод будет сделан позже.

Эти команды основаны на GNU GRUB и не всегда подходят к Grub4dos. Следующий пример покажет ответ на команду help default:

grub> help default
default: default [NUM ¦ 'saved' ¦ FILE]
set the default entry to entry number NUM (if not specified, it is 0,
the first entry), or to the entry number saved by savedefault if the
key word 'saved' is specified, or to the entry number previously saved
in the specified file FILE. When FILE is specified, all subsequent
'savedefault' commands will save default entry numbers into FILE.

Команда default [NUM] может работать в конфигурационном файле, а default saved нет. Когда мы пишем default [FILE], то получим действия только с файлом default входящим в пакет поставки загрузчика - Например: default /default.

Следующие (61) команда используются в Grub4dos - версии 0.4.3 (build 2008-03-14)

  • background
  • blocklist
  • boot
  • cat
  • cdrom
  • chainloader
  • clear
  • cmp
  • color
  • commandline
  • configfile
  • debug
  • default
  • displaymem
  • embed
  • errnum
  • errorcheck
  • fallback
  • find
  • foreground
  • fstest
  • geometry
  • halt
  • help
  • hiddenflag
  • hide
  • initrd
  • install - Примечание, эта команда будет удалена – используйте вместо неё утилиту bootlace.com.
  • is64bit
  • kernel
  • lock
  • makeactive
  • map
  • md5crypt
  • module
  • modulenounzip
  • outline
  • pager
  • partnew
  • parttype
  • password
  • pause
  • pxe
  • quit
  • read
  • reboot
  • root
  • rootnoverify
  • savedefault
  • serial
  • setkey
  • setup - Примечание, эта команда будет удалена – используйте вместо неё утилиту bootlace.com.
  • setvbe
  • splashimage
  • terminal
  • terminfo
  • testload
  • testvbe
  • unhide
  • vbeprobe
  • write

background

grub> help background
background: background RRGGBB
Sets the background color when in graphics mode. RR is red, GG is green,
and BB blue. Numbers must be in hexadecimal.

blocklist

grub> help blocklist
blocklist: blocklist FILE
Print the blocklist notation of the file FILE.

boot

grub> help boot
boot: boot
Boot the OS/chain-loader which has been loaded.

cat

grub> help cat
cat: cat [--hex] [--skip=S] [--length=L] [--locate=STRING] FILE
Print the contents of the file FILE, or print the locations of the
string STRING in file.

cdrom

grub> help cdrom
cdrom: cdrom --add-io-ports=P ¦ --init ¦ --stop
Initialise/stop atapi cdroms or set additional I/O ports for a possible
atapi cdrom device. The high word of P specifies the base register of
the control block registers, and the low word of P specifies the base
register of the command block registers.

chainloader

grub> help chainloader
chainloader: chainloader [--force] [--load-segment=LS] [--load offset=LO]
[--load-length=LL] [--skip-length=SL] [--boot-cs=CS] [--boot-ip=IP]
[--ebx=EBX] [--edx=EDX] [--sdi] [--disable-a20] FILE
Load the chain-loader FILE. If --force is specified, then load it
forcibly, whether the boot loader signature is present or not. LS:LO
specifies the load address other than 0000:7C00. LL specifies the
length of the boot image(between 512 and 640k). CS:IP specifies the
address where the boot image will gain control. EBX/EDX specifies the
EBX/EDX register value when the boot image gets control. Use --sdi if
FILE is a System Deployment Image, which is of the Windows XP RAM boot
file format. Use --disable-a20 if you wish to turn off A20 when
transferring control to the boot image. SL specifies length in bytes at
the beginning of the image to be skipped when loading.

clear

grub> help clear
clear: clear
Clear the screen

cmp

grub> help cmp
cmp: cmp FILE1 FILE2
Compare the file FILE1 with the file FILE2 and inform the different values
if any.

color

grub> help color
color: color NORMAL [HIGHLIGHT]
Change the menu colors. The color NORMAL is used for most lines in the
menu, and the color HIGHLIGHT is used to highlight the line where the
cursor points. If you omit HIGHLIGHT, then the inverted color of NORMAL
is used for the highlighted line. The format of a color is "FG/BG". FG
and BG are symbolic color names. A symbolic color name must be one of
these: black, blue, green, cyan, red, magenta, brown, light-grey,
dark-grey, light-blue, light-green, light-cyan, light-red,
light-magenta, yellow and white. But only the first eight names can be
used for BG. You can prefix "blink-" to FG if you want a blinking
foreground color.

commandline

grub> help commandline
commandline: commandline
Enter the command-line prompt mode.

configfile

grub> help configfile
configfile: configfile FILE
Load FILE as the configuration file.

debug

grub> help debug
debug: debug [on ¦ off ¦ normal ¦ status ¦ INTERGER]
Turn on/off or display/set the debug level.

default

grub> help default
default: default [NUM ¦ 'saved' ¦ FILE]
set the default entry to entry number NUM (if not specified, it is 0,
the first entry), or to the entry number saved by savedefault if the
key word 'saved' is specified, or to the entry number previously saved
in the specified file FILE. When FILE is specified, all subsequent
'savedefault' commands will save default entry numbers into FILE.

displaymem

grub> help displaymem
displaymem: displaymem
Display what GRUB thinks the system address space map of the machine
is, including all regions of physical RAM installed.

embed

grub> help embed
embed: embed STAGE1_5 DEVICE
Embed the Stage 1.5 STAGE1_5 in the sectors after MBR if DEVICE is a
drive, or in the "bootloader" area if DEVICE is a FFS partition. Print
the number of sectors which STAGE1_5 occupies if successful.

errnum

grub> help errnum
errnum: errnum
Return the error number.

errorcheck

grub> help errorcheck
errorcheck: errorcheck [on ¦ off ¦ status]
Turn on/off or display the error check mode, or toggle it if no
argument.

fallback

grub> help fallback
fallback: fallback NUM...
Go into unattended boot mode: if the default boot entry has any errors,
instead of waiting for the user to do anything, it immediately starts
over using the NUM entry (same numbering as the 'default' command).
This obviously won't help if the machine was rebooted by a kernel that
GRUB loaded.

find

grub> help find
find: find [--set-root] [--ignore-floppies] FILENAME
Search for the filename FILENAME in all partitions and print the
list of the devices which contain the file. If the option --set-root is
used and FILENAME is found on a device, then stop the find immediately
and set the sevice as new root. If the option --ignore-floppies is
present, the search will bypass all floppies.

foreground

grub> help foreground
foreground: foreground RRGGBB
Sets the foreground color when in graphics mode. RR is red, GG is green,
and BB blue. Numbers must be in hexadecimal.

fstest

grub> help fstest
fstest: fstest [on ¦ off ¦ status]
Turn on/off or display the fstest mode, or toggle it if no argument.

geometry

grub> help geometry
geometry: geometry DRIVE [CYLINDER HEAD SECTOR [TOTAL_SECTOR]]
Print the information for a drive DRIVE. In the grub shell, you can set
the geometry of the drive arbitrarily. The number of the cylinders, the
one of the heads, the one of the sectors and the one of the total
sectors are set to CYLINDER, HEAD, SECTOR and TOTAL_SECTOR,
respectively. If you omit TOTAL_SECTOR, then it will be calculated
based on the C/H/S values automatically.

halt

grub> help halt
halt: halt [--no-apm]
Halt your system. If APM is available on it, turn off the power using
the APM BIOS, unless you specify the option '--no-apm'.

help

grub> help help
help: help [--all] [PATTERN...]
Display helpful information about builtin commands. Not all commands
aren't shown without the option '--all'.

hiddenflag

grub> help hiddenflag
hiddenflag: hiddenflag [--set ¦ --clear] [PARTITION]
Hide/unhide PARTITION by setting/clearing the "hidden" bit in its
partition type code, or report the hidden status. The default partition
is the current root device.

hide

grub> help hide
hide: hide [PARTITION]
Hide PARTITION by setting the "hidden" bit in its partition type code.
The default partition is the current root device.

initrd

grub> help initrd
initrd: initrd FILE [ARG...]
Load an initial ramdisk FILE for a Linux format boot image and set the
appropriate parameters in the Linux setup area in memory.

install

grub> help install
install: install [--stage2=STAGE2_FILE] [--force-lba] STAGE1 [d] DEVICE
STAGE2 [ADDR] [p] [CONFIG_FILE] [REAL_CONFIG_FILE]
Install STAGE1 on DEVICE and install a blocklist for loading STAGE2 as
a Stage 2. If the option 'd' is present, the Stage 1 will always look
for the disk where the STAGE2 was installed, rather than using the booting
drive. The Stage 2 will be loaded at address ADDR, which will be
determined automatically if you don't specify it. If the option 'p' or
CONFIG_FILE is present, then the first block of Stage 2 is patched with
new values of the partition and name of the configuration file used by
the true Stage 2 (for a Stage 1.5, this is the name of the true Stage
2) at boot time. If STAGE2 is a Stage 1.5 and REAL_CONFIG_FILE is
present, then the Stage 2 CONFIG_FILE is patched with the configuration
filename REAL_CONFIG_FILE. If the option '--force-lba' is specified,
disable some sanity checks for LBA mode. If the option '--stage2' is
specified, rewrite the Stage 2 via your OS's filesystem instead of the
raw device.

is64bit

grub> help is64bit
is64bit: is64bit
Return true if CPU is 64-bit and false if not.

kernel

grub> help kernel
kernel: kernel [--no-mem-option] [--type=TYPE] FILE [ARG...]
Attempt to load the primary boot image from FILE. The rest of the line
is passed verbatim as the "kernel command line". Any modules must be
reloaded after using this command. The option --type is used to suggest
what type of kernel to be loaded. TYPE must be either of "netbsd",
"freebsd", "openbsd", "linux", "biglinux" and "multiboot". The option
--no-mem-option tells GRUB not to pass a Linux's mem option
automatically.

lock

grub> help lock
lock: lock
Break a command execution unless the user is authenticated.

makeactive

grub> help makeactive
makeactive: makeactive [--status]
Set the active partition on the root disk to GRUB's root device. This
command is limited to _primary_ PC partitions on a hard disk.

map

grub> help map
map: map [--status] [--mem[=RESERV]] [--hook] [--unhook] [--rehook]
[--floppies=M] [harddrives=N] [--memdisk-raw=RAW] [--a20-keep-on=AKO]
[--safe-mbr-hook=SMH] [--int13-scheme=SCH] [--ram-drive=RD]
[--rd-base=ADDR] [--rd-size=SIZE] [[--read-only] [--fake-write]
[--unsafe-boot] [--disable-chs-mode] [--disable-lba-mode] [--heads=H]
[--sectors-per-track=S] TO_DRIVE FROM_DRIVE]
Map the drive FROM_DRIVE to the drive TO_DRIVE. This is necessary when
you chain-load some operating systems, such as DOS, if such an OS
resides at a non-first drive. TO_DRIVE can be a disk file, this
indicates a disk emulation. If TO_DRIVE is a disk file, it must be
contiguous(i.e., no holes in it). If --read-only is given, the emulated
drive will be write-protected. If --fake-write is given, any write
operations to the emulated drive are allowed but the data written will
be discarded. The --unsafe-boot switch enables the write to the Master
and DOS boot sectors of the emulated disk. If --disable-chs-mode is
given, CHS access to the emulated drive will be refused. If
--disable-lba-mode is given, LBA access to the emulated drive will be
refused. H and S specify the geometry of the emulated drive. M/N
specify the floppy/harddrive count in the BIOS data area. If RAW=1, all
memdrives will be accessed without using int15/ah=87h. If RAW=0, then
int15/ah=87h will be used to access memdrives. If one of --status,
--hook, --unhook, --rehook, --floppies, --harddrives, memdisk-raw,
--a20-keep-on, --safe-mbr-hook, --int13-scheme, --ram-drive, --rd-base
or --rd-size is given, then any other command-line arguments will be
ignored. They either report or change the int13 status, or change the
floppy or hard drive count byte in the BIOS data area. The --mem option
indicates a drive in memory. if RESERV is used and <= 0, the minimum
memory occupied by the memdrive is (-RESERV) in 512-byte-sectors. if
RESERV is used and > 0, the memdrive will occupy the mem area starting
at absolute physical address RESERV in 512-byte-sectors and ending at
the end of this mem block(usually the end of physical mem). RD
specifies the ramdisk number, and can be a BIOS drive number. ADDR
specifies the base address of the ramdisk image. SIZE specifies the
size in bytes of the ramdisk image.

md5crypt

grub> help md5crypt
md5crypt: md5crypt
Generate a password in MD5 format.

module

grub> help module
module: module FILE [ARG...]
Load a boot module FILE for a Multiboot format boot image (no
interpretation of the file contents is made, so users of this command
must know what the kernel in question expects). The rest of the line is
passed as the "module command line", like the 'kernel' command.

modulenounzip

grub> help modulenounzip
modulenounzip: modulenounzip FILE [ARG...]
The same as 'module', except that automatic decompression is disabled.

outline

grub> help outline
outline: outline [on ¦ off ¦ status]
Turn on/off or display the outline mode, or toggle it if no argument.

pager

grub> help pager
pager: pager [on ¦ off ¦ status]
Turn on/off or display the pager mode, or toggle it if no argument.

partnew

grub> help partnew
partnew: partnew [--active] PART TYPE START [LEN]
Create a primary partition at the starting address START with
the length LEN, with the type TYPE. START and LEN are in sector units. If
--active is used, the new partition will be active. START can be a
contiguous file that will be used as the content/data of the new
partition, in which case the LEN parameter is ignored, and TYPE can be
either 0x00 for auto or 0x10 for hidden-auto.

parttype

grub> help parttype
parttype: parttype [PART] [TYPE]
Change the type of the partition PART to TYPE. If TYPE is omitted,
return the partition type of the specified device(instead of changing
it). PART default to the current root device.

password

grub> help password
password: password [--md5] PASSWD [FILE]
If used in the first section of a menu file, disable all interactive
editing control (menu entry editor and command line). If the password
PASSWRD is entered, it loads the FILE as a new config file and restarts
the GRUB Stage 2. If you omit the argument FILE, then GRUB just unlocks
privileged instructions. You can also use it in the script section, in
which case it will ask for the password, before continueing. The option
--md5 tells GRUB that PASSWD is encrypted with md5crypt.

pause

grub> help pause
pause: pause [--wait=T] [MESSAGE...]
Print MESSAGE, then wait until a key is pressed or T seconds has passed.

pxe

grub> help pxe
pxe: pxe [cmd] [parameters]
Call PXE command.

quit

grub> help quit
quit: quit [--disable-a20]
Go back to DOS if GRUB was previously launched from DOS.

read

grub> help read
read: read ADDR
Read a 32-bit value from memory at address ADDR and display it in hex
format.

reboot

grub> help reboot
reboot: reboot
Reboot your system.

root

grub> help root
root: root [DEVICE [HDBIAS]]
Set the current "root device" to the device DEVICE, then attempt to
mount it to get the partition size (for passing the partition
descripter in 'ES:ESI', used by some chain-loaded bootloaders), the BSD
drive type (for booting BSD kernels using their native boot format),
and correctly determine the PC partition where a BSD sub-partition is
located. The optional HDBIAS parameter is a number to tell a BSD kernel
how many BIOS drive numbers are on controllers befor the current one.
For example, if there is an IDE disk and a SCSI disk, and your FreeBSD
root partition is on the SCSI disk, then use a '1' for HDBIAS.

rootnoverify

grub> help rootnoverify
rootnoverify: rootnoverify [DEVICE [HDBIAS]]
similar to 'root', but don't atttempt to mount the partition. This is
useful for when an OS is outside the area of the disk that GRUB can
read, but setting the correct root device is still desired. Note that
the itesm mentioned in 'root' which derived from attempting the mount
will NOT work correctly.

savedefault

grub> help savedefault
savedefault: savedefault[--wait=T] [NUM ¦ 'fallback']
Save the current entry as the default boot entry if no argument is
specified. If a number is specified, this number is saved. If
'fallback' is used, next fallback entry is saved. If T is not 0, prompt
the user to confirm the write operation by pressing the Y key, and if
no key-press detected within T seconds, the write will be discarded.

serial

grub> help serial
serial: serial [--unit=UNIT] [--port=PORT] [--speed=SPEED] [--word=WORD]
[parity=PARITY] [--stop=STOP] [--device=DEV]
Initialise a serial device. UNIT is a degit that specifies which serial
device is used (e.g. 0 == COM1). If you need to specify the port
number, set it by --port. SPEED is the DTE-DTE speed. WORD is the word
length, PARITY is the type of parity, which is one of 'no', 'odd' and
'even'. STOP is the length of stop bit(s). The option --device can be
used only in the GRUB shell, which specifies the file name of a tty
device. The default values are COM1, 9600, 8N1.

setkey

grub> help setkey
setkey: setkey [TO_KEY FROM_KEY]
Change the keyboard map. The key FROM_KEY is mapped to the key TO_KEY.
A key must be an alphabet, a digit, or one of these: escape, exclaim,
at, numbersign, dollar, percent, caret, ampersand, asterisk, parenleft,
parenright, minus, underscore, equal, plus, backspace, tab,
bracketleft, braceleft, bracketright, braceright, enter, control,
semicolon, colon, quote, doublequote, backquote, tilde, shift,
backslash, bar, comma, less, period, greater, slash, question, alt,
spcae, capslock, FX (X is a digit), and delete. If no argument is
specified, reset key mappings.

setup

grub> help setup
setup: setup [--prefix=DIR] [--stage2=STAGE2_FILE] [--force-lba]
INSTALL_DEVICE [IMAGE_DEVICE]
Set up the installation of GRUB automatically. This command used the
more flexible command "install" in the backend and installs GRUB into
the device INSTALL_DEVICE. If IMAGE_DEVICE is specified, then find the
GRUB images in the device IMAGE_DEVICE, otherwise use the current "root
device", which can be set by the command "root". If you know that your
BIOS should support LBA but GRUB doesn't work in LBA mode, specify the
option '--force-lba'. If you install GRUB under the grub shell and you
cannot unmount the partition where GRUB images reside, specify the
option '--stage2' to tell GRUB the file name under your OS.

setvbe

grub> help setvbe
setvbe: setvbe MODE_3D
Set the VBE mode MODE_3D(which is of the form 1024x768x32) for each
subsequent kernel command-line.

splashimage

grub> help splashimage
splashimage: splashimage FILE
Load FILE as the background image when in graphics mode.

terminal

grub> help terminal
terminal: terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS]
[--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]
Select a terminal. When multiple terminals are specified, wait until
you push any key to continue. If both console and serial are specified,
the terminal to which you input a key first will be selected. If no
argument is specified, print current setting. The option --dumb
specifies that your terminal is dumb, otherwise, vt100-compatibility is
assumed. If you specify --no-echo, input characters won't be echoed. If
you specify --no-edit, the BASH-like deiting feature will be disabled.
If --timeout is present, this command will wait at most for SECS
seconds. The option --lines specifies the maximum number of lines. The
option --silent is used to surpress messages.

terminfo

grub> help terminfo
terminfo: terminfo [--name=NAME --cursor-address=SEQ [--clear-screen=SEQ]
[--enter-standout-mode=SEQ] [--exit-standout-mode=SEQ]
Define the capabilities of your terminal. Use this command to define
escape sequences, if it is not vt100-compatible. You may use \e for ESC
and ^X for a control character. If no option is specified, the current
settings are printed.

testload

grub> help testload
testload: testload FILE
Read the entire contents of FILE in several different ways and campares
them, to thest the filesystem code. The output is somewhat cryptic, but
if no errors are reported and the final 'i=X, filepos=Y' reading had X
and Y equal, then it is definitely consistent, and very likely works
correctly subject to a consistent offset error. If this test succeeds,
then a good next step is to try loading a kernel.

testvbe

grub> help testvbe
testvbe: testvbe MODE
Test the VBE mode MODE. Hit any key to return.

unhide

grub> help unhide
unhide: unhide [PARTITION]
Unhide PARTITION by setting the "hidden" bit in its partition type
code. The default partition is the current root device.

vbeprobe

grub> help vbeprobe
vbeprobe: vbeprobe [MODE]
Probe VBE information. If the mode number MODE is specified, show only
the information about only the mode.

write

grub> help write
write: write ADDR VAL
Write a 32-bit value VAL to memory at address ADDR.


Эксперименты с Grub4dos

Чтобы проверить установку, использование и настройки Grub4dos без риска повредить текущую ОС, можно использовать Виртуальную Машину. Благодаря хорошей виртуализации оборудования програмным обеспечением, довольно просто создать виртуальный жёсткий диск для тестов.

Это просто для тех кто дружит с командной строкой в QEMU, это бесплатная виртуальная машина перенесённая на платформу Windows. QEMU не надо устанавливать - просто распакуйте куда нибудь архив и запустите командную строку. Можно использоват и Графическую версию (GUI) - QEMU Manager.

Альтернативой Qemu являются следующие виртуальные машины:

  • Virtual Box
  • Microsoft Virtual PC
  • VMWare Workstation

Если имеется достаточно места на диске, можно использовать большие образы дисков, так же можно порезать эти образы на разделы или наделать много образов и побаловаться с Мультизагрузочными конфигурациями.

Установка Windows XP в QEMU

ПРИМЕЧАНИЕ
  • Для опытов применялась версия QEMU 0.9.0. файлы/Папки в путях для QEMU, разделены вот такой косой чертой / (а не такой \ как в windows системах).
  • Если у вас нет установочного диска Windows XP, то это руководство может быть использовано для установки DOS/MSDOS; Linux; и Windows 9x/NT/2000/XP (Windows Vista НЕ совместима с QEMU!).
  • Руководство показывает лишь основы QEMU - но доступны и многоие другие опции, такие как работа в сети с Основной ОС и с другими виртуальными машинами.

Создание образа диска

qemu-img.exe текст помощи, выводимый по команде qemu-img.exe -h

Чтобы создать пустой образ диска, Откройте командную строку в директории QEMU и вводите следующее qemu-img.exe create [filename] [size].
  • Где [filename] это имя образа диска (с путём) - Пример: C:/test.ima. Можно использовать относительный путь - Пример: test.ima это создаст файл образа test.ima в директории QEMU, /Images/test.ima создаст файл образа test.ima в поддиректории QEMU Images.
  • Где [size] это размер файла образа в килобайтах. Можно использовать суффикс 'M' (мегабайт) и 'G' (гигабайт) - Пример: 1024M создаст файл образа размером 1024 Mб.

Для создания образа в 3Gб (XP.ima) в корне диска C: - Вводим команду:
qemu-img.exe create C:/XP.ima 3G

Установка гостевой операционной системы

qemu.exe текст помощи, выводимый по команде (from command qemu.exe -h).

Предположим, что ваш CD дисковод имеет букву "D:", вставьте установочный диск Windows в авш дисковод и пишите команду (Поменяйте букву D: на ту каторая у вас соответствует вашему CD приводу) -
qemu.exe -L . -m 256 -boot d -cdrom D: -hda C:\XP.ima.
  • Где -L показывает путь к файлам bios и keymap (в этом примере -L . указывает на то место, откуда запущена qemu.)
  • Где -m 256 выделяет оперативную память для виртуальной машины, в размере 256Mб.
  • Где -boot d показывает, что CD это первое загрузочное устройство (-boot a = флоппи диск; -boot c = жёсткий диск).
  • Где -cdrom D: делает cdrom-ом физическое устройство D: (образ cd тоже подойдёт - Пример: -cdrom C:\XP.iso).
  • Где -hda C:\XP.ima монтируемый образ диска C:\XP.ima.

QEMU должна загрузиться с установочного CD. Образ диска может быть всячески порезан на разделы, в ходе установки XP - QEMU медленне, чем Софт приведённый выше, поэтому запаситесь терпением, установка может занять ощутимое время.

Когда ОС будет установлена, Гостевая OS может быть запущена следующей командой:
qemu.exe -L . -m 256 -boot c -hda C:\XP.ima.

Обмен файлами с гостевой операционной системы

Когда Гостевая ОС будет установлена, мы должны найти путь обмена с ней файлами. Для этого существует ряд методов, один легче другого.

  • Монтирование CD (или образа CD)
  • Монтирование образа диска Гостевой ОС
  • Монтирование Физического жёсткого диска
Можно настроит сетевое соединение между Основной и Гостевой системами, но это не цель данного руководства.

Монтирование CD (или образа CD)

Монтирование CD было показано выше - просто используйте синтаксис -cdrom [drive:] (Где [drive:] это буква диска).

или можно создать образ CD (.iso) и монтировать его с синтаксисом -cdrom [file] (Где [file] имя файла образа с путём к нему - запомните, надо использовать вот такую чётрочку / при указании пути).
Чтобы создать образ .iso, скачайте утилиту командной строки mkisofs.
Используйте mkisofs следующим образом:
  • Создайте папку C:\mkisofs и скопируйте туда mkisofs.exe.
  • Создайте папку C:\mkisofs\root.
  • Скопируйте файлы каторые вы хотите поместить в образ .iso вот сюда C:\mkisofs\root.
  • Откройте командную строку в папке mkisofs, и введите команду -
    mkisofs.exe -R -o C:\xp.iso root
    Где C:\xp.iso это имя (и путь) для создания образа, и root это корень CD.

Теперь используйте команду qemu.exe -L . -m 256 -boot c -hda C:\XP.ima -cdrom C:\xp.iso это запустит Гостевую ОС, и все файлы будут доступны ОС через CD-ROM.

Монтирование образа диска Гостевой ОС

Есть возможность примонтировать образ диска с Гостевой ОС к Основной ОС с помощю различного ПО. Чтобы использовать бесплатную программу ImDisk, нужно её скачать и установить.
Щёлкните правой мышью на файл образ каторый вы хотите примантировать (Например: C:\XP.ima) и выберите опцию Mount as ImDisk Virtual Disk - это откроет окно с внутренностями образа диска.

Для открытия образов удобно так же использовать программу winimage

Монтирование Физического жёсткого диска

Делать будем следуя цитате из 3.6.5.2 of qemu-doc.html:

"Жёсткие диски используются с синтаксисами: `\\.\PhysicalDriveN' Где N это номер диска (0 - это первый жёсткий диск).

ВНИМАНИЕ: будте бдительны, может лучше сделать доступ READ-ONLY, чтобы не запортить ваши данные на жёстких дисках
(команда `-snapshot' делает так, что все измения происходят во временном файле)."

Чтобы использовать первый жёсткий диск (физический диск (hd0) в представлении grub4dos), вводим команду
qemu.exe -L . -m 256 -boot c -hda C:\XP.ima -hdb \\.\PhysicalDrive0 затем стартуем Гостевую ОС. Учтите, что чёрточки (Например: \\.\PhysicalDrive0) каторые мы используем, такие как рекомендует нам qemu-doc.html. Другие источники упорно утверждают, что надо использовать обратные чёрточки - Например: //./PhysicalDrive0.
Таким образом нельзя монтировать разделы, мотировать придётся целый диск.

Для тестирования флешек используйте команду qemu.exe -L . -m 256 -boot c -hda C:\XP.ima -hdb \\.\PhysicalDrive1. Интересно, что флешка монтируется как жёсткий диск в гостевой ОС.
Файлы скопированные на носитель в Гостевой ОС, не отображаются в проводнике Explorer основной системы до тех пор пока носитель не будет отмонтирован.

[Наверх]


Ссылки на закачку

Grub4dos качаем здесь:
  • Финальные сборки (Например версия 0.4.3) доступны Здесь
  • Стабильные сборки (Например версия 0.4.3pre1) доступны Здесь
  • Новые сборки (Например версия 0.4.3-2008-03-14) доступны Здесь
  • Свежие сборки, иногда гораздо новее, чем по предыдущим ссылкам, доступны Здесь (и Здесь)
  • Пакет быстрой установки из Windows доступен Здесь
Руководства по Grub4dos:
  • Руководство bean-а доступно Здесь (а здесь оно в оригинале http://www.znpc.net/forum/).
  • Руководство Sourceforge доступно Здесь
Разное:
  • Grubinst - Здесь
  • Grub4dos подфорум на boot-land.net Здесь
  • Введение в (Microsoft's) Virtual PC Здесь
  • Руководство по Мультизагрузке Здесь - включая руководство по загрузке Windows из логического раздела в расширенном разделе.

Оглавление Предыдущая Проект GreenFlash Форум


 [menu]
menuitem=CD, Start computer with CD-ROM support.
menuitem=NOCD, Start computer without CD-ROM support.
menuitem=GRUB, Grub4dos Boot Loader.
menuitem=HELP, View the Help file.
menudefault=CD,30
menucolor=7,0

[GRUB]
install=grub.exe
[CD]
device=himem.sys /testmem:off
device=oakcdrom.sys /D:mscd001
device=btdosm.sys
device=flashpt.sys
device=btcdrom.sys /D:mscd001
device=aspi2dos.sys
device=aspi8dos.sys
device=aspi4dos.sys
device=aspi8u2.sys
device=aspicd.sys /D:mscd001

[NOCD]
device=himem.sys /testmem:off

[HELP]
device=himem.sys /testmem:off

[COMMON]
files=10
buffers=10
dos=high,umb
stacks=9,256
devicehigh=ramdrive.sys /E 2048
lastdrive=z