Persistenten USB-Live-Stick im BIOS-Modus erstellen
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Dieser Artikel beschreibt, wie man manuell einen persistenten Live-USB-Stick erstellen kann. „Persistent“ bedeutet in diesem Zusammenhang, dass auf einer zweiten, speziell gekennzeichneten Partition sämtliche veränderten Einstellungen des Live-Systems und vom Nutzer veränderte bzw. hinzugefügte Dateien gespeichert werden.
Voraussetzungen¶
Folgendes wird benötigt:
die ISO-Datei, auf deren Grundlage das persistente System erstellt werden soll (zu finden unter Downloads)
ein USB-Stick
ein Rechner mit der Möglichkeit von USB zu booten
Als Bootloader wird hier SYSLINUX eingesetzt.
isolinux
syslinux
syslinux-common
extlinux (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install isolinux syslinux syslinux-common extlinux
Oder mit apturl installieren, Link: apt://isolinux,syslinux,syslinux-common,extlinux
Stick partitionieren¶
Auf dem USB-Stick werden mindestens zwei Partitionen anlegt. Hierzu können sowohl grafische Programme wie GParted oder Partitionmanager als auch CLI-Programme wie fdisk, GNU Parted und cfdisk verwendet werden.
Die Partition für das Livesystem muss mindestens die Größe des verwendeten Images haben, die Persistenzpartition kann je nach Bedarf und Größe des Sticks erstellt werden. Die Systempartition wird hier in Ext2, Ext3 oder Ext4 erstellt und kann beliebig gelabelt werden.
Die Persistenzpartition muss zwingend das Label casper-rw
erhalten.
Livesystem auf den Stick bringen¶
Die heruntergeladene ISO-Datei wird als Loop_device gemountet
sudo mount -o loop DATEINAME.iso /mnt
Für die Partition, die das Livesystem enthalten soll, wird ein Mountpoint eingerichtet
sudo mkdir /media/system
und die Partition dorthin eingebunden.
sudo mount /dev/sdXx /media/system
wobei /dev/sdXx
an die tatsächlich bestehenden Gegebenheiten angepasst wird, also zum Beispiel
sudo mount /dev/sdb1 /media/system
Anschließend werden die Daten auf den Stick kopiert.
sudo cp -a /mnt/. /media/system
Um sicherzustellen, dass auch alle Daten auf den Stick geschrieben wurden und nicht noch im Schreibcache, sind diese noch zu synchronisieren.
sync
Anschließend kann das Loopdevice ausgehängt werden.
sudo umount /mnt
Bootloader installieren und konfigurieren¶
Nun wird SYSLINUX auf der Partition installiert, auf der das Livesystem liegt.
sudo extlinux --install /media/system
Danach wird mit einem Editor[3] mit Rootrechten noch die Konfigurationsdatei syslinux.cfg im Unterverzeichnis /media/system angelegt, die auf das im ISO-Image verwendete ISOLINUX 🇬🇧 weiterleitet durch folgenden Inhalt:
DEFAULT loadconfig LABEL loadconfig CONFIG /isolinux/isolinux.cfg APPEND /isolinux/
Die Datei /media/system/isolinux/txt.cfg
wird durch einen Eintrag zum persistenten Betrieb erweitert, dazu wird in einem Editor[4] nach der Zeile
append file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
der Abschnitt
label persistent menu label ^Ubuntu persistent kernel /casper/vmlinuz.efi append file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz persistent quiet splash ---
eingefügt.
Soll der Stick hauptsächlich im persistenten Modus genutzt werden bietet es sich an, den Wert
default live
durch
default persistent
zu ersetzen, wodurch der persistente Modus als vorausgewählter Standard erscheint.
Hinweis:
Dieser Text ist für ein Standard-Ubuntu-Image gedacht! Bei den Derivaten sind statt Ubuntu die Namen der Derivate im Booteintrag vorhanden.
Die Partition wird ausgehängt
sudo umount /media/system
und der Master_Boot_Record des Sticks neu geschrieben, um Syslinux zu verwenden.
sudo dd bs=440 count=1 if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdX
Hinweis:
Hier ist darauf zu achten, dass der Datenträger angegeben wird und NICHT eine darauf befindliche Partition!
Die Partition muss jetzt noch als bootbar markiert werden.
sudo parted /dev/sdX set x boot on
Für die erste Partition auf /dev/sdb wäre das als Beispiel
sudo parted /dev/sdb set 1 boot on
Anschließend kann der angelegte Mountpoint entfernt werden.
sudo rmdir /media/system
Jetzt lässt sich vom Stick booten, wenn man im BIOS bzw. in einem im Legacy-Modus laufenden UEFI den Stick als Bootmedium auswählt.
Nacharbeit¶
Hinweis:
Um das übrige System (!außer kernel!) trotzdem ohne Komplikation updaten zu können, müssen Kernel und Kernel-Headers von einem solchen ausgeschlossen werden. Das erreicht man, indem man nach dem ersten Start im persistenten Modus die für die Aktualisierung des Kernels (und den headers) verantwortlichen Metapakete entfernt.
Welche dies sind hängt von der verwendeten ISO-Datei ab. Bei Point-Releases von LTS-Versionen unterscheiden sich diese von denen in STS-Versionen.
Achtung!
Durch diese Vorgehensweise bleiben mögliche, seitdem entdeckte Sicherheitslücken im Kernel ungeschlossen!
Nach dem Entfernen der folgend gelisteten Pakete kann die Aktualisierungsverwaltung wie in einem installierten System genutzt werden.
Ubuntu 18.04¶
sudo apt-get purge linux-generic linux-image-generic linux-headers-generic linux-signed-generic linux-signed-image-generic
Links und Quellen¶
Intern¶
Booten - Booten und Bootoptionen
Extern¶
Casper boot options 🇬🇧 - Weitere Boototionen zu Casper