Rettungsinstallation auf USB-Stick

Diskussion rund um unser Wiki.
Antworten
Benutzeravatar
smutbert
Beiträge: 7404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Rettungsinstallation auf USB-Stick

Beitrag von smutbert » 10.03.2017 16:05:49

Hab gerade die Art und Weise verewigt, auf die ich ein System für den Notfall auf USB-Stick installiere

Wiki-Artikel zum Thema Ein Notfallsystem auf einem USB-Stick installieren

Hinweise oder Korrekturen werden freudig entgegengenommen.
edit: Besonders interessant wäre ob der Stick auf 32-Bit UEFIs tatsächlich korrekt bootet - das konnte ich bis jetzt nicht testen.

Ich hab beim Kopieren vom Texteditor ins Wiki irrsinnige Schwierigkeiten mit den Zeilenumbrüchen gehabt - die sind beim Klicken auf Vorschau immer verschwunden und wenn ich sie vorher korrigieren wollte sind wie aus dem Nichts überzählige Leerzeichen erschienen. Auch zu diesem Problem werden Hinweise dankend entgegengenommen ☺
Zuletzt geändert von smutbert am 10.03.2017 16:29:38, insgesamt 1-mal geändert.

MSfree
Beiträge: 6514
Registriert: 25.09.2007 19:59:30

Re: Rettungsinstallation auf USB-Stick

Beitrag von MSfree » 10.03.2017 16:15:25

btrfs auf einem Rescue-Stick? Warum?

Benutzeravatar
smutbert
Beiträge: 7404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rettungsinstallation auf USB-Stick

Beitrag von smutbert » 10.03.2017 16:20:38

warum nicht? :wink:

Mir taugt btrfs und ich bilde mir ein, dass eine Installation auf einem USB-Stick mit btrfs mit aktivierter Kompression sogar (leicht) spürbar schneller ist, als mit einem 0815-Dateisystem ohne Kompression. Außerdem habe ich mit xfs und ext4 schon Dateisystemfehler auf USB-Sticks gehabt (ev. wegen der "Lahmheit"?) und mit btrfs hatte ich (auf denselben Sticks) noch keine derartigen Probleme.

Benutzeravatar
smutbert
Beiträge: 7404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rettungsinstallation auf USB-Stick

Beitrag von smutbert » 10.03.2017 21:26:25

Einen Fehler hab ich selbst entdeckt.
Bei meinen Installationen setze ich für gewöhnlich die debconf-Priorität auf low, aber im Artikel wollte ich das nur für einen Befehl

Code: Alles auswählen

# apt -o Dpkg::Options::="--priority=low" install grub-pc
Das funktioniert aber nicht weil "--priority=low" eine Option von dpkg-reconfigure und nicht von dpkg ist. Kann mir jemand auf die Sprünge helfen wie man die deconf-Priorität für einen apt-Aufruf festlegen kann?

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Rettungsinstallation auf USB-Stick

Beitrag von rendegast » 11.03.2017 09:21:11

smutbert hat geschrieben: edit: Besonders interessant wäre ob der Stick auf 32-Bit UEFIs tatsächlich korrekt bootet - das konnte ich bis jetzt nicht testen.
https://github.com/BlankOn/ovmf-blobs
Das bios32.bin.
Da das ein NSA-blob sein könnte, vielleicht eher dem README nach entsprechend erstellen
'git ....' (tianocore ist die Projektseite von ovmf)
'... -a IA32 ...'
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
smutbert
Beiträge: 7404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rettungsinstallation auf USB-Stick

Beitrag von smutbert » 11.03.2017 23:35:08

Ah, danke, der Test folgt noch.

Bei der Suche nach einer Möglichkeit die debconf-Priorität einmalig zu setzen, habe ich die Variable DEBIAN_PRIORITY gefunden und

Code: Alles auswählen

# DEBIAN_PRIORITY=low apt install grub-pc
sollte das machen, was ich will.

matthiasklein
Beiträge: 56
Registriert: 25.11.2010 20:56:44

Re: Rettungsinstallation auf USB-Stick

Beitrag von matthiasklein » 12.01.2021 11:28:33

Hallo smutbert,

Du hast in einem anderen Thread (viewtopic.php?t=179899) geschrieben, dass an der Anleitung noch das eine oder andere zu verbessern/zu ergänzen ist.

Ich würde das Ganze gerne mal mit Buster oder noch lieber mit Bullseye durchspielen, habe debootstrap aber bisher noch nie verwendet.
Auf was muss ich denn achten, bzw. was meintest Du mit verbessern / ergänzen?

Viele Grüße,
Matthias

Benutzeravatar
smutbert
Beiträge: 7404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rettungsinstallation auf USB-Stick

Beitrag von smutbert » 12.01.2021 11:41:04

Als erstes wollte ich dem Artikel einen anderen Namen geben, weil das nun einmal nicht nur als Rettungssystem nützlich ist ☺

Ein weiterer Punkt betrifft die Partitionierung: Zum Booten auf Systemen mit BIOS bzw. im BIOS-/Legacy-Mode auf UEFI-Systemen, lege ich eine 100 MB große BIOS Boot Partition an – es macht meines Wissens zwar nichts, wenn die Partition größer als notwendig ist, aber nachdem die Partition ja nur als Ersatz für einen kleinen freien Speicherbereich von mbr/msdos-partitionierten Datenträgern dienen soll, würde ich mich an der Stelle auf die übliche 1 MB große Partition beschränken.

Nachdem das Booten auf Systemen mit 32-Bit-uefi oder BIOS immer mehr aus der Mode kommt, überlege ich überhaupt, ob ich darauf im Artikel nicht verzichten könnte – das würde die Anleitung doch erheblich verkürzen.

Dann würde ich natürlich stretch durch buster (oder gar schon bullseye) ersetzen und schließlich will ich am Ende vielleicht noch eine paar Hinweise einbauen welche Pakete man installieren könnte um zu einem schlanken Gnome Desktop zu kommen – das muss ich allerdings selbst erst ausprobieren.


Würde dir das Booten auf Hardware mit 64-bittigem uefi ausreichen?

Benutzeravatar
Lord_Carlos
Beiträge: 5557
Registriert: 30.04.2006 17:58:52
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Dänemark

Re: Rettungsinstallation auf USB-Stick

Beitrag von Lord_Carlos » 12.01.2021 12:09:19

smutbert hat geschrieben: ↑ zum Beitrag ↑
10.03.2017 16:05:49
Hab gerade die Art und Weise verewigt, auf die ich ein System für den Notfall auf USB-Stick installiere
Welchen Anwendungsfall oder Vorteil hat es gegenueber einer offiziellen live image?

Code: Alles auswählen

╔═╗┬ ┬┌─┐┌┬┐┌─┐┌┬┐╔╦╗
╚═╗└┬┘└─┐ │ ├┤ │││ ║║
╚═╝ ┴ └─┘ ┴ └─┘┴ ┴═╩╝ rockt das Forum!

matthiasklein
Beiträge: 56
Registriert: 25.11.2010 20:56:44

Re: Rettungsinstallation auf USB-Stick

Beitrag von matthiasklein » 12.01.2021 13:01:47

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑ Welchen Anwendungsfall oder Vorteil hat es gegenueber einer offiziellen live image?
Mit persönlich geht es nicht um eine Art Live bzw. Rettungssystem sondern um eine minimale bzw. händische Installation über debootstrap.
Zuerst auf einem X86 System, um es mal in "einfach" gesehen zu haben, um es anschließend per Multiarch & QEMU auf einem X86 System für ein ARM System zu versuchen.
smutbert hat geschrieben: ↑ zum Beitrag ↑ Würde dir das Booten auf Hardware mit 64-bittigem uefi ausreichen?
Ich könnte mit der Einschränkung leben.
Obwohl der uralte Rechner den ich für den ersten Test verwenden wollte, ein BIOS System ohne UEFI ist. VMware VM's verwenden in Standard auch BIOS.
Aber wie gesagt, ich kann auch ein 64 bit UEFI System verwenden ...

Benutzeravatar
smutbert
Beiträge: 7404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rettungsinstallation auf USB-Stick

Beitrag von smutbert » 12.01.2021 13:19:45

Lord_Carlos hat geschrieben: ↑ zum Beitrag ↑
12.01.2021 12:09:19
Welchen Anwendungsfall oder Vorteil hat es gegenueber einer offiziellen live image?
Der Anwendungsfall ist bei mir eine Art Reserveinstallation, auf der ich mich einigermaßen zu Hause fühle und bei einer „normalen“ Installation lässt sich Software wie gewohnt nachinstallieren und es lässt sich alles ohne weiteren Aufwand wunschgemäß anpassen, auch bei der grub-Konfiguration/Installation, Kernel und initrd.

Bei einem Live-System dagegen weiß ich nie auf Anhieb wie man es schafft Änderungen dauerhaft zu speichern und selbst wenn das erledigt ist, meine ich sind Änderungen an Kernel und initrd mindestens unübersichtlich (wenn überhaupt möglich) und ohne es je gemessen zu haben, kommt mir vor, dass dieses zweigeteilte Dateisytem (Image und getrennt davon die Änderungen) speziell auf USB-Sticks spürbar langsamer ist als ein nicht-Live-System.

Welchen Vorteil hätte den ein Live-Image? :wink:
matthiasklein hat geschrieben: ↑ zum Beitrag ↑
12.01.2021 13:01:47
smutbert hat geschrieben: ↑ zum Beitrag ↑ Würde dir das Booten auf Hardware mit 64-bittigem uefi ausreichen?
Ich könnte mit der Einschränkung leben.
Obwohl der uralte Rechner den ich für den ersten Test verwenden wollte, ein BIOS System ohne UEFI ist. VMware VM's verwenden in Standard auch BIOS.
Aber wie gesagt, ich kann auch ein 64 bit UEFI System verwenden ...
Ok, ich werde mich bemühen das ganze in naher Zukunft durchzuspielen und entweder hier posten oder den Wiki-Artikel anpassen – wie gehabt mit allen Bootmöglichkeiten.

matthiasklein
Beiträge: 56
Registriert: 25.11.2010 20:56:44

Re: Rettungsinstallation auf USB-Stick

Beitrag von matthiasklein » 12.01.2021 13:50:27

smutbert hat geschrieben: ↑ zum Beitrag ↑ Ok, ich werde mich bemühen das ganze in naher Zukunft durchzuspielen und entweder hier posten oder den Wiki-Artikel anpassen – wie gehabt mit allen Bootmöglichkeiten.
Vielen Dank für die Mühe!
Wenn Du soweit bist, würde ich es in einer VMware VM und mit einem USB-Stick auf den mir zur Verfügung stehenden Rechnern testen...

KP97
Beiträge: 2253
Registriert: 01.02.2013 15:07:36

Re: Rettungsinstallation auf USB-Stick

Beitrag von KP97 » 12.01.2021 17:37:52

Eine Ergänzung dazu von mir:
Ich habe vor längerer Zeit auf einem 32GB großen USB-Stick ein Debian Buster 64bit installiert mit der Netinstall incl. Firmware.
Diesen Stick habe ich mit gparted partitioniert, mit ext4 formatiert und mit dem Installer eine automatische Installation incl. Uefi ausgeführt. Erstmal eine Minimalinstallation ohne grafische Oberfläche. Das hat ohne Probleme funktioniert, anschließend habe ich Xfce als DE und die von mir gewünschten Programme nachinstalliert und eingerichtet.
Dieser Stick kann überall eingesetzt werden, auch auf Fremdrechnern, und dient u.a. für Backups und als Rettungssystem.
Da es ein Stable ist, halten sich die Updates in Grenzen, da ich auf einem Stick nicht so viele Schreibvorgänge ausführen will.
Wenn Bullseye stable wird, brauche ich nur ein full-upgrade machen und habe wieder ein funktionierendes Debian auf einem Stick.
Das hat den Vorteil - um @LordCarlos' Frage zu beantworten - dass ich damit mobil sein kann, ohne ein CD-Laufwerk haben zu müssen. Das ist ja mittlerweile auch nicht mehr überall vorhanden.

Vor einigen Monaten habe ich ein HP Elitebook 2170p für kleines Geld erstanden. Das hat kein Uefi, läuft aber tadellos.
Ich hatte nicht damit gerechnet, nochmal solche alte Hardware in die Finger zu kriegen, aber was solls. Ich habe einen weiteren USB-Stick vorbereitet, darauf ein Slax als Live-CD kopiert,
und habe nun auch für mein altes Schätzchen ein Backup -bzw. Rettungssystem. Mein Uefi-Stick funktioniert hier natürlich nicht, daher der zusätzliche Stick.
Slax basiert auf Debian, hat apt und das beste ist, diese Live-CD ist schon von Haus aus persistent. Man kann wie gewohnt Programme nachinstallieren und hat diese dann, ganz ohne weiteres Zutun, beim nächsten Start zur Verfügung.

Auf meinem Hauptsystem und auch auf dem alten Netbook läuft Sid, wie immer ohne Probleme.

Das habe ich geschrieben, um zu sagen, daß eine "normale" Installation auf einem Stick problemlos möglich ist, ganz ohne debootstrap.
Vielleicht braucht @smutbert gar nicht so viel ändern.

Benutzeravatar
smutbert
Beiträge: 7404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rettungsinstallation auf USB-Stick

Beitrag von smutbert » 12.01.2021 19:18:16

Grundsätzlich müsste ich glaube ich gar nichts ändern, weil alles so funktionieren sollte, aber ich finde die Anleitung momentan auch etwas unübersichtlich. Jetzt habe ich jedenfalls eine SSD im USB-Gehäuse, auf der ich bullseye installieren will.
Ich schreib das jetzt für matthiasklein und mich auf, wenn ich später den Artikel ändern will.

Die externe SSD ist als /dev/sdb zugänglich und bei der Partitionierung fangen die Unterschiede schon an, so schaut die Partitoinierung aus

Code: Alles auswählen

# gdisk -l /dev/sdb
[...]
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         4196351   2.0 GiB     EF00  EFI system partition
   2         4196352         4198399   1024.0 KiB  EF02  BIOS boot partition
   3         4198400       976773134   463.8 GiB   8300  Linux filesystem
und im Gegensatz zur bisherigen Anleitung werde ich die Partitions- und Dateisystemlabel ignorieren und mich nur nach den UUIDs richten.

Es folgt das Erstellen der Dateisysteme

Code: Alles auswählen

# mkfs.vfat -F 32 /dev/sdb1
# mkfs.btrfs /dev/sdb3
und das Mounten und vorbereiten für debootstrap

Code: Alles auswählen

# mkdir /mnt/tmp
# mount -o noatime,compress=zstd /dev/sdb3 /mnt/tmp
# btrfs subvolume create /mnt/tmp/debian
# mount -o noatime,compress=zstd,subvol=debian /dev/sdb3 /mnt/tmp
(dass Unmounten neuerliche gezielte Mounten des btrfs-subvolumes hilft später bei grub-Installation)


es folgt debootstrap, das werde ich hoffentlich bald nachreichen können – ich muss mir erst eine Paketliste zusammenstellen und werde diesen Beitrag weiter ergänzen...

...so sieht das aus:

Code: Alles auswählen

debootstrap --variant=minbase --include=linux-image-amd64,nano,systemd,rsync,btrfs-progs,debconf,adduser,whiptail --arch=amd64 bullseye /mnt/tmp

dann die Vorbereitungen und für chroot und chroot selbst, angefangen mit der Namensauflösung in der chroot-Umgebung bis zu den virtuellen Dateisystemen, die man braucht (die sources.list habe ich hier einfach aus dem laufenden System kopiert – die muss gegebenenfalls natürlich angepasst oder schlimmstenfalls neu geschrieben werden)

Code: Alles auswählen

# cat /etc/resolv.conf > /mnt/tmp/etc/resolv.conf
# cp /etc/apt/sources.list /mnt/tmp/etc/apt/
# mount -o bind /sys /mnt/tmp/sys
# mount -o bind /dev /mnt/tmp/dev
# mount -o bind /proc /mnt/tmp/proc
# mount -o bind /dev/pts /mnt/tmp/dev/pts
für die fstab brauchen wir die uuids

Code: Alles auswählen

# blkid /dev/sdb1 /dev/sdb3 
und tragen sie in ein (natürlich in die »/mnt/tmp/etc/fstab«)

Code: Alles auswählen

# /dev/sda3 als /-Dateisystem und /dev/sda1 als EFI System Partition, allerdings nicht unter /boot/efi
UUID=XZY	/		btrfs	noatime,compress=zstd		0	0
UUID=ABC	/mnt/efi	vfat	dmask=077,fmask=177,noauto	0	0
es folgt chroot

Code: Alles auswählen

# chroot /mnt/tmp /bin/bash
und in der chroot-Umgebung geht es weiter, aber dafür mach ich einen neuen Beitrag sonst wird mir das zu unübersichtlich

Benutzeravatar
smutbert
Beiträge: 7404
Registriert: 24.07.2011 13:27:39
Wohnort: Graz

Re: Rettungsinstallation auf USB-Stick

Beitrag von smutbert » 12.01.2021 23:55:21

Ab jetzt sind wir also in der chroot-Umgebung und los geht es mit dem mounten der EFI System Parition, die wir später für den Bootloader brauchen

Code: Alles auswählen

# mkdir /mnt/efi
# mount /mnt/efi
außerdem installieren wir ein paar Pakete

Code: Alles auswählen

# apt update
# apt install systemd-cron libpam-systemd network-manager apt-rdepends apt-show-versions arping arp-scan bash-completion bash-doc bc busybox bzip2 console-setup debootstrap debsums dosfstools efibootmgr eject ethtool file gddrescue gdisk groff hashdeep htop iftop info iotop keyboard-configuration less libnss-myhostname libpam-systemd locales lsof manpages mlocate netcat-traditional net-tools nfacct nmap openssh-client pciutils rfkill rzip screen sharutils strace tcpdump testdisk traceroute tree units unzip usbutils xz-utils zip
hardwarespezifische Pakete wie zB Firmwaredateien, etwa firmware-iwlwifi müssen natürlich auch installiert werden.
Für den Betrieb von Gnome genügt es zusätzlich diese Pakete zu installieren

Code: Alles auswählen

# apt install dconf-editor eog epiphany-browser evince file-roller gdm3 gedit gnome-calculator gnome-characters gnome-control-center gnome-disk-utility gnome-extra-icons gnome-font-viewer gnome-icon-theme gnome-screenshot gnome-session gnome-shell-extension-prefs gnome-system-monitor gnome-terminal gnome-themes-extra gnome-tweak-tool gstreamer1.0-libav libcanberra-pulse nautilus nautilus-extension-gnome-terminal network-manager-gnome policykit-1-gnome pulseaudio totem totem-plugins yelp
ich kopiere und aktiviere auch immer die systemd-unit, die unter /tmp ein tmpfs mountet

Code: Alles auswählen

# cp /usr/share/systemd/tmp.mount /etc/systemd/system
# systemctl enable tmp.mount
Damit sollte abgesehen vom Bootloader einmal ein Grundsystem installiert sein.


Beim Bootloader gehe ich insofern eigene Wege, als ich den Bootloader nicht von Debian automatisch installieren lassen und die Konfigurationsdatei selbst schreibe. Deswegen haben wir die EFI System Partition auch nicht wie üblich unter »/boot/efi« gemountet sondern unter »/mnt/efi«. Dort erstellen wir jetzt ein Verzeichnis für die grub-Installation
(noch immer alles in der chroot-Umgebung!)

Code: Alles auswählen

# mkdir /mnt/efi/grub
und legen dort eine Konfigurationsdatei »/mnt/efi/grub/grub.cfg« mit dem Inhalt (XYZ muss wieder durch die UUID der btrfs-Partition ersetzt werden)

Code: Alles auswählen

insmod part_gpt
insmod btrfs
insmod gzio
insmod gettext
insmod all_video
insmod gfxterm

set debian_uuid=XYZ

set menu_color_normal=white/black
set menu_color_highlight=black/light-gray

set default=0

menuentry 'Debian GNU/Linux Rettungssystem' {
        search --no-floppy --fs-uuid --set=root $debian_uuid
        linux  /debian/vmlinuz root=UUID=$debian_uuid rootflags=subvol=debian ro quiet loglevel=2
        initrd  /debian/initrd.img
}
Diese grub-Konfiguration sollte dann mit allen Bootmechanismen (32-bit uefi, 64-bit uefi, bios) funktionieren, aber wir müssen auch noch alle drei grub-Versionen installieren, zuerst in der bios-Variante (die Fragen bei der Installation können getrost ignoriert werden):

Code: Alles auswählen

# apt install grub-pc
# grub-install --boot-directory=/mnt/efi /dev/sdb
# apt purge grub-pc grub-pc-bin
32-bit uefi (die Fragen spielen wieder keine Rolle, aber bei der Frage nach dem Updaten der nvram-Variablen sagen wir sicherheitshalber nein):

Code: Alles auswählen

# apt install grub-efi-ia32
# grub-install --target=i386-efi --boot-directory=/mnt/efi --efi-directory=/mnt/efi --no-nvram --removable
# apt purge grub-efi-ia32 grub-efi-ia32-bin
und dasselbe noch für 64-bit uefi:

Code: Alles auswählen

# apt install grub-efi-amd64
# grub-install --target=x86_64-efi --boot-directory=/mnt/efi --efi-directory=/mnt/efi --no-nvram --removable
# apt purge grub-efi-amd64 grub-efi-amd64-bin
und die Überreste einer eventuell versuchten automatischen Installation tilgen wir auch noch

Code: Alles auswählen

# rm -rf /boot/grub
Ein Passwort für root dürfen wir auch nicht vergessen

Code: Alles auswählen

# passwd
und wenn ich nichts falsch gemacht habe, sollte das System nach einem Neustart booten – ausprobiert habe ich es auf die Schnelle allerdings nur für ein 64-bittiges uefi.

Wenn irgendetwas unklar ist bitte fragen, immerhin soll das die Basis für einen neuen Wiki-Artikel sein.

Antworten