Grub Chain load: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) (Новая: =Загрузка с образров дисков= Дано: *образ диска (iso) - в моем случае это кастомизированная сборка ISXi, и о...) |
Sirmax (обсуждение | вклад) |
||
| (не показано 12 промежуточных версий этого же участника) | |||
| Строка 1: | Строка 1: | ||
| + | [[Категория:Linux]] |
||
| + | [[Категория:Grub2]] |
||
=Загрузка с образров дисков= |
=Загрузка с образров дисков= |
||
Дано: |
Дано: |
||
| − | *образ диска (iso) - в моем случае это кастомизированная сборка |
+ | *образ диска (iso) - в моем случае это кастомизированная сборка ESXi, и образ "спасательный" (в примере - убунта) |
Требуется: |
Требуется: |
||
| + | * Нормальная загрузка - загрузить систему установленную на диске если это возможно. Возможность загрузки определяю по наличию файла-флага (/OK) |
||
| + | * Загрузка "спасательного образа" если на флешке установлен флаг (создан файл) recovery |
||
| + | * Если отстутвует файл ОК на диске и отсутвует файл рековери - запустить установку. |
||
| + | <BR> |
||
| + | Задача разбита на 2 части |
||
| + | * загрузка grub2 - этот загрузчик дает возможность проверять файлы на дисках. |
||
| + | * загрузка grub4dos - этот загрузчик позволяет грузить образы дисков |
||
| + | |||
| + | На флешке 2 раздела, на первом - убунта и файлы относящиеся к grub2. Для grub4dos - нужен vfat раздел. |
||
| + | <PRE> |
||
| + | ls -1 |
||
| + | boot |
||
| + | lost+found |
||
| + | recovery |
||
| + | ubuntu-11.10-desktop-i386.iso |
||
| + | </PRE> |
||
| + | |||
| + | на втором разделе (ФАТ!) - то что относиться к grub4dos, menu.lst в корне диска - это нормально. |
||
| + | <PRE> |
||
| + | ls -1 |
||
| + | boot |
||
| + | menu.lst |
||
| + | vm.iso |
||
| + | </PRE> |
||
| + | ==Grub2== |
||
| + | Устанавливаю груб2 на флешку: (флешка - /dev/sdb): |
||
| + | {{Root|<nowiki>#grub-install --boot-directory=/media/e0f8e1c7-496b-4a2c-abe3-b96ead21a8f3/boot/ --no-floppy /dev/sdb</nowiki>}} |
||
| + | обратить внимание - указать boot директорию, в моем случае это автогенеренный путь убунтой. |
||
| + | в grub.cfg: |
||
| + | |||
| + | <PRE> |
||
| + | insmod loopback.mod |
||
| + | |||
| + | menuentry "Boot" { |
||
| + | # check for flag |
||
| + | echo "Check for recovery mode" |
||
| + | if [ -f (hd0,1)/recovery ]; then |
||
| + | echo "Recovery file found, Ububtu will be loaded" |
||
| + | set isofile="/ubuntu-11.10-desktop-i386.iso" |
||
| + | loopback loop (hd0,1)$isofile |
||
| + | linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile nomodeset |
||
| + | initrd (loop)/casper/initrd.lz |
||
| + | else |
||
| + | # Normal boot |
||
| + | echo "Check OK on (hd1,2)" |
||
| + | if [ -f (hd1,2)/OK ]; then |
||
| + | echo "OK file found ... " |
||
| + | set root=(hd1) |
||
| + | chainloader +1 |
||
| + | boot |
||
| + | else |
||
| + | # Finally - Re-install |
||
| + | echo "Re-install mode" |
||
| + | set root=(hd0,2) |
||
| + | linux16 /boot/grub/grub.exe |
||
| + | fi |
||
| + | fi |
||
| + | } |
||
| + | </PRE> |
||
| + | |||
| + | ==Grub4Dos== |
||
| + | На втором разделе - лежит груб4дос, который в отличии от груб2 может грузить с ИСО. Отмечу, что его не нужно устанавливать - достаточно просто скопировать, управление передается явно.<BR> |
||
| + | menu.lst |
||
| + | <PRE> |
||
| + | default 0 |
||
| + | timeout 3 |
||
| + | title ESXi |
||
| + | map (hd0,1)/vm.iso (0xff) |
||
| + | map --hook |
||
| + | chainloader (0xff) |
||
| + | boot |
||
| + | </PRE> |
||
| + | подробнее про маппинг - тут http://greenflash.su/Grub4Dos/files/map.htm |
||
Текущая версия на 15:42, 28 сентября 2012
Загрузка с образров дисков
Дано:
- образ диска (iso) - в моем случае это кастомизированная сборка ESXi, и образ "спасательный" (в примере - убунта)
Требуется:
- Нормальная загрузка - загрузить систему установленную на диске если это возможно. Возможность загрузки определяю по наличию файла-флага (/OK)
- Загрузка "спасательного образа" если на флешке установлен флаг (создан файл) recovery
- Если отстутвует файл ОК на диске и отсутвует файл рековери - запустить установку.
Задача разбита на 2 части
- загрузка grub2 - этот загрузчик дает возможность проверять файлы на дисках.
- загрузка grub4dos - этот загрузчик позволяет грузить образы дисков
На флешке 2 раздела, на первом - убунта и файлы относящиеся к grub2. Для grub4dos - нужен vfat раздел.
ls -1 boot lost+found recovery ubuntu-11.10-desktop-i386.iso
на втором разделе (ФАТ!) - то что относиться к grub4dos, menu.lst в корне диска - это нормально.
ls -1 boot menu.lst vm.iso
Grub2
Устанавливаю груб2 на флешку: (флешка - /dev/sdb):
#grub-install --boot-directory=/media/e0f8e1c7-496b-4a2c-abe3-b96ead21a8f3/boot/ --no-floppy /dev/sdb
обратить внимание - указать boot директорию, в моем случае это автогенеренный путь убунтой. в grub.cfg:
insmod loopback.mod
menuentry "Boot" {
# check for flag
echo "Check for recovery mode"
if [ -f (hd0,1)/recovery ]; then
echo "Recovery file found, Ububtu will be loaded"
set isofile="/ubuntu-11.10-desktop-i386.iso"
loopback loop (hd0,1)$isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile nomodeset
initrd (loop)/casper/initrd.lz
else
# Normal boot
echo "Check OK on (hd1,2)"
if [ -f (hd1,2)/OK ]; then
echo "OK file found ... "
set root=(hd1)
chainloader +1
boot
else
# Finally - Re-install
echo "Re-install mode"
set root=(hd0,2)
linux16 /boot/grub/grub.exe
fi
fi
}
Grub4Dos
На втором разделе - лежит груб4дос, который в отличии от груб2 может грузить с ИСО. Отмечу, что его не нужно устанавливать - достаточно просто скопировать, управление передается явно.
menu.lst
default 0 timeout 3 title ESXi map (hd0,1)/vm.iso (0xff) map --hook chainloader (0xff) boot
подробнее про маппинг - тут http://greenflash.su/Grub4Dos/files/map.htm