Grub Chain load: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) (→Grub2) |
Sirmax (обсуждение | вклад) (→Grub2) |
||
Строка 14: | Строка 14: | ||
{{Root|<nowiki>#grub-install --boot-directory=/media/e0f8e1c7-496b-4a2c-abe3-b96ead21a8f3/boot/ --no-floppy /dev/sdb</nowiki>}} |
{{Root|<nowiki>#grub-install --boot-directory=/media/e0f8e1c7-496b-4a2c-abe3-b96ead21a8f3/boot/ --no-floppy /dev/sdb</nowiki>}} |
||
обратить внимание - указать boot директорию, в моем случае это автогенеренный путь убунтой. |
обратить внимание - указать boot директорию, в моем случае это автогенеренный путь убунтой. |
||
+ | в grub.conf: |
||
+ | |||
+ | <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> |
Версия 11:41, 13 апреля 2012
Загрузка с образров дисков
Дано:
- образ диска (iso) - в моем случае это кастомизированная сборка ISXi, и образ "спасательный" (в примере - gentoo)
Требуется:
- Нормальная загрузка - загрузить систему установленную на диске если это возможно. Возможность загрузки определяю по наличию файла-флага (/OK)
- Загрузка "спасательного образа" если на флешке установлен флаг (создан файл) recovery
- Если отстутвует файл ОК на диске и отсутвует файл рековери - запустить установку.
Задача разбита на 2 части
- загрузка grub2 - этот загрузчик дает возможность проверять файлы на дисках.
- загрузка grub4dos - этот загрузчик позволяет грузить образы дисков
Grub2
Устанавливаю груб2 на флешку: (флешка - /dev/sdb):
#grub-install --boot-directory=/media/e0f8e1c7-496b-4a2c-abe3-b96ead21a8f3/boot/ --no-floppy /dev/sdb
обратить внимание - указать boot директорию, в моем случае это автогенеренный путь убунтой. в grub.conf:
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 }