====== 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