[[Vorlage(Getestet, bionic)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Partitionierung: Partitionierung von Datenträgern] [:Terminal: Im Terminal arbeiten] [:Editor: Mit dem Texteditor arbeiten] [:mount: Einbinden von Dateisystemen] }}} [[Inhaltsverzeichnis]] [[Bild(Wiki/Icons/usb.png, 64, align=left)]] 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 [wikipedia:SYSLINUX:] eingesetzt. {{{#!vorlage Paketinstallation isolinux syslinux syslinux-common extlinux, universe }}} == 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 [wikipedia: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 [wikipedia:Ext2:], [wikipedia:Ext3:] oder [wikipedia:Ext4:] erstellt und kann beliebig gelabelt werden. Die Persistenzpartition muss zwingend das [:Labels:Label] `casper-rw` erhalten. === Livesystem auf den Stick bringen === Die heruntergeladene ISO-Datei wird als [wikipedia:Loop_device:] gemountet {{{#!vorlage Befehl sudo mount -o loop DATEINAME.iso /mnt }}} Für die Partition, die das Livesystem enthalten soll, wird ein Mountpoint eingerichtet {{{#!vorlage Befehl sudo mkdir /media/system }}} und die Partition dorthin eingebunden. {{{#!vorlage Befehl sudo mount /dev/sdXx /media/system }}} wobei `/dev/sdXx` an die tatsächlich bestehenden Gegebenheiten angepasst wird, also zum Beispiel {{{#!vorlage Befehl sudo mount /dev/sdb1 /media/system }}} Anschließend werden die Daten auf den Stick kopiert. {{{#!vorlage Befehl 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. {{{#!vorlage Befehl sync }}} Anschließend kann das Loopdevice ausgehängt werden. {{{#!vorlage Befehl sudo umount /mnt }}} === Bootloader installieren und konfigurieren === Nun wird [wikipedia:SYSLINUX:] auf der Partition installiert, auf der das Livesystem liegt. {{{#!vorlage Befehl 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 [https://www.syslinux.org/wiki/index.php?title=ISOLINUX ISOLINUX] {en} 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. {{{#!vorlage 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 {{{#!vorlage Befehl sudo umount /media/system }}} und der [wikipedia:Master_Boot_Record:] des Sticks neu geschrieben, um Syslinux zu verwenden. {{{#!vorlage Befehl sudo dd bs=440 count=1 if=/usr/lib/syslinux/mbr/mbr.bin of=/dev/sdX }}} {{{#!vorlage 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. {{{#!vorlage Befehl sudo parted /dev/sdX set x boot on }}} Für die erste Partition auf '''/dev/sdb''' wäre das als Beispiel {{{#!vorlage Befehl sudo parted /dev/sdb set 1 boot on }}} Anschließend kann der angelegte Mountpoint entfernt werden. {{{#!vorlage Befehl sudo rmdir /media/system }}} Jetzt lässt sich vom Stick booten, wenn man im [wikipedia:BIOS:] bzw. in einem im Legacy-Modus laufenden [wikipedia:UEFI:] den Stick als Bootmedium auswählt. == Nacharbeit == {{{#!vorlage Hinweis Bei einem persistenten USB-Stick ist es nicht möglich [:Kernel:]-Updates einzuspielen! Es ist technisch dadurch bedingt, dass der Kernel, der das [wikipedia:initramfs:] bootet, in dem das Livesystem sich befindet, außerhalb dessen liegt und somit über die Aktualisierungsverwaltung nicht erreichbar ist. }}} Um das übrige System (!außer kernel!) trotzdem ohne Komplikation updaten zu können, müssen [:Kernel:] und [:Kernelmodule: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 [:Long_Term_Support/#Point-Releases-Snapshots:Point-Releases] von LTS-Versionen unterscheiden sich diese von denen in [:Unterschiede_LTS_und_normale_Version/:STS-Versionen]. {{{#!vorlage Warnung 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 === {{{#!vorlage Befehl 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 === * [https://www.syslinux.org/ Syslinux Homepage] {en} * [man:casper:Casper boot options] {en} - Weitere Boototionen zu Casper #tag: USB