====== GRUB2 vs GRUB4DOS ======
* Если установлен "большой линукс с grub2" и [[setups/full-vs-frugal#frugal_-_%D1%83%D0%BF%D1%80%D0%BE%D1%89%D1%91%D0%BD%D0%BD%D0%B0%D1%8F_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0|frugal]] линуксы - удобнее grub2 (чтобы не править конфиги при обновлении ядра ). Чтобы не переписывать конфиги grub4dos - можно сделать переход grub2 -> grub4dos
menuentry "GRUB4DOS" {
search --no-floppy --file /boot/grub4dos/grub.exe --set=root
linux /boot/grub4dos/grub.exe
}
* GRUB2 имеет больший функционал (например удобнее загрузка из файла.iso, UEFI)
====== GRUB2 ======
* [[http://forum.ubuntu.ru/index.php?PHPSESSID=004c5d4c5f63f1a6d236b6a112f6b68e&topic=74165.0|мануал рус.]]
* [[https://help.ubuntu.com/community/Grub2|мануал англ.]]
* [[wpru>Grub]]
===== Установка. =====
[[https://wiki.archlinux.org/index.php/GRUB_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)|grub-install --boot-directory=/mnt/sdbX/boot /dev/sdX]] , где sdb - вашe устройство с системой
*При получении [[https://askubuntu.com/questions/254491/failed-to-get-canonical-path-of-cow|ошибки]] "Failed to get canonical path of /cow" или "Failed to get canonical path of aufs" (может возникнуть при работе с FRUGAL) - используйте chroot:
mkdir /mnt/chrootdir
mount /dev/sda1 /mnt/chrootdir
for dir in proc dev sys etc bin sbin var usr lib lib64 tmp; do
mkdir /mnt/chrootdir/$dir && mount --bind /$dir /mnt/chrootdir/$dir
done
chroot /mnt/chrootdir
grub-install /dev/sda # May not be required
update-grub2
*В модульных LF дистрибутивах с https://puppyrus.org :
-mkdir /mnt/chrootdir
-Примонтировать базу (001*.pfs) : mkdir -p /mnt/001 && mount 001*.pfs /mnt/001
-Примонтировать 070-full*.pfs (с grub2) : mkdir -p /mnt/070 && mount 070*.pfs /mnt/070
-Скопировать содержимое/mnt/001 и /mnt/070 в /mnt/chrootdir
-chroot.sh /mnt/chrootdir
-grub-install /dev/sda
-exit
-Скопировать /mnt/chrootdir/boot/grub в корень своего линукс
===== Основной конфиг. =====
/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
===== Примеры загрузки Windows через grub2 =====
menuentry "Windows Vista,7,8,10... " {
search --set=root --no-floppy --file /bootmgr
chainloader /bootmgr
}
menuentry "Windows EFI" {
search --set=root --no-floppy --file /EFI/Microsoft/Boot/bootmgfw.efi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "Windows XP " {
search --set=root --no-floppy --file /boot.ini
chainloader +1
}
===== Пример=====
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