Grub2: Unterschied zwischen den Versionen
(→chroot) |
|||
Zeile 233: | Zeile 233: | ||
Beim nächsten Start des Rechners kann man sich mit seinem neu gesetzten Passwort als root anmelden | Beim nächsten Start des Rechners kann man sich mit seinem neu gesetzten Passwort als root anmelden | ||
==chroot== | ==chroot== | ||
+ | Die chroot-Methode verwendet man immer dann, wenn man nur oder auch die grub.cfg neu erstellen lassen will. Außerdem sollte sie immer bei komplizierteren Systemkonstellationen wie LUKS- oder LV-Partitionen sowie Raid-Verbunden und beim Wiederherstellen des Bootloaders eines Dualboot-Systems angewendet werden. | ||
+ | |||
===Kein RAID/normale Partitionen=== | ===Kein RAID/normale Partitionen=== | ||
Zeile 286: | Zeile 288: | ||
6. chroot-Umgebung verlassen und neustarten | 6. chroot-Umgebung verlassen und neustarten | ||
− | ===Root-Directory== | + | ==Root-Directory== |
+ | Die Root-Directory-Methode kann man immer dann wählen, wenn man sicher ist, dass die Datei grub.cfg richtig ist und GRUB 2 nur deswegen nicht richtig startet, weil er nicht oder nicht mehr bzw. nicht mehr richtig im Bootsektor oder dem MBR der betreffenden Festplatte installiert ist. Diese Situation hat man z.B. stets, '''nachdem Windows nach Ubuntu auf dem System installiert wurde'''. Diese Methode erfordert zwar weniger Einzelschritte, ist dabei aber auch weniger flexibel und erlaubt nicht so viele Reparaturoptionen wie die chroot-Methode. | ||
+ | |||
+ | Bei dieser Variante wird GRUB 2 einfach in einem Terminal[2] von der Desktop-CD mittels des GRUB-2-Skripts grub-install erneut auf der Festplatte installiert: | ||
+ | |||
+ | 1. Desktop-Image laden | ||
+ | 2. Root-Partition mounten | ||
+ | sudo mount /dev/sdXY /mnt | ||
+ | 3. Optional | ||
+ | Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden: | ||
+ | sudo mount /dev/sdXY /mnt/boot | ||
+ | Nutzt man auf seinem Rechner das "(U)EFI"-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit: | ||
+ | sudo mount /dev/sdXY /mnt/boot/efi | ||
+ | |||
+ | 4. Devices von USB/CD einbinden Live-System | ||
+ | sudo mount --bind /dev/ /mnt/dev | ||
+ | 5. grub installieren | ||
+ | GRUB 1.98 und vorher (bis Maverick Meerkat): | ||
+ | sudo grub-install --root-directory=/mnt /dev/sdX | ||
+ | GRUB 1.99 und später: | ||
+ | sudo grub-install --boot-directory=/mnt/boot /dev/sdX | ||
+ | sudo update-grub | ||
=Troubleshoot= | =Troubleshoot= |
Version vom 13. Februar 2014, 12:28 Uhr
Installation
Grub wird in den MBR der angeben Festplatte geschrieben: (BSP)
grub-install /dev/sda [Achtung, Bootreihenfolge im BIOS/UEFI beachten!]
oder auf einer Partition: (BSP)
grub-install --force /dev/sda3
Konfigurationsdateien
/boot/grub/grub.cfg
Diese Datei ist die generelle Konfigurationsdate von grub. Diese wird nach einem "update-grub" immer neuerstellt!
vi /boot/grub/grub.cfg
Um die Reihenfolge zu ändern, müssen dor tide "Menuentry's" geändert werden: Grub wird es von oben nach unten anzeigen. Beispiel: Im Moment ist der Booteintrag mit der "Wiederherstellungskonsole" an zweiter Stelle. Deshalb wird dieser Eintrag ausgeschnitten und über den ersten eingefügt.
menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' { recordfail gfxmode $linux_gfx_mode insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3daa1a20-ab97-4eb8-84e3-137a1743bafd else search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd fi echo 'Linux 3.5.0-36-generic wird geladen …' linux /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro echo 'Initiale Ramdisk wird geladen …' initrd /boot/initrd.img-3.5.0-36-generic } menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' { recordfail insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3daa1a20-ab97-4eb8-84e3-137a1743bafd else search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd fi echo 'Linux 3.5.0-36-generic wird geladen …' linux /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset echo 'Initiale Ramdisk wird geladen …' initrd /boot/initrd.img-3.5.0-36-generic }
nun ändern in:
menuentry 'Ubuntu, mit Linux 3.5.0-36-generic (Wiederherstellungsmodus)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-recovery-3daa1a20-ab97-4eb8-84e3-137a1743bafd' { recordfail insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3daa1a20-ab97-4eb8-84e3-137a1743bafd else search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd fi echo 'Linux 3.5.0-36-generic wird geladen …' linux /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro recovery nomodeset echo 'Initiale Ramdisk wird geladen …' initrd /boot/initrd.img-3.5.0-36-generic } menuentry 'Ubuntu, mit Linux 3.5.0-36-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.5.0-36-generic-advanced-3daa1a20-ab97-4eb8-84e3-137a1743bafd' { recordfail gfxmode $linux_gfx_mode insmod gzio insmod part_msdos insmod ext2 set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3daa1a20-ab97-4eb8-84e3-137a1743bafd else search --no-floppy --fs-uuid --set=root 3daa1a20-ab97-4eb8-84e3-137a1743bafd fi echo 'Linux 3.5.0-36-generic wird geladen …' linux /boot/vmlinuz-3.5.0-36-generic root=UUID=3daa1a20-ab97-4eb8-84e3-137a1743bafd ro echo 'Initiale Ramdisk wird geladen …' initrd /boot/initrd.img-3.5.0-36-generic }
Nach dieser Änderung ist kein update-grub erforderlich!
/etc/default/grub
Diese Datei ist von einem "update-grub" nicht betroffen. Diese bleibt bestehen...
vi /etc/default/grub
Hier eine Beispielkonfigurationsdatei, Die Kommentare über den Parametern beschreiben die Bedeutung.
# Welcher Menüeintrag in /boot/grub/grub.cfg soll standardmäßig gebootet werden? [0 bedeutet erster Eintrag] GRUB_DEFAULT=0 # Ein Zahlenwert > 0 gibt die Zeit in Sekunden an, bis der Bootvorgang ohne Anzeige des Auswahlmenü ausgeführt wird. Mit der Umschalt-Taste kann das Auswahlmenü innerhalb der eingestellten Zeitspanne sichtbar gemacht werden. #GRUB_HIDDEN_TIMEOUT=0 # Wenn dieser Wert auf ´false´ gesetzt, so wird nur der unter GRUB_HIDDEN_TIMEOUT eingestellte Wert auf dem Monitor als Countdown angezeigt. Mit der ⇧ -Taste kann das Auswahlmenü innerhalb der Zeitspanne sichtbar gemacht werden. GRUB_HIDDEN_TIMEOUT_QUIET=true # Ein Zahlenwert gibt die Zeit in Sekunden an, wie lange das Auswahlmenü angezeigt wird, bevor der Standard-Eintrag geladen wird. GRUB_TIMEOUT=2 # Generiert Hinweise zur aktuellen Distribution. Bei einer Installationen im BIOS-Modus sollte man hier keine Korrekturen vornehmen. # Bei einer Installationen im EFI-Modus wird hier die aktuelle Distribution ausgelesen. Man kann hier einen selektiven Eintrag für das EFI-Menü erstellen. GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` #Die Variablen sind für die Übergabe von Kernel-Bootoptionen reserviert und werden bei den Images aus dem Verzeichnis /boot angewendet: GRUB_CMDLINE_LINUX_DEFAULT="" GRUB_CMDLINE_LINUX="" # Durch Unkommentieren wird der grafische Modus komplett abgeschaltet #GRUB_TERMINAL=console # Standardauflösung des Grub-Menüs #GRUB_GFXMODE=640x480 # Normalerweise übergibt GRUB 2 die Root-Partition mittels UUID an den zu startenden Linux-Kernel. Durch Unkommentieren kann man GRUB 2 dazu veranlassen, dies per Device-Nummerierung (/dev/sdXX) zu machen. #GRUB_DISABLE_LINUX_UUID=true # Nach Unkommentieren und setzen auf true werden alle Recovery-Kernel-Einträge im Auswahlmenü deaktiviert. #GRUB_DISABLE_RECOVERY="true" # Unkommentieren für einen Signalton beim Starten #GRUB_INIT_TUNE="480 440 1"
- Hier zum nachlesen: http://wiki.ubuntuusers.de/GRUB_2/Konfiguration
/etc/grub.d/
Reparatur
GRUB 2 erneut in den MBR der Festplatte installieren
sudo grub-setup /dev/sdX
GRUB 2 vollständig neu installieren
sudo grub-install /dev/sdX
GRUB 2 Pakete reinstallieren
sudo apt-get update
BIOS-Installation
sudo apt-get --reinstall install grub-common grub-pc os-prober
EFI-Installation
sudo apt-get --reinstall install grub-common grub-efi-amd64 os-prober
Konfigurationsdatei neu erstellen/aktualisieren
sudo update-grub
Eine zusätzliche Konfigurationsdatei erstellen
Die aktuelle Konfiguration für das Auswahl-Menü ermitteln und in eine frei definierbare Datei speichern - die Datei grub.cfg bleibt dabei unverändert (mehr zu grub-mkconfig):
sudo grub-mkconfig --output=/boot/grub/meine.cfg
schreibt die aktuelle Konfiguration in die Datei meine.cfg im Verzeichnis /boot/grub, die Datei kann dabei an die eigenen Bedürfnisse angepasst werden.
Shellbefehle
How to's
Password-Hack
Während der Rechner hochfährt auf folgende Ausgabe achten:
und wie angegeben ESC drücken.
Im Grub Menü angekommen nun mit den Pfeiltasten das Betriebssystem auswählen in das man sich hacken möchte:
und wie unten mit "e" auf der Tastatur in das Editionsuntermenü wechseln.
Hier wechselt man nun auf den Kernel und betätigt ein weiteres mal "e".
Nun sieht man ein Eingabefeld das so aussieht:
Achtung Englische Tastatur Einstellung
In diesem Feld müssen sie jetz
"quiet splash"
mit
"init=/bin/bash"
ersetzen:
und mit Enter bestätigen, dann kommen sie wieder auf das vorherige Editionsmenü.
In diesem jetz einfach nurnoch "b" drücken um zu booten.
Nach dem Booten
Das booten sollte eine relativ kurze Zeit dauern und danach müssten sie ein Eingabefeld haben das so aussieht
Jetzt mountet man das root Dateisystem lese und schreibbar
eventuell muss mann noch weiter Dateisysteme mounten
root@(none):/# mount -a
und danach den Befehl
um das rootpasswort zu ändern.
Danach nurnoch:
Und Geschafft
Beim nächsten Start des Rechners kann man sich mit seinem neu gesetzten Passwort als root anmelden
chroot
Die chroot-Methode verwendet man immer dann, wenn man nur oder auch die grub.cfg neu erstellen lassen will. Außerdem sollte sie immer bei komplizierteren Systemkonstellationen wie LUKS- oder LV-Partitionen sowie Raid-Verbunden und beim Wiederherstellen des Bootloaders eines Dualboot-Systems angewendet werden.
Kein RAID/normale Partitionen
1. Root-Partition mounten
sudo mount /dev/sdXY /mnt
2. (OPTIONAL) Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:
sudo mount /dev/sdXY /mnt/boot
Nutzt man auf seinem Rechner das "(U)EFI"-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:
sudo mount /dev/sdXY /mnt/boot/efi
3. Vorbereitung und Wechsel in die chroot-Umgebung:
sudo mount -o bind /dev /mnt/dev sudo mount -o bind /sys /mnt/sys sudo mount -t proc /proc /mnt/proc sudo cp /proc/mounts /mnt/etc/mtab sudo chroot /mnt /bin/bash
4. grub installieren:
grub-install /dev/sdX (evtl.: grub-install --recheck /dev/sdX) update-grub
5. chroot-Umgebung verlassen und neustarten
RAID
1.Desktop-CD booten und mdadm-Tools installieren:
sudo apt-get install mdadm sudo mdadm --assemble --scan
2.Einhängen der Systempartition:
sudo mount /dev/mdX /mnt sudo mdadm --examine --scan
3.(Optional) Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls eingehängt werden:
sudo mount /dev/mdX /mnt/boot
4.Wechsel in die chroot-Umgebung:
sudo mount -o bind /dev /mnt/dev sudo mount -o bind /sys /mnt/sys sudo mount -t proc /proc /mnt/proc sudo cp /proc/mounts /mnt/etc/mtab sudo chroot /mnt /bin/bash
5.grub installieren
grub-install /dev/sdX
Installation auf allen teilnehmenden Platten (/dev/sda, /dev/sdb ...) empfohlen!
update-grub
6. chroot-Umgebung verlassen und neustarten
Root-Directory
Die Root-Directory-Methode kann man immer dann wählen, wenn man sicher ist, dass die Datei grub.cfg richtig ist und GRUB 2 nur deswegen nicht richtig startet, weil er nicht oder nicht mehr bzw. nicht mehr richtig im Bootsektor oder dem MBR der betreffenden Festplatte installiert ist. Diese Situation hat man z.B. stets, nachdem Windows nach Ubuntu auf dem System installiert wurde. Diese Methode erfordert zwar weniger Einzelschritte, ist dabei aber auch weniger flexibel und erlaubt nicht so viele Reparaturoptionen wie die chroot-Methode.
Bei dieser Variante wird GRUB 2 einfach in einem Terminal[2] von der Desktop-CD mittels des GRUB-2-Skripts grub-install erneut auf der Festplatte installiert:
1. Desktop-Image laden 2. Root-Partition mounten
sudo mount /dev/sdXY /mnt
3. Optional Nutzt man auf dem System eine separate Boot-Partition, so muss diese ebenfalls vorab eingehängt werden:
sudo mount /dev/sdXY /mnt/boot
Nutzt man auf seinem Rechner das "(U)EFI"-Bootverfahren, so muss die relevante Bootpartition vorab eingehängt werden mit:
sudo mount /dev/sdXY /mnt/boot/efi
4. Devices von USB/CD einbinden Live-System
sudo mount --bind /dev/ /mnt/dev
5. grub installieren GRUB 1.98 und vorher (bis Maverick Meerkat):
sudo grub-install --root-directory=/mnt /dev/sdX
GRUB 1.99 und später:
sudo grub-install --boot-directory=/mnt/boot /dev/sdX sudo update-grub