6 ноября 2012 г.

Установка Grub4Dos на жесткий диск
[Install Grub4Dos to the hard disk]

   Вам уже стало известно какой "мощный" инструмент представляет Grub4Dos и сколько разных возможностей предоставляет. Теперь вы бы хотели загружать его с жесткого диска с установленной на нем Windows XP/Vista/7/8, выбирая Grub4Dos в меню загрузчика Windows.
   В данной статье я покажу как добавить запись в меню загрузки, не изменяя загрузчика по умолчанию (в WinXP - это ntldr и конфигурационный файл boot.ini, в WinVista/7/8 - это bootmgr с конф.базой BCD). Познакомлю со средствами работы с конф.базой BCD, а именно, с консольной утилитой встроенной в WinVista/7/8 - bcdedit, и программой с GUI интерфейсом от NeoSmart Technologies - EasyBCD. Также приведу скрипт для автоматического добавления записи Grub4Dos в меню загрузки ОС.

Рассмотрим 2 ситуации:
1. У нас есть WinXP и его загрузчик ntldr.
2. У нас есть Windows XP/Vista/7/8 с современным оригинальным загрузчиком bootmgr.

Начнем с простого:

Добавление Grub4Dos в меню загрузки Windows XP.

1. Скачиваем последний Grub4Dos.
2. Распаковываем grldr и menu.lst из скачанного архива в корень активного диска (можно и в другое место, но тогда придется прописывать другие пути).
3. Редактируем boot.ini. В конец файла дописываем:
C:\grldr="Grub4Dos"
В результате получим файл boot.ini примерно следующего содержания:
Так же можем изменить время и пункт загружаемый по умолчанию.
Перезагружаемся и теперь мы можем выбрать Grub4Dos.
Примечание:
В menu.lst я обязательно первым бы пунктом сделал возврат в данное загрузочное меню, т.е.:
title Boot HDD0
chainloader (hd0)+1
rootnoverify (hd0)

Добавление Grub4Dos в меню загрузки Windows Vista/7/8.
   Итак, у нас имеется загрузчик bootmgr, через который грузятся другие ОС. Он устанавливается с WinVista/7/8. Наиболее понятным средством для работы с ним является программа EasyBCD. Освоить ее не составит труда, все просто и понятно. Но она не предоставит тех возможностей как консольная утилита bcdedit. Поэтому я покажу как работать именно с ней.
1. Прежде чем преступать к правке загрузочной конфигурации, советую подготовить диск восстановления системы потому, что неправильные действия могут привести к невозможности загрузки ОС. Так же для восстановления загрузочной информации советую обратиться к этой статье.
2. Загружаемся в Windows Vista/7/8.
3. Скачиваем последний Grub4Dos.
4. Распаковываем grldr.mbr, grldr и menu.lst из скачанного архива в корень диска содержащий хранилище BCD (можно и в другое место, но тогда придется прописывать другие пути), обычно это активный основной раздел с загрузчиком bootmgr.
5. Запускаем ком.строку от имени администратора.
6. Создаем резервную копию BCD:
bcdedit /export C:\BCD.bak
    Чтобы в случае чего можно было востаниться до начального состояния командой:
bcdedit /import C:\BCD.bak
7. Создадим новую запись с именем "Grub4Dos" в хранилище данных конфигурации загрузки:
bcdedit /create /d "Grub4Dos" /application bootsector
8. В ответ получим id созданной записи, который подставим в последующие три команды за место {id}:
bcdedit /set {id} device partition=C:
bcdedit /set {id} path \grldr.mbr

bcdedit /displayorder {id} /addlast
9. Смотрим что получилось. Вводим команду bcdedit без параметров:
bcdedit
   У меня получилось следующее (кроме Win7 у меня есть запись с WinXP):
   Видим что у нас добавилась запись Grub4Dos.
10. Выходим из ком.строки. Перезагружаем ПК. Видим что у нас теперь есть возможность грузить Grub4Dos из меню загрузки ОС.

Расскажу еще про несколько параметров команды bcdedit:
- Удаление записи с указанным {id}:
bcdedit /delete {id}
- Изменение названия записи с указанным {id}:
bcdedit /set {id} description "Новое название"
- Задание системы с указанным {id} загружаемой по умолчанию:
bcdedit /default {id}
- Задание таймаута :
bcdedit /timeout XX
где XX – время в секундах.

Скрипт автоматического добавления Grub4Dos в меню загрузки Windows XP/Vista/7/8.
   Данный скрипт позволяет автоматически определять ОС, и в зависимости от системы работает с конфигурационными файлами загрузчика.
   Для его запуска скачиваете этот архив. Распаковываете его на диск С: (активный диск с системой и загрузчиком). И запускаете от имени администратора.
   Архив состоит из след.файлов:
grldr                - сам загрузчик grub4dos
grldr.mbr         - запись загрузочного сектора (ищет grldr в корне дисков и передает ему управление)
install.bat        - cам скрипт
libiconv2.dll   - библиотеки программы sed
libintl3.dll      - библиотеки программы sed
menu.lst         - конф.файл grub4dos
sed.exe           - потоковый текстовый редактор (Sed)
   Скрипт install.bat имеет следующее содержание:
@echo off

ver | find "XP" > nul
if %ERRORLEVEL% == 0 goto ver_xp

goto ver_vista

:: Windows XP
:ver_xp

:: Backup
attrib -R -H -S c:\boot.ini
copy c:\boot.ini c:\boot.ini.bak

:: Check if installed
findstr /L grldr "c:\boot.ini" > nul
if %ERRORLEVEL% == 0 goto END

:: Add boot entry
echo C:\grldr="GRUB4DOS" >> "c:\boot.ini"

:: create restore.bat file for XP
echo attrib -R -H -S "c:\boot.ini" >> restore.bat
echo %CD%\sed -ri "/grldr/d" "c:\boot.ini" >> restore.bat
echo %CD%\sed -ri "s/$/\r/" "c:\boot.ini" >> restore.bat

goto END

:: Windows Vista
:ver_vista

:: Check if installed
Set BCDEDIT=C:\windows\System32\bcdedit.exe
%BCDEDIT% /enum | findstr /L grldr > nul
if %ERRORLEVEL% == 0 goto END

:: Backup
%BCDEDIT% /export "C:\BCD.bak"
attrib +H +S C:\BCD.bak

:: Add boot entry
Set GUIDFILE=bcdguid.txt
%BCDEDIT% /create /d "GRUB4DOS" /application bootsector > %GUIDFILE%
sed -ri "s/[^{]*([^}]+}).*/\1/" %GUIDFILE%
set /p GUID= < %GUIDFILE%

%BCDEDIT% /set %GUID% device partition=%SYSTEMDRIVE%
%BCDEDIT% /set %GUID% path \grldr.mbr
%BCDEDIT% /displayorder %GUID% /addlast

:: create restore.bat file for Vista
echo %BCDEDIT% /delete %GUID% >> restore.bat

goto END

:END


Используемый материал:
Установка загрузчика Grub4dos
Редактирование меню загрузки Windows 7 и Windows 8
Восстановление загрузчика Windows 7 вручную при помощи утилит bootrec.exe и bcdboot.exe
Grub4dos Guide - Loading/Installing Grub4dos From Windows

При копировании статьи просьба указывать источник и автора.
С уважением, GRomR1.

2 комментария:

  1. а как наоборот добавить в меню лист загрузку хр или 7? к примеру может как то сослаться на boot.ini. Хотя кстати у себя на С я его не нашел. Возможно из за того что стоит еще и убунту....

    ОтветитьУдалить
    Ответы
    1. Проще простого.
      Подробности в этой статье:
      http://gromr1.blogspot.ru/2012/02/menulst-configure-grub4dos.html
      Или в руководстве Grub4Dos:
      http://greenflash.su/Grub4Dos/files/boot.htm#nt

      Удалить