GRUB2 vs GRUB4DOS

  • Если установлен «большой линукс с grub2» и frugal линуксы - удобнее grub2 (чтобы не править конфиги при обновлении ядра ). Чтобы не переписывать конфиги grub4dos - можно сделать переход grub2 → grub4dos
menuentry "GRUB4DOS" {
 search --no-floppy --file /boot/grub4dos/grub.exe --set=root
 linux16 /boot/grub4dos/grub.exe
}
  • GRUB2 имеет больший функционал (например удобнее загрузка из файла.iso, UEFI)

GRUB2

Установка.

http://ubuntologia.ru/grub2-recovery

grub-install /dev/sdX

Основной конфиг.

/boot/grub.cfg

Если меню не отображается - во время загрузки нажать «Shift» или «Esc»

Изменение стандартного пункта загрузки

sudo mcedit /etc/default/grub
  • «GRUB_DEFAULT» номер пункта в меню загрузки, который должен быть выбран стандартным. причем нумерация начинается с нуля. значение по умолчанию - 0
  • «GRUB_TIMEOUT» время отображения меню 1)

Добавление нестандартного пункта загрузки

sudo mcedit /etc/grub.d/40_custom 

Нумерация физических дисков (с 0)

sudo fdisk -l
sudo blkid

В grub нумерация физических дисков и нумерация разделов начинались одинаково - с нуля. первый физический диск (sda в системе) обозначался «hd0», второй (sdb) - «hd1», и так далее. это же осталось и в grub2.

Нумерация разделов диска (с 1)

Нумерация разделов диска изменилась. Если в grub первый раздел первого диска (sda1) именовался «hd0,0», четвертый (sda4) - «hd0,3», то теперь, в grub2, цифра раздела в grub2 соотвествует цифре раздела в системе. то есть, sda1 теперь будет «hd0,1» (а не «hd0,0»), sdb4 - «hd1,4». Файл «40_custom» должен заканчиваться пустой строкой, иначе последний пункт не будет отображаться в меню!

Посмотреть изменения /boot/grub.cfg

sudo grub-mkconfig

Применить изменения /boot/grub.cfg

sudo update-grub2

Пример

http://forums.linuxmint.com/viewtopic.php?f=46&t=52328&p=300889 http://zenway.ru/page/grub-2-booting-from-iso-img

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  load_env
fi
set default="0"
if [ ${prev_saved_entry} ]; then
  set saved_entry=${prev_saved_entry}
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z ${boot_once} ]; then
    saved_entry=${chosen}
    save_env saved_entry
  fi
}
insmod ext2
set root=(hd2,5)
search --no-floppy --fs-uuid --set 9b26a82d-9011-40ea-b97c-3deb4b0f9ee8
if loadfont /share/grub/unicode.pf2 ; then
  set gfxmode=640x480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don't
    # understand terminal_output
    terminal gfxterm
  fi
fi
insmod ext2
set root=(hd2,1)
search --no-floppy --fs-uuid --set a3a25440-b94a-4210-88c6-6b8ab6909e61
set locale_dir=($root)/grub/locale
set lang=en
insmod gettext
set timeout=5
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod ext2
set root=(hd2,5)
search --no-floppy --fs-uuid --set 9b26a82d-9011-40ea-b97c-3deb4b0f9ee8
insmod tga
if background_image /share/images/grub/Moraine_Lake_17092005.tga ; then
  set color_normal=black/black
  set color_highlight=magenta/black
else
  set menu_color_normal=black/green
  set menu_color_highlight=white/green
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/12_Gloria ###
menuentry "Linux Mint Gloria XFCE" {
   set root=(hd2,1)
   linux   /vmlinuz-2.6.28-11-generic root=/dev/sdc2 ro quiet splash
   initrd   /initrd.img-2.6.28-11-generic
}
### END /etc/grub.d/12_Gloria ###

### BEGIN /etc/grub.d/13_Helena ###
menuentry "Helena Xfce RC1" {
   set root=(hd3,2)
   linux /boot/vmlinuz-2.6.31-14-generic root=/dev/sdd2 ro quiet splash
   initrd /boot/initrd.img-2.6.31-14-generic
}
### END /etc/grub.d/13_Helena ###

### BEGIN /etc/grub.d/14_OpenBSD ###
set root=(hd3,1)
menuentry "OpenBSD 4.6" {
   chainloader +1
}
### END /etc/grub.d/14_OpenBSD ###

### BEGIN /etc/grub.d/15_chainusb ###
menuentry "chainload UFD" {
   set root=(hd4,1)
   chainloader +1
}
menuentry "chainload grub.exe" {
   set root=(hd4,1)
   linux16 /grub.exe
}
### END /etc/grub.d/15_chainusb ###

### BEGIN /etc/grub.d/18_WinXP64 ###
menuentry "WinXP64" {
   set root=(hd0,1)
   chainloader +1
}
### END /etc/grub.d/18_WinXP64 ###

### BEGIN /etc/grub.d/22_tipsy ###
menuentry "Tipsy Puppy" {
set root=(hd1,4)
linux   /tipsy/vmlinuz root=/dev/ram0 pmedia=satahd
initrd  /tipsy/initrd.gz
}
menuentry "Tipsy Puppy - RAM" {
set root=(hd1,4)
linux /tipsy/vmlinuz root=/dev/ram0 pfix=ram pmedia=satahd
initrd /tipsy/initrd.gz
}
### END /etc/grub.d/22_tipsy ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/32_iso ###
menuentry "slitaz-2.0 Live CD" {
loopback loop (hd1,4)/slitaz-2.0.iso
linux (loop)/boot/vmlinuz-2.6.25.5-slitaz pmedia=satahd iso-scan/filename=/slitaz-2.0.iso --
initrd (loop)/boot/rootfs.gz
}
menuentry "Helena Xfce Live CD" {
loopback loop (hd1,4)/LinuxMint-8-Xfce-RC1.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/LinuxMint-8-Xfce-RC1.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
}
menuentry "Helena 64bit Live CD" {
loopback loop (hd1,4)/LinuxMint-8-x64.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/LinuxMint-8-x64.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
}
menuentry "Grml small 2009.10 Live CD" {
  loopback loop (hd1,4)/grml-small_2009.10.iso
  linux (loop)/boot/grmlsmall/linux26 findiso=/grml-small_2009.10.iso lang=us boot=live nomce noeject noprompt --
  initrd (loop)/boot/grmlsmall/initrd.gz
}
menuentry "tinycore Live CD" {
loopback loop (hd1,4)/tinycore_2.7.iso
linux (loop)/boot/bzImage --
initrd (loop)/boot/tinycore.gz
}
menuentry "Gentoo Linux minimal install cd x86" {
        loopback loop (hd1,4)/install-x86-minimal-20100216.iso
        linux (loop)/isolinux/gentoo root=/dev/ram0 init=/linuxrc dokeymap
looptype=squashfs loop=/image.squashfs cdroot initrd=gentoo.igz vga=791
isoboot=/install-x86-minimal-20100216.iso
        initrd (loop)/isolinux/gentoo.igz
}
### END /etc/grub.d/32_iso ###

### BEGIN /etc/grub.d/40_multiboot ###
# Ajout de MultiBoot-v3

### MULTIBOOT MENU
menuentry "PLoP Boot Manager" {
   set root=(hd2,1)
   linux16 /plpbt
}

menuentry "GRUB4DOS" {
 search --no-floppy --file /boot/grub4dos/grub.exe --set=root
 linux16 /boot/grub4dos/grub.exe
}


menuentry "Smart Boot Manager" {
   set root=(hd2,1)
   linux16 /memdisk
   initrd16 /sbootmgr.dsk
}
### FIN MULTIBOOT MENU
### END /etc/grub.d/40_multiboot ###

### BEGIN /etc/grub.d/50_images ###
menuentry "Bootable floppy: aida" {
   insmod ext2
   set root=(hd2,1)
   search --no-floppy --fs-uuid --set a3a25440-b94a-4210-88c6-6b8ab6909e61
        linux16 /memdisk bigraw
        initrd16 /images/aida.img
}
menuentry "Bootable floppy: dban" {
   insmod ext2
   set root=(hd2,1)
   search --no-floppy --fs-uuid --set a3a25440-b94a-4210-88c6-6b8ab6909e61
        linux16 /memdisk bigraw
        initrd16 /images/dban.img
}
menuentry "Bootable floppy: FD0-konboot-v1.1-2in1" {
   insmod ext2
   set root=(hd2,1)
   search --no-floppy --fs-uuid --set a3a25440-b94a-4210-88c6-6b8ab6909e61
        linux16 /memdisk bigraw
        initrd16 /images/FD0-konboot-v1.1-2in1.img
}
menuentry "Bootable floppy: freedos" {
   insmod ext2
   set root=(hd2,1)
   search --no-floppy --fs-uuid --set a3a25440-b94a-4210-88c6-6b8ab6909e61
        linux16 /memdisk bigraw
        initrd16 /images/freedos.img
}
menuentry "Bootable floppy: gag" {
   insmod ext2
   set root=(hd2,1)
   search --no-floppy --fs-uuid --set a3a25440-b94a-4210-88c6-6b8ab6909e61
        linux16 /memdisk bigraw
        initrd16 /images/gag.img
}
menuentry "Bootable floppy: memtestp" {
   insmod ext2
   set root=(hd2,1)
   search --no-floppy --fs-uuid --set a3a25440-b94a-4210-88c6-6b8ab6909e61
        linux16 /memdisk bigraw
        initrd16 /images/memtestp.img
}
menuentry "Bootable floppy: mhdd" {
   insmod ext2
   set root=(hd2,1)
   search --no-floppy --fs-uuid --set a3a25440-b94a-4210-88c6-6b8ab6909e61
        linux16 /memdisk bigraw
        initrd16 /images/mhdd.img
}
menuentry "Bootable floppy: ranish" {
   insmod ext2
   set root=(hd2,1)
   search --no-floppy --fs-uuid --set a3a25440-b94a-4210-88c6-6b8ab6909e61
        linux16 /memdisk bigraw
        initrd16 /images/ranish.img
}
### END /etc/grub.d/50_images ###

Пример: создание пункта загрузки "Acronis TI Ent NEW"

/etc/grub.d/40_custom

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry "Acronis TI Ent NEW" {
	set root=(hd0,6)
	linux /acronis/aties.krn vga=788 root=/dev/ram0 ramdisk_size=65535 init=acronis vga vesa mbrcrcs on quiet acpi=off noapic
	initrd /acronis/aties.fs
}

http://greenflash.su/load/8-1-0-14

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