Notfallplan

Diese Notfallwerkzeuge sollte Jeder in seiner CD Tasche haben:

  • SuperGrub
  • Live CD
  • Distribution auf USB Stick

Sicherungserstellung

Es ist klug eine Sicherung der Kernel-Konfiguration zu erstellen. Immerhin verwenden viele Nutzer beträchtlich Zeit um die beste Konfiguration für ein System herauszufinden. Diese Information zu verlieren ist sicherlich nicht erwünscht.

Es ist leicht eine Sicherung der aktuellen Kernel-Konfiguration zu erstellen:

localhost # cd /usr/src/linux
localhost # cp .config ~/kernel-config-`uname -r`

Vorausgesetzt dass der Symlink zu den Kernelquellen korrekt gesetzt ist, kopiert dies die Konfiguration des aktuell verwendeten Kernel in das Heimatverzeichnis von Root. Außerdem benennt es die Konfiguration in kernel-config- gefolgt von der Version des aktuell laufenden Linux Kernel um.

Notfall-Zugriff über #chroot

Root Passwort vergessen?  Das ist ärgerlich! Kann durch das Booten über eine Live-CD und einem chroot geändert werden.

Eine gute Möglichkeit von Aktionen auf einem System ohne erfolgreichem Direktzugriff ist die Verwendung des chroot Kommandos.  chroot steht für „change root“ und ist eine Funktion unter Unix-Systemen, um das Rootverzeichnis zu ändern. So kann von einem virtuellen Laufwerk auf dem System, dass Probleme macht, gearbeitet werden. Der Kernel muss bereits kompiliert und aufrufbar sein.
Im Prinzip kann über jede Distribution als Live-System genutzt werden. Die Distributionsspezifischen sind dennoch empfehlenswert. 

Links zu Live-Distributionen:
Gentoo https://gentoo.de/downloads/index.html
Ubuntu: https://www.ubuntu.com/download/desktop

Anleitung zum chroot

Als erstes eine Live-CD von einem iso erstellen. 

Die Live-CD booten. 

Die chroot Befehle unterscheiden sich zum Beispiel durch Kernel bzw. Kernelversionen  Ein Vorteil ist die Verwendung der Tabulator – Taste. Das System zeigt die Möglichkeiten an und falls nur eine vorliegt wird diese automatisch vervollständigt.

Nun wird die Hauptpartition, auf die gewechselt werden soll, eingebunden. Die Angaben der Partition /dev/sdxY müssen mit dem Gerätenamen angepasst werden. Ein Beispiel für eine Partitionsangabe ist /dev/sda1

live-cd# mount /dev/sdxY /mnt/

bzw. bei einem btrfs-formatierten System:

live-cd # mount -o subvol=@ /dev/sdxY /mnt

Vor dem Wechsel in das installierte System muss gegebenenfalls diesem der Zugriff auf wichtige Systeminformationen zugesichert werden. Man bindet dazu das Verzeichnis mit den Gerätedateien /dev innerhalb des installierten Systems ein:

live-cd # mount --rbind /dev /mnt/dev

Ähnlich verfährt man mit dem Schnittstellendateisystem /proc und dem System-Verzeichnis /sys. Diese werden mit

live-cd # mount --rbind /sys /mnt/sys
live-cd #mount -t /proc none /mnt/proc

eingebunden. Die Netwerk- bzw. DNS Konfiguration kann kopiert werden.

live-cd# cp /etc/resolv.conf /mnt/etc

Nun das System wechseln:

live-cd# sudo chroot /mnt /bin/bash
localhost # passwd
Geben Sie ihr neues Passwort ein
localhost # reboot

Ist dies erfolgreich können Befehle zur Diagnose / Konfigurationsanpassung auf der Partition eingegeben werden. Zum Beispiel auch den Befehl passwd . Über diesen kann man ein neues Root-Kennwort festlegen.

MBR zerschossen?

Bitte beachten: Änderungen am MBR können Schaden verursachen!
Über eine Windows CD kann über bootrec.exe ein MBR resettet werden.
https://support.microsoft.com/de-de/help/927392/use-bootrec-exe-in-the-windows-re-to-troubleshoot-startup-issues

Wenn über eine CD ein bestehendes System gebootet werden soll ist SuperGrub eine tolle Anwendung.
Ein Download ist über https://www.supergrubdisk.org/super-grub2-disk/ möglich. Durch Auswahl von Detect and show boot methods wird nach Systemen und efi Einträgen gesucht.

In einem bestehenden Linux-System kann über das Tool os-prober nach Betriebssystemen suchen. Es muss in einigen Distributionen wie Gentoo allerdings erst installiert werden.

here /boot/grub # emerge -av os-prober
setlocale: unsupported locale setting

 * IMPORTANT: 15 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] sys-fs/fuse-common-3.9.1::gentoo  1.558 KiB
[ebuild  N     ] sys-fs/fuse-2.9.9-r1::gentoo  USE="-examples -static-libs" 1.771 KiB
[ebuild   R    ] sys-boot/grub-2.04-r1:2/2.04-r1::gentoo  USE="fonts mount* nls sdl themes truetype -device-mapper -doc -efiemu -libzfs (-test)" GRUB_PLATFORMS="efi-64 pc -coreboot -efi-32 -emu -ieee1275 -loongson -multiboot -qemu -qemu-mips -uboot -xen -xen-32 -xen-pvh" 0 KiB
[ebuild  N     ] sys-boot/os-prober-1.77::gentoo  27 KiB

Total: 4 packages (3 new, 1 reinstall), Size of downloads: 3.355 KiB

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by sys-boot/os-prober-1.77::gentoo
# required by os-prober (argument)
>=sys-boot/grub-2.04-r1 mount

Would you like to add these changes to your config files? [Yes/No] 

Um Windows bzw. das Dateiformat NTFS lesen zu können muss ausserdem das Tool sys-fs/ntfs3g installiert werden.

here /boot/grub # os-prober
  WARNING: Failed to connect to lvmetad. Falling back to device scanning.
/dev/sda1@/efi/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi
here /boot/grub # 

In diesem Beispiel wurde nur der Bootmanager von Windows noch erkannt. Es ist natürlich möglich verschiedene Distributionen und Windows paralell zu installieren.