[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: grub2 in falsche Partition/hd installiert, wie manuell starten?



Am Dienstag, den 31.08.2010, 16:24 +0200 schrieb A. Bischof:
> Am 31.08.2010 16:09, schrieb A. Bischof:
> > Am 31.08.2010 13:49, schrieb Sascha Reißner:
> >> Am Dienstag, den 31.08.2010, 09:45 +0200 schrieb Andre Bischof:
> >>> Am 31.08.2010 09:02, schrieb Gerhard Wolfstieg:
> > ...
> >> Ich vermute, daß das device-mapping von grub nicht stimmt.
> >> Versuch zuerst mal ein:
> >> # grub-mkdevicemap
> >>
> >> und danach ein:
> >> # update-grub
> >
> > Du meinst update-grub2, oder?

Das ist egal. Das Script update-grub2 startet von sich aus update-grub.

> > Braucht es danach nicht noch ein grub-install /dev/sda bzw. hda?
> 
> grub-mkdevicemap und update-grub2 haben es leider nicht gebracht, auch 
> die Einträge im Boot-Menü bleiben die gleichen.

Seltsam, den Syntomen nach hätte ich wetten können, daß die device.map
falsche Informationen enthält.
Zum vergleich, ich habe nur eine Platte verbaut und da sieht es so aus:

Partitionen und Einhängpunkte:
/dev/sda1 --> /boot
/dev/sda2 --> /
/dev/sda3 --> [swap]
/dev/sda4 --> [extend]
    /dev/sda5 --> /home
    /dev/sda6 --> /home/user/Daten

-----
alpha:~# cat /boot/grub/device.map 
(hd0)	/dev/disk/by-id/ata-SAMSUNG_HD642JJ_S1AFJ1MQ801346

alpha:~# ls -la /dev/disk/by-uuid/
insgesamt 0
drwxr-xr-x 2 root root 140  1. Sep 01:33 .
drwxr-xr-x 5 root root 100  1. Sep 01:33 ..
lrwxrwxrwx 1 root root  10  1. Sep 01:33 10862b90-bbf1-4ae3-8a9b-941e72606e02 -> ../../sda3
lrwxrwxrwx 1 root root  10  1. Sep 01:33 946b0029-917f-45a3-a71b-3e86913aaa3b -> ../../sda1
lrwxrwxrwx 1 root root  10  1. Sep 01:33 ab570e5d-fa0d-4826-8704-0167ff37145f -> ../../sda5
lrwxrwxrwx 1 root root  10  1. Sep 01:33 bdf9b0c9-751e-4d2a-8d4f-6f62e5bba30e -> ../../sda6
lrwxrwxrwx 1 root root  10  1. Sep 01:33 f245e82a-59b9-4254-ae6f-623fc973b853 -> ../../sda2
-----

Ich finde in der /boot/grub/grub.cfg folgende Zeilen:
-----
insmod part_msdos
insmod ext2
set root='(hd0,msdos2)'
search --no-floppy --fs-uuid --set f245e82a-59b9-4254-ae6f-623fc973b853
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=1400x1050
  load_video
  insmod gfxterm
fi
-----

Also hd0 ist die erste Platte und msdos2 steht für die zweite Partition
in der MSDOS-Partitionstabelle (auch die UUID gehört zu dieser
Partition).
Hier spricht grub die Partition an, die später als / gemountet wird.
Und zwar deshalb, weil er mit loadfont aus dem Verzeichnis /usr/...
etwas läd.

Später findet sich:
-----
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set 946b0029-917f-45a3-a71b-3e86913aaa3b
set locale_dir=($root)/grub/locale
set lang=de
insmod gettext
set timeout=3
-----

Hier setzt grub locale_dir auf ein Verzeichnis unterhalb von /boot,
weshalb hier die erste Partition verwendet wird. Wieder passt die UUID
zur Partition.

Das selbe kommt nochmal für das Backgroundimage auf der ersten
Partition.

Dann kommt der erste Menüeintrag für Linux:
-----
menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-686' --class debian --class gnu-linux --class gnu --class os {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set 946b0029-917f-45a3-a71b-3e86913aaa3b
        echo    'Loading Linux 2.6.32-5-686 ...'
        linux   /vmlinuz-2.6.32-5-686 root=UUID=f245e82a-59b9-4254-ae6f-623fc973b853 ro  
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-2.6.32-5-686
}
-----

Hier wieder die erste Partition, da /boot und somit die Kernel hier
liegen.
Beim Befehl linux und initrd werden beide Dateien ohne Pfad angegeben,
da sich dieses Filesystem ja bereits in boot befindet.
Dem Kernel selbst wird aber als root die UUID der zweiten Partition
mitgegeben, damit er die richtige Partition als root einhängt.

Nachdem du nur eine Partition hast, auf der / samt /boot liegt, sollten
bei dir alle 'set root=' auf die selbe Partition zeigen.
Wenn es nicht klappt, gib uns mal die Infos von:

ls -l /dev/disk/by-uuid/
grep ' / ' /etc/fstab

Daraus sollten sich die benötigten Infos ablesen lassen.

mfG Sascha


Reply to: