Wanneer GRUB 2 zich in zijn eigen speciale partitie bevindt, is het ‘besturingssysteemonafhankelijk’, dus we kunnen een of twee besturingssystemen toevoegen of verwijderen zonder het ongemak van het verliezen van het opstarten van de overige besturingssystemen.
Degenen onder ons die multi-booten met meer dan twee besturingssystemen op hun computer willen graag hun eigen gebruiksvriendelijke namen voor hun besturingssystemen kunnen instellen.
Het is prima om grub.cfg rechtstreeks te bewerken als GRUB 2 geen deel uitmaakt van een besturingssysteem, waardoor het gemakkelijker wordt om te doen wat we willen met GRUB en er plezier mee te hebben en meer GRUB-opdrachten en trucs te leren.
Kies een bestaande partitie of maak een nieuwe en formatteer deze met een bestandssysteem. Je hebt minimaal ongeveer 60 MiB ruimte op de partitie nodig voor grub 2-bestanden, maar iets meer ruimte dan dat kan raadzaam zijn.
Formatteer de partitie met een bestandssysteem en geef het bestandssysteem optioneel een FILE SYSTEM LABEL.
Monteer de partitie door op het pictogram in het menu ‘Plaatsen’ te klikken.
Voer een grub-install-opdracht uit die lijkt op de opdracht hieronder:
sudo grub-install --root-directory=/media/grub2 /dev/sda
Waar: ‘/media/grub2’ is het koppelpunt voor het bestandssysteem waarin ik GRUB-bestanden wil laten maken
Waar: Ik wil een nieuwe map /boot/grub maken en deze vullen met GRUB-bestanden.
Waar: ‘/dev/sda’ is de harde schijf waarop ik de stage1-code naar MBR wil schrijven
Dat commando maakt een nieuwe map /boot en /boot/grub/ aan als deze nog niet bestaat, en maakt of vernieuwt GRUB-bestanden in /boot/grub, allemaal behalve grub.cfg.
Als je geen grub.cfg maakt, zal er geen GRUB-menu zijn en zal je computer opstarten naar een GRUB-opdrachtregelinterface.
Als je een GRUB-menu wilt, moet je een grub.cfg-bestand maken en dit kopiëren naar /boot/grub.
U kunt uw eigen grub.cfg-bestand maken en het op elke gewenste manier aanpassen.
De juiste manier om dit te doen is door het grub-mkconfig commando te gebruiken en het bestandspad te wijzigen zodat het naar de speciale /boot/grub/’ verwijst.
Een andere manier zou zijn om je eigen grub.cfg te maken. Als je een voorbeeld nodig hebt om je op weg te helpen, kijk dan hier, grub.cfg – Grub Wiki.
Later kunt u ook andere bestanden maken en toevoegen, zoals achtergrondafbeeldingen.
Ik had in eerste instantie problemen om mijn ‘Dedicated GRUB 2’ een achtergrondafbeelding te laten weergeven.
Ik kreeg de foutmelding: geen videomodus geactiveerd’ nadat ik het commando background_image in de CLI-modus had geprobeerd.
Ik moest een map met lettertypen maken in mijn ‘Dedicated GRUB 2 Partition’ en de lettertypen van /usr/share/grub/unicode.pff en /usr/share/grub/ascii.pff ernaar kopiëren. Vervolgens moest ik het lettertypepad in mijn grub.cfg-headergebied corrigeren,
### BEGIN /etc/grub.d/00_header ###set default=0set timeout=5set root=(hd0,2)if font (hd0,2)/fonts/unicode.pff ; then set gfxmode=640x480 insmod gfxterm insmod vbe terminal gfxtermfi### END /etc/grub.d/00_header ###
Splashimage
Daarna kon ik mijn splashimage weergeven in mijn ‘Dedicated GRUB 2 Partition’.
Hierna is het noodzakelijk om grub op de partitie van uw Linux-besturingssysteem te installeren. Gebruik hiervoor deze methode (waarbij sda5 moet worden vervangen door de apparaatnaam van uw /boot-partitie:
sudo grub-install /dev/sda5
Waar: /dev/sda5 de schijf is waarop je GRUB wilt installeren (boot.img naar de eerste harde schijf MBR), gebruik anders ‘/dev/sdb’ voor de tweede harde schijf of ‘/dev/sdc’ voor de derde harde schijf .
Normaal gesproken zullen de meeste mensen GRUB op MBR op de eerste harde schijf willen installeren als Ubuntu op een zogenaamde ‘interne’ schijf in een computer is geïnstalleerd. Met een ‘interne’ schijf bedoel ik een schijf die min of meer ‘permanent’ met het moederbord is verbonden via IDE-lintkabels of SATA-kabels.
Als je computer meer dan één harde schijf heeft en je niet zeker weet op welke MBR van de harde schijf je GRUB2 wilt installeren, is het misschien het beste om GRUB op al je schijven te installeren, gewoon voor de zekerheid.
Als je Ubuntu hebt geïnstalleerd op een zogenaamde ‘verwisselbare’ schijf, zoals een ‘extern’ USB-station, of op een schijf die je van de computer wilt verwijderen, moet je GRUB waarschijnlijk installeren op de MBR van dezelfde schijf die je hebt. Ubuntu is alleen geïnstalleerd, dat wil zeggen uw externe USB-schijf.
Als je GRUB2 om de een of andere vreemde reden in de opstartsector van een partitie wilt installeren, kun je zoiets als /dev/sda1 of /dev/sda2 gebruiken voor het schrijven van GRUB’s boot.img naar de opstartsector van een partitie. De praktijk van het installeren van GRUB2 om opstartsectoren te verdelen wordt niet aangemoedigd. Het vermindert de betrouwbaarheid van GRUB en het kan gevaarlijk zijn voor andere besturingssystemen als gebruikers het grub-install commando onzorgvuldig of slecht geïnformeerd gebruiken en GRUB naar de verkeerde opstartsector schrijven.
U moet het besturingssysteem eerst opstarten voordat u de opdracht kunt gebruiken.
Als het besturingssysteem dat je probeert te repareren niet opstart, moet je ernaar chrooten vanaf een ander besturingssysteem, zoals een Live CD-besturingssysteem, voordat je grub-install kunt uitvoeren. In dat situ
Als het misschien gemakkelijker is om in plaats daarvan grub-setup te gebruiken, raadpleeg dan Hoe GRUB opnieuw te installeren vanaf een live-cd – met grub-setup.
Het grub-install commando voert grub-mkconfig (of update-grub) niet uit, dus de gebruiker moet nog steeds een van die commando’s uitvoeren als een nieuwe grub.cfg gewenst is. Zie grub -mkconfig – maak een nieuw grub.cfg bestand.
Voorbeelden van het grub.cfg-bestand in de speciale grub-partitie:
# # DO NOT EDIT THIS FILE # # It is automatically generated by 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 set have_grubenv=true 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 } function recordfail { set recordfail=1 if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi } function load_video { insmod vbe insmod vga } insmod part_msdos insmod ext2 set root='(hd0,msdos5)' search --no-floppy --fs-uuid --set e25d5b4e-d3df-47ec-be92-2f79d417d9f2 if loadfont /usr/share/grub/unicode.pf2 ; then set gfxmode=640x480 load_video insmod gfxterm fi terminal_output gfxterm insmod part_msdos insmod ext2 set root='(hd0,msdos5)' search --no-floppy --fs-uuid --set e25d5b4e-d3df-47ec-be92-2f79d417d9f2 set locale_dir=($root)/boot/grub/locale set lang=nl insmod gettext if [ "${recordfail}" = 1 ]; then set timeout=-1 else set timeout=10 fi ### END /etc/grub.d/00_header ### ### BEGIN /etc/grub.d/05_debian_theme ### insmod ext2 set root=(hd0,7) search --no-floppy --fs-uuid --set 8385-8482 insmod tga if background_image /boot/grub/background/earthrise-tux-windows.tga ; then set color_normal=white/black set color_highlight=white/light-gray else set menu_color_normal=white/black set menu_color_highlight=white/light-gray fi ### END /etc/grub.d/05_debian_theme ### ### BEGIN /etc/grub.d/10_linux ### menuentry "Linux Mint configfile" { configfile (hd0,9)/boot/grub/grub.cfg } menuentry "Linux Ubuntu configfile" { configfile (hd0,5)/boot/grub/grub.cfg } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_linux_xen ### ### END /etc/grub.d/20_linux_xen ### ### BEGIN /etc/grub.d/30_os-prober ### ### END /etc/grub.d/30_os-prober ### ### BEGIN /etc/grub.d/40_custom ### # 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 "Microsoft Windows XP Professional NL(on /dev/sda1)" { insmod part_msdos insmod ntfs set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set 067a6eea242a2681 drivemap -s (hd0) ${root} chainloader +1 } ### END /etc/grub.d/40_custom ### ### BEGIN /etc/grub.d/20_memtest86+ ### menuentry "Memory test (memtest86+)" { insmod part_msdos insmod ext2 set root='(hd0,msdos5)' search --no-floppy --fs-uuid --set e25d5b4e-d3df-47ec-be92-2f79d417d9f2 linux16 /boot/memtest86+.bin } menuentry "Memory test (memtest86+, serial console 115200)" { insmod part_msdos insmod ext2 set root='(hd0,msdos5)' search --no-floppy --fs-uuid --set e25d5b4e-d3df-47ec-be92-2f79d417d9f2 linux16 /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ### Example of the grub.cfg file on the OS partition: # # DO NOT EDIT THIS FILE # # It is automatically generated by 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 set have_grubenv=true 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 } function recordfail { set recordfail=1 if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi } function load_video { insmod vbe insmod vga insmod video_bochs insmod video_cirrus } insmod part_msdos insmod ext2 set root='(/dev/sda,msdos5)' search --no-floppy --fs-uuid --set=root e25d5b4e-d3df-47ec-be92-2f79d417d9f2 if loadfont /usr/share/grub/unicode.pf2 ; then set gfxmode=auto load_video insmod gfxterm fi terminal_output gfxterm insmod part_msdos insmod ext2 set root='(/dev/sda,msdos5)' search --no-floppy --fs-uuid --set=root e25d5b4e-d3df-47ec-be92-2f79d417d9f2 set locale_dir=($root)/boot/grub/locale set lang=nl_NL insmod gettext if [ "${recordfail}" = 1 ]; then set timeout=-1 else set timeout=10 fi ### END /etc/grub.d/00_header ### ### BEGIN /etc/grub.d/05_debian_theme ### set menu_color_normal=white/black set menu_color_highlight=black/light-gray if background_color 44,0,30; then clear fi ### END /etc/grub.d/05_debian_theme ### ### BEGIN /etc/grub.d/10_linux ### if [ ${recordfail} != 1 ]; then if [ -e ${prefix}/gfxblacklist.txt ]; then if hwmatch ${prefix}/gfxblacklist.txt 3; then if [ ${match} = 0 ]; then set linux_gfx_mode=keep else set linux_gfx_mode=text fi else set linux_gfx_mode=text fi else set linux_gfx_mode=keep fi else set linux_gfx_mode=text fi export linux_gfx_mode if [ "$linux_gfx_mode" != "text" ]; then load_video; fi menuentry 'Ubuntu, met Linux 2.6.38-10-generic' --class ubuntu --class gnu-linux --class gnu --class os { recordfail set gfxpayload=$linux_gfx_mode insmod part_msdos insmod ext2 set root='(/dev/sda,msdos5)' search --no-floppy --fs-uuid --set=root e25d5b4e-d3df-47ec-be92-2f79d417d9f2 linux /boot/vmlinuz-2.6.38-10-generic root=UUID=e25d5b4e-d3df-47ec-be92-2f79d417d9f2 ro quiet splash vt.handoff=7 initrd /boot/initrd.img-2.6.38-10-generic } menuentry 'Ubuntu, met Linux 2.6.38-10-generic (herstelmodus)' --class ubuntu --class gnu-linux --class gnu --class os { recordfail set gfxpayload=$linux_gfx_mode insmod part_msdos insmod ext2 set root='(/dev/sda,msdos5)' search --no-floppy --fs-uuid --set=root e25d5b4e-d3df-47ec-be92-2f79d417d9f2 echo 'Loading Linux 2.6.38-10-generic ...' linux /boot/vmlinuz-2.6.38-10-generic root=UUID=e25d5b4e-d3df-47ec-be92-2f79d417d9f2 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.38-10-generic } submenu "Previous Linux versions" { menuentry 'Ubuntu, met Linux 2.6.35-30-generic' --class ubuntu --class gnu-linux --class gnu --class os { recordfail set gfxpayload=$linux_gfx_mode insmod part_msdos insmod ext2 set root='(/dev/sda,msdos5)' search --no-floppy --fs-uuid --set=root e25d5b4e-d3df-47ec-be92-2f79d417d9f2 linux /boot/vmlinuz-2.6.35-30-generic root=UUID=e25d5b4e-d3df-47ec-be92-2f79d417d9f2 ro quiet splash vt.handoff=7 initrd /boot/initrd.img-2.6.35-30-generic } menuentry 'Ubuntu, met Linux 2.6.35-30-generic (herstelmodus)' --class ubuntu --class gnu-linux --class gnu --class os { recordfail set gfxpayload=$linux_gfx_mode insmod part_msdos insmod ext2 set root='(/dev/sda,msdos5)' search --no-floppy --fs-uuid --set=root e25d5b4e-d3df-47ec-be92-2f79d417d9f2 echo 'Loading Linux 2.6.35-30-generic ...' linux /boot/vmlinuz-2.6.35-30-generic root=UUID=e25d5b4e-d3df-47ec-be92-2f79d417d9f2 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.35-30-generic } } ### END /etc/grub.d/10_linux ### ### BEGIN /etc/grub.d/20_memtest86+ ### menuentry "Memory test (memtest86+)" { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos5)' search --no-floppy --fs-uuid --set=root e25d5b4e-d3df-47ec-be92-2f79d417d9f2 linux16 /boot/memtest86+.bin } menuentry "Memory test (memtest86+, serial console 115200)" { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos5)' search --no-floppy --fs-uuid --set=root e25d5b4e-d3df-47ec-be92-2f79d417d9f2 linux16 /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ###
Geen opmerkingen:
Een reactie posten
Opmerking: Alleen leden van deze blog kunnen een reactie posten.