GRUB Command Line

  Boot

 

Een korte beschrijving om de weg te vinden binnen de grub command line en hoe je deze kan gebruiken om problemen met booten op te lossen/ een voordeel van grub tegenover bv lilo is dat je met grub toegang kan krijgen tot het bestand systeem, hierdoor kan je het 1 en andere bekijken. en eventueel nieuwe optie aan grub mee geven zodat je toch kan booten. Voor meer informatie over grub lees Grub From the Ground Up by Steve Litt houd er rekening mee dat als je een systeem hebt waar lvm op geconfigureerd hebt je een stuk minder mogelijkheden hebt. in dit Document gaan we voor het gemak uit van een systeem zonder lvm. er worden wel verwijzingen gedaan voor als je wel lvm hebt.

Systeem zonder LVM

Als eerste maar eens opzoek naar de partitions die waarschijnlijk linux geïnstalleerd :

    grub> find /sbin/init
    (hd0,0)
    (hd0,10)

2 partities zijn er gevonden waar linux op kan staan. nu moeten we opzoek naar kernel op 1 van deze partities:

   grub> find (hd0,10)/vml
   grub> find (hd0,10)/boot/vml

met het type druk op de TAB key na ‘vml’ net als in BASH heeft grub ook autocompletion. ik heb voor hd0,0 gekozen omdat ik bijna zeker van ben dat dit mijn partitie is.

Verder gaan we ook op zoek naar bij behorende initrd.img:

   grub> find (hd0,10)/boot/init

Ook hier maken we weer gebruik van de TAB toets voor autocompletion.

met het cat commando kunnen we de /etc/fstab en /boot/grub/device.map, uit deze gegevens kunnen we het root filesysteem halen de drive mapping.

 grub> cat (hd0,10)/etc/fstab
 grub> cat (hd0,10)/boot/grub/device.map

Nu kunnen we booten met de verzamelde informatie:

 grub> root (hd0,0)
 grub> kernel /boot/vmlinuz-2.6.18.el5  root=/dev/hda11
 grub> initrd /boot/initrd.img-2.6.18.el5.img
 grub> boot

de initrd optie is niet nodig, maar als je hem tegenkomt in /boot dan moet je hem opgeven anders gaat het niet werken.

Systemen met LVM

Als je een systeem met met lvm dan ga je ongeveer het zelfde te werk. alleen /sbin/init zal je nooit vinden omdat die hoogst waarschijnlijk binnen de lvm ligt. deze kan niet gelezen worden door grub.

/boot filesysteem ligt daar in tegen niet in lvm. we gaan dus op zoek naar grub.conf. als je een werkend systeem hebt staat de grub.conf waarschijnlijk in /boot/grub/grub.conf omdat grub geen weet heeft van /boot type laat je /boot bij het find commando weg.

    grub> find /sbin/init
    (hd0,0)