Dies ist eine alte Version des Dokuments!


Startprobleme mit Grub2 beheben

Kürzlich stand ein Freund spät Abends in meiner Tür und bat mich dringend sein Laptop anzuschauen, denn es blieb unmittelbar nach dem Booten mit der Meldung »GRUB loading…« einfach stehen. Er erklärte, dass sein System sowohl ein Windows XP, wie auch ein Linux unbekannter Distribution enthält. Installiert hat es ein Bekannter, welcher zZ aber auf Urlaub ist. Das waren nicht viel Informationen und mehr waren vom Besitzer auch nicht zu bekommen.

Es stellte sich nun die Frage, wo Grub installiert ist, welche Version und wie das Windows XP gestartet wird, bevor man Hand anlegen konnte. Im Gegensatz zum Windows Boot Loader, welcher sich immer in den »Master Boot Record« (MBR) installiert, kann Grub auch in den Startsektor der Linux Bootpartition installiert werden. Bei einem konventionellem Setup wird Grub jedoch im »MBR« installiert sein, da der Windows Boot Loader nicht in der Lage ist ein zweites (nicht Windows) Betriebssystem zu starten. Es bestünde aber auch die Möglichkeit einen Boot Manager zu installieren, welcher die Auswahl des zu startenden Betriebssystems zur Verfügung stellt.

Im vorliegendem Beispielfall habe ich das System mit einer Live CD von »Knoppix« gebootet um von dort aus weitere Nachforschungen über das Setup des Patienten zu erhalten. Um sich einen ersten Überblick über das System zu verschaffen, kann man sich die vorhandenen Partitionen durch den Aufruf von »fdisk -l« anzeigen lassen:

knoppix@Microknoppix:~$ fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x904e904e

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        2611    20972826    7  HPFS/NTFS
/dev/sda2            2612        5222    20968449    5  Extended
/dev/sda5   *        2612        2654      340992   83  Linux
/dev/sda6            2654        3624     7790592   83  Linux
/dev/sda7            3624        3989     2928640   83  Linux
/dev/sda8            3989        4142     1232896   82  Linux swap / Solaris
/dev/sda9            4143        4191      389120   83  Linux
/dev/sda10           4191        5222     8281088   83  Linux

Was man sieht, sind eine Menge Partitionen mit relativ wenig Informationen dazu. »/dev/sda1« ist klar, dass ist die Partition auf der XP installiert sein muss, schon alleine aus dem Grund, weil nur eine NTFS Partition vorhanden ist; »/dev/sda2« ist die erweiterte bzw. logische Partition, welche für unser Problem nur am Rande, bis gar nicht interessant ist; »/dev/sda8« ist die Linux Swap Partition (ausgelagerter virtueller Arbeitsspeicher) und der Rest hat vermutlich mit unserem Linux zu tun, von dem wir wissen, dass es auch noch installiert ist. Hier stellt sich allerdings das Problem, dass das Linux System offensichtlich in mehrere Partitionen aufgeteilt ist und wir hier an dieser Stelle nicht erkennen können, was genau auf welcher Partition liegt. Ein starkes Indiz ist das gesetzte Bootflag auf der Partition »/dev/sda5«, falls diese Linux Installation über keine separate Boot-Partition verfügt (»/boot« wäre dann ein eigener Mountpoint), stehen die Chancen gut, dass dies das Root-Verzeichnis der Linux Installation sein könnte. Um uns zu versichern, können wir diese Partition mal in das Knoppix System einbinden:

knoppix@Microknoppix:~$ sudo mount /dev/sda5 /media

Wir werfen mal einen Blick hinein:

knoppix@Microknoppix:~$ ls -l /media/
insgesamt 49
drwxr-xr-x  2 root root  5120 28. Sep 11:43 bin
drwxr-xr-x  3 root root  1024 28. Sep 11:43 boot
drwxr-xr-x  5 root root  1024 28. Sep 11:37 dev
drwxr-xr-x 69 root root  5120 28. Sep 09:52 etc
drwxr-xr-x  2 root root  1024 28. Sep 11:36 home
lrwxrwxrwx  1 root root    28 28. Sep 11:37 initrd.img -> boot/initrd.img-2.6.32-5-686
drwxr-xr-x 12 root root  8192 28. Sep 11:43 lib
drwx------  2 root root 12288 28. Sep 11:36 lost+found
drwxr-xr-x  4 root root  1024 28. Sep 11:36 media
drwxr-xr-x  2 root root  1024 19. Jun 14:45 mnt
drwxr-xr-x  2 root root  1024 28. Sep 11:36 opt
drwxr-xr-x  2 root root  1024 19. Jun 14:45 proc
drwx------  3 root root  1024 28. Sep 09:44 root
drwxr-xr-x  2 root root  5120 28. Sep 11:43 sbin
drwxr-xr-x  2 root root  1024 21. Jul 2010  selinux
drwxr-xr-x  2 root root  1024 28. Sep 11:36 srv
drwxr-xr-x  2 root root  1024  1. Jan 2011  sys
drwxr-xr-x  2 root root  1024 28. Sep 11:36 tmp
drwxr-xr-x  2 root root  1024 28. Sep 11:36 usr
drwxr-xr-x  4 root root  1024 28. Sep 11:36 var
lrwxrwxrwx  1 root root    25 28. Sep 11:37 vmlinuz -> boot/vmlinuz-2.6.32-5-686

Schaut ganz gut aus, jetzt können wir uns die weiteren Partitionen ein weniger genauer anschauen, dazu schauen wir uns die Datei »/etc/fstab«1) an:

$ cat /media/etc/fstab 
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda5 during installation
UUID=fe76848d-2dce-4675-af6a-03b44d1cd92e /               ext3    errors=remount-ro 0       1
# /home was on /dev/sda10 during installation
UUID=44425535-f3e8-47f1-be76-a2e2d5e80441 /home           ext3    defaults        0       2
# /tmp was on /dev/sda9 during installation
UUID=086a9cb5-8d95-4203-a8a7-baeebe6aa6d1 /tmp            ext3    defaults        0       2
# /usr was on /dev/sda6 during installation
UUID=542e405d-e796-4bee-90d8-f7c5f20c4167 /usr            ext3    defaults        0       2
# /var was on /dev/sda7 during installation
UUID=0df8c8c6-ae1f-4ccd-a46a-c8cccac52046 /var            ext3    defaults        0       2
# swap was on /dev/sda8 during installation
UUID=1e455feb-8982-4b3d-b807-679b3f09eb15 none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

Hier sehen wir die Datenträger bzw. Partitionen, welche beim Starten des Systems automatisch eingehängt werden sollen, sowohl mit ihren Gerätenamen (»/dev/sdx«) wie auch den dazugehörigen Mountpoint. Anhand dieser Liste können wir nun die restlichen Partitionen in das Knoppix System einhängen:

knoppix@Microknoppix:~$ sudo mount /dev/sda10 /media/home
knoppix@Microknoppix:~$ sudo mount /dev/sda9 /media/tmp 
knoppix@Microknoppix:~$ sudo mount /dev/sda6 /media/usr
knoppix@Microknoppix:~$ sudo mount /dev/sda7 /media/var

Im Prinzip ist jetzt das komplette Dateisystem des installierten Linux Systems in das laufende Knoppix System eingebunden und man könnte auf alle Daten zugreifen. Eine Ausnahme bilden hier die beiden Partitionen bzw. Dateisysteme »proc« und »swap«. »proc« ist nur ein virtuelles Dateisystem, damit Geräte bzw. Hardwareressourcen als Verzeichnisse oder Dateien angesprochen werden können, jedoch fängt der Kernel die Aufrufe auf das »proc«-Dateisystem ab2) und die »swap«-Partition ist, wie oben schon einmal erwähnt, die virtuelle Auslagerungsdatei des Arbeitsspeichers.

Damit wir uns jetzt sicher im eigentlich installierten (Basis-) System bewegen können und um zu verhindern, dass Befehle, welche wir zum Debuggen des Fehlers bzw. zum Neuinstallieren von Grub nicht versehentlich im Knoppix System vorgenommen werden, wechseln wir in das Basis-System über eine »chroot«-Umgebung3).

tux/fix_grub2.1317211565.txt.gz (35903 views) · Zuletzt geändert: 2011/09/28 14:06 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0