Содержание
GRUB2 vs GRUB4DOS
- Если установлен «большой линукс с grub2» и 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
Установка.
grub-install --boot-directory=/mnt/sdbX/boot /dev/sdX , где sdb - вашe устройство с системой
- При получении ошибки «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
Основной конфиг.
/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 }