GRUB2
GRUB2 je novější verze zavaděče GRUB.
Info
[editovat]- Ubuntu Česko: GRUB2
Konfigurace
[editovat]- /etc/default/grub
- /etc/grub.d/*
Po změně konfiguračních souborů nutno spustit update-grub
GRUB customizer
[editovat]sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt-get update sudo apt-get install grub-customizer
Problém
[editovat]Konfigurace grubu nemohla být uložena Chyba při ukládání konfigurace grubu! Podívejte se prosím na výstup příkazové řádky níže. Pokud si myslíte, že je to chyba Grub Customizeru, prosím založte ji v https://launchpad.net/grub-customizer! Obecně by Grub Customizer měl předcházet chybám jako je tato. failed running 'grub-mkconfig -o "/boot/grub/grub.cfg"' output: /usr/sbin/grub-mkconfig: 36: /etc/default/grub: Syntax error: EOF in backquote substitution
Vylezu, spustím znova grub customizer a hned dostanu hlášku:
grub-mkconfig nemohlo být správně spuštěno. chybová zpráva: /usr/sbin/grub-mkconfig: 36: /etc/default/grub: Syntax error: EOF in backquote substitution
Koukám na /etc/default/grub
a pravděpodobně má problém s řádkem:
GRUB_CMDLINE_LINUX="persistent GRUB_BADRAM=\0x65420b2c,0xfffffffc\"
Tak ho zakomentuji, ale při dalším spuštění zase hlásí:
Konfigurace grubu nemohla být uložena Chyba při ukládání konfigurace grubu! Podívejte se prosím na výstup příkazové řádky níže. Pokud si myslíte, že je to chyba Grub Customizeru, prosím založte ji v https://launchpad.net/grub-customizer! Obecně by Grub Customizer měl předcházet chybám jako je tato. failed running 'grub-mkconfig -o "/boot/grub/grub.cfg"' output: Generating grub configuration file ... Found linux image: /boot/vmlinuz-4.13.0-41-generic Found initrd image: /boot/initrd.img-4.13.0-41-generic Found linux image: /boot/vmlinuz-4.13.0-39-generic Found initrd image: /boot/initrd.img-4.13.0-39-generic Found linux image: /boot/vmlinuz-4.13.0-38-generic Found initrd image: /boot/initrd.img-4.13.0-38-generic Found linux image: /boot/vmlinuz-4.13.0-37-generic Found initrd image: /boot/initrd.img-4.13.0-37-generic Found linux image: /boot/vmlinuz-4.13.0-36-generic Found initrd image: /boot/initrd.img-4.13.0-36-generic Found linux image: /boot/vmlinuz-4.10.0-42-generic Found initrd image: /boot/initrd.img-4.10.0-42-generic Found linux image: /boot/vmlinuz-4.10.0-40-generic Found initrd image: /boot/initrd.img-4.10.0-40-generic Found linux image: /boot/vmlinuz-4.10.0-37-generic Found initrd image: /boot/initrd.img-4.10.0-37-generic Found linux image: /boot/vmlinuz-4.10.0-35-generic Found initrd image: /boot/initrd.img-4.10.0-35-generic Found linux image: /boot/vmlinuz-4.10.0-33-generic Found initrd image: /boot/initrd.img-4.10.0-33-generic Found linux image: /boot/vmlinuz-4.10.0-32-generic Found initrd image: /boot/initrd.img-4.10.0-32-generic Found linux image: /boot/vmlinuz-4.8.0-58-generic Found initrd image: /boot/initrd.img-4.8.0-58-generic Found memtest86+ image: /boot/memtest86+.elf Found memtest86+ image: /boot/memtest86+.bin Found Ubuntu 16.04.2 LTS (16.04) on /dev/sda5 Found Windows Recovery Environment (loader) on /dev/sdb1 Found Ubuntu 14.04 LTS (14.04) on /dev/sdb2 chyba: out of memory. chyba: syntax error. chyba: Incorrect command. chyba: syntax error. Syntax error at line 1300 Syntax errors are detected in generated GRUB config file. Ensure that there are no errors in /etc/default/grub and /etc/grub.d/* files or please file a bug report with /boot/grub/grub.cfg.new file attached. done
Ta řádka 1300 je poslední řádka souboru /boot/grub/grub.cfg.new, obsahující:
### END /etc/grub.d/41_custom ###
Gůglím:
- https://gist.github.com/gerardorochin/8028591 – podobná chyba, ale řešení mimo
- https://unix.stackexchange.com/questions/209152/syntax-error-in-grub-cfg-on-update-grub-grub-2-memtest86 – dlouhé pěkné povídání, ale také to asi není můj případ
Ještě zkusím:
grub-script-check /boot/grub/grub.cfg.new
Hlásí ty samé chyby:
chyba: out of memory. chyba: syntax error. chyba: Incorrect command. chyba: syntax error. Syntax error at line 1300
Tak teď to zkusím zakomentovat, jestli to je doopravdy tou poslední sekcí. Jak se dalo očekávat, není. Prostě pokaždý hlásí, že syntaktická chyba je na poslední řádce.
Postupným umazáváním testovacího souboru se dostávám k problému:
menuentry "0x65420b2c,0xfffffffc (on /dev/sda5)' --class gnu-linux --class gnu --class os 'osprober-gnulinux-/boot/vmlinuz-4.4.0-83-generic-root=UUID=ff0aa4d7-0390-4669-b41f-5fa3dc05d0\ 12 ro recovery nomodeset persistent GRUB_BADRAM="0x65420b2c,0xfffffffc"-bd8bf736-c12a-4005-b0c3-60b2c0f4caf2' { insmod part_msdos insmod ext2 set root='hd0,msdos5' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos5 --hint-efi=hd0,msdos5 --hint-baremetal=ahci0,msdos5 bd8bf736-c12a-4005-b0c3-60b2c0f4caf2 else search --no-floppy --fs-uuid --set=root bd8bf736-c12a-4005-b0c3-60b2c0f4caf2 fi linux /boot/vmlinuz-4.4.0-83-generic root=UUID=ff0aa4d7-0390-4669-b41f-5fa3dc05d012 ro recovery nomodeset persistent GRUB_BADRAM="0x65420b2c,0xfffffffc" initrd /boot/initrd.img-4.4.0-83-generic }
Prostě název menuentry "0x65420b2c,0xfffffffc (on /dev/sda5)'
začíná dvojitou uvozovkou a končí jednoduchou.
Splashimage
[editovat]Vlastní obrázek při bootování:
- jakýkoli formátu .png, .tga, .jpg, .jpeg
- editujeme soubor /etc/default/grub tak, že tam na konec strčíme řádku ve tvaru
export GRUB_MENU_PICTURE="/cesta/k/memu/obrazku/muj_obrazek.png"
- pustíme
sudo update-grub