So erstellen Sie ein Live-System auf einem USB-Laufwerk mit dauerhaften Änderungen auf Festplatte / Festplatte


10

Ich habe versucht, Ubuntu live auf einem USB-Laufwerk mit dauerhaften Änderungen zu installieren. Allerdings wollte ich die Änderungen aus verschiedenen Gründen (Leistung, Speicherplatz) auf Festplatte anstatt auf USB schreiben.

Ich fand heraus, dass die Änderungen in einer Datei mit einem ext3-Dateisystem behandelt werden, das vom System gemountet wird (casper-rw). Es scheint jedoch beim Start auf dem Flash-Laufwerk automatisch erkannt zu werden.

Wie kann ich eine neue casper-rw-Datei auf der Festplatte erstellen und das Ubuntu-Live-System auf dem USB-Laufwerk auf die Festplatte umleiten?

bearbeiten 2015-07-14:

Vielen Dank für die bisherigen Antworten. Sie sind sehr interessant und helfen sehr dabei, die Mechanik der Funktion zum dauerhaften Speichern von Live-Systemen besser zu verstehen, und zeigen gute Ansätze zur Lösung des Problems. Leider habe ich versucht, einige Einschränkungen zu überwinden, die ich bei der Frage nach dem Zugriff auf das Hostsystem und / oder dem Zugriff auf neue Hardware, die ich nicht eindeutig angegeben habe, berücksichtigt habe (Entschuldigung).

Wenn Partitionierung eine Option ist, finde ich die hier angegebene Antwort sehr gut, da Sie nur eine neue Partition erstellen, sie als casper-rw kennzeichnen und fertig sind (die Arbeit ist großartig, ich habe sie getestet).

Wenn der Kauf neuer Hardware eine Option ist, kommen usb3.0-Flash-Laufwerke (MLC oder SLC), tragbare Festplatten, eSATA und andere Optionen in den Sinn, die eine weitaus bessere Leistung als ein durchschnittliches USB2.0-Flash-Laufwerk aufweisen.

Also habe ich mich gefragt, ob es eine Möglichkeit gibt, einfach eine casper-rw-Datei anstelle einer Partition auf einer Festplatte mit eingeschränktem Zugriff zu erstellen (oder die auf dem Flash-Laufwerk zu kopieren / zu verknüpfen).

Auf diese Weise ist es einfach, die casper-rw-Datei zurück auf das Flash-Laufwerk zu kopieren und von dort aus erneut zu verwenden oder auf einen anderen Computer zu verschieben. Dies bietet große Flexibilität, minimale Änderungen an der Festplatte und einfaches Entfernen von Änderungen, die an vorgenommen wurden das System.


Sie sind sich nicht sicher, ob dies eine Option ist, aber wenn Sie nur Daten speichern müssen, können Sie auch einfach eine Festplattenpartition irgendwo in Ihren Live-Dateisystembaum einbinden ... Auf diese Weise befinden sich jedoch nur bestimmte Ordner auf der Festplatte.
Byte Commander

@ ByteCommander danke für deinen Kommentar. Leider ist das Partitionieren der Festplatte für mich keine Option und ich möchte, dass alles so kompakt wie möglich ist, damit ich die Daten schnell und einfach löschen kann, sodass eine einzelne Datei auf der Festplatte ideal wäre.
LS

Es sollte auch möglich sein, eine Datei zu mounten, die ein Image eines Dateisystems enthält (z. B. .iso oder .img, wahrscheinlich mehr). Leider habe ich das nie gemacht und kann Ihnen nicht sagen, wie es geht ...
Byte Commander

Woher weißt du, dass das nicht funktioniert? Heißt Ihre Datei casper-rw ? Ist es die Wurzel Ihrer Partition ? Ich habe das getan (stattdessen Persistenz auf der Festplatte mit einer Partition mit der Bezeichnung casper-rw) und erinnere mich an keinen zusätzlichen notwendigen Schritt.
SolsTiCe

Ihre letzte Bearbeitung macht Ihre Frage zu spezifisch, um von allgemeinem Nutzen zu sein (was meine Antwort ist ...). Es ist nicht unmöglich, aber es würde bedeuten, Skripte und udev-Regeln zu erstellen, um beim Einfügen [unmounten] - [mit Festplatte synchronisieren] - [mounten] und [mit Festplatte synchronisieren] beim Aufheben der Bereitstellung, aber das ist eine Menge Arbeit und nicht wirklich für eine Q & A-Site wie diese geeignet.
Fabby

Antworten:


4

Sie können das beschreibbare Dateisystem (in der casper-rw-Datei) für ein Live-Medium einfach auf eine Festplatte übertragen. Die Einschränkung besteht darin, dass die casper-rw-Datei auf einer FAT-Partition gespeichert werden muss. Neuere Maschinen (UEFI) verfügen alle über eine FAT-EFI-Partition, die jedoch normalerweise zu klein ist, um eine 1G-4G-casper-rw-Datei aufzunehmen. Auf einer anderen ausreichend großen FAT-Partition können Sie Verzeichnisse erstellen, die jeweils eine casper-rw-Datei für möglicherweise unterschiedliche Live-Medien enthalten. Angenommen, sda11 ist 10G und verfügt über ein 10G-FAT-Dateisystem, das unter / mnt / sda11 bereitgestellt ist und in dem sich die Verzeichnisse / A, / B, / C, / D und / E befinden. Angenommen, wir werden / A für unsere persistenten Medien verwenden und dort ein Casper-RW platzieren.

cd /mnt/sda11/A
dd if=/dev/zero of=casper-rw bs=1M  count=4096
mkfs.ext4 -F -O^has_journal -L casper-rw casper-rw

Nehmen Sie Ihre mit Persistenz erstellten Live-Medien und bearbeiten Sie die Datei /boot/grub/grub.cfg und die Datei /syslinux/txt.cfg. Fügen Sie nach dem Wort "persistent" hinzu.

"persistent-path=/A"

/boot/grub/grub.cfg ...

menuentry "Try Ubuntu without installing" {
    set gfxpayload=keep
    linux   /casper/vmlinuz.efi  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash --- cdrom-detect/try-usb=true noprompt persistent persistent-path=/A
    initrd  /casper/initrd.lz
}

/syslinux/txt.cfg

default live
label live
menu label ^Try Ubuntu without installing
kernel /casper/vmlinuz.efi
append noprompt cdrom-detect/try-usb=true persistent persistent-path=/A file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash ---
label live-install
...

Das ist es. Sie müssen die casper-rw-Datei auf dem USB-Medium nicht einmal umbenennen / entfernen.


Wenn auf dem USB-Medium Platz ist, können Sie sogar den Casper-RW der Festplatte zurück auf den USB-Stick kopieren und Ihre Änderungen mitnehmen.


Der persistente Pfad erlaubt keine explizite Festplattenreferenz und sollte daher für alle FAT-Partitionen eindeutig sein. Getestet mit 1 oder 2 FAT-Partitionen (eine davon ist die EFI-Partition). Funktioniert nicht mit einem ext2- oder ntfs-Dateisystem anstelle von FAT. Wenn Sie in derselben Zeile wie "persistent" auch das Wort "toram" hinzufügen, wird Ihr komprimiertes Dateisystem auf dem langsamen USB-Stick in den RAM kopiert und bietet eine viel bessere Leistung. Es scheint jedoch ein Problem beim Herunterfahren der FAT-Partition zu geben nicht sauber abmontiert sein (was keine Probleme zu verursachen scheint, aber ...)


Vielen Dank. Das macht die Dinge viel klarer. Ich gehe davon aus, dass ntfs im Boot-Status nicht erkannt werden kann (richtig?), Was es unmöglich macht, ein casper-rw auf einer ntfs-Partition zu haben. Also denke ich, ich werde entweder mit der ext4-Partition mit der Bezeichnung casper-rw gehen oder ein paar "Toram" - oder Ramdrive-Sachen ausprobieren.
LS

Wie können Sie Änderungen vornehmen grub.cfgoder syslinux.txtangeben, dass Sie die Live-Medien nur schreibgeschützt bereitstellen können, da es sich um eine ISO handelt?
SolsTiCe

Die oben genannten haben die ISO verwendet, um einen Live-Media-USB zu erstellen, auf den die Dateien beschreibbar sind. Beim direkten Booten der ISO (z. B. von einer Festplatte) wird ein völlig separater Grub (der auf der Festplatte) verwendet, dessen Dateien bearbeitet werden können - in diesem Fall werden die Startmechanismen der ISO überhaupt nicht verwendet.
ubfan1

7

Das ist extrem einfach, wenn Sie die folgenden Einstellungen verwenden:

  1. Installieren Sie Ubuntu auf einem SLC-USB-Stick (USB 3.0 wird bevorzugt, wenn Ihre Hardware dies unterstützt) ohne Casper-Inhalte (nur eine normale Installation, bei der der USB-Stick als SSD behandelt wird).

    Warum? Die SLCs sind doppelt so teuer wie die MLCs, aber sie sind viermal schneller und halten 8 * länger! Es sind also wirklich kleine SSDs am Stiel!

  2. Optimieren Sie das System und behandeln Sie den USB-Stick als kleine SSD.

    In Ihrem /etc/sysctl.confAdd:

    # Fabby: change the "swappiness" to 10 to prevent swapping as much as possible
    # to not wear out the USB stick as the Ubuntu default is optimized for a server.
    # 10 to balance with vfs_cache_pressure
    vm.swappiness = 10
    
    # Fabby: Lower vfs_cache_pressure to 75% 
    # (once cached, probably not immediately needed any more)
    #
    # This percentage value controls the tendency of the kernel to reclaim
    # the memory which is used for caching of directory and inode objects.
    #
    # At the default value of vfs_cache_pressure=100 the kernel will attempt to
    # reclaim dentries and inodes at a "fair" rate with respect to pagecache and
    # swapcache reclaim.  Decreasing vfs_cache_pressure causes the kernel to prefer
    # to retain dentry and inode caches.
    vm.vfs_cache_pressure = 75
    
    # Fabby: Good to improve sequential reads (stop stuttering in movie play)
    # Can also be implemented per disk using udev rules
    vm.max-readahead=2048
    vm.min-readahead=1024
    

    In Ihrem /etc/fstabfügen Sie den fett Paramater auf Ihre Boot - USB - Leitung. (Es wird wahrscheinlich sdcoder sein sdd. Das folgende Beispiel zeigt UID, wenn möglich.)

    /dev/sdc / ext4 defaults,noatime,discard,errors=remount-ro 0 1

  3. Erstellen Sie zwei Benutzer: Ein Administrator, der sein Ausgangsverzeichnis auf dem USB-Stick hat, aber nur sehr wenige Dateien hat, und ein normaler Benutzer, der sein Ausgangsverzeichnis auf der Festplatte hat.

  4. Legen Sie erst jetzt die Festplatte ein und fügen Sie die erforderlichen Festplatteninformationen hinzu, um die Festplatte fstabautomatisch zu mounten und die folgenden Parameter hinzuzufügen:

    nobootwait,nofail

    um das Booten auch dann zu ermöglichen, wenn die Festplatte nicht vorhanden ist (In diesem Fall hat nur der Administrator Zugriff, nicht der normale Benutzer).

  5. Melden Sie sich jetzt als Administrator an und verschieben Sie das Home-Verzeichnis für den normalen Benutzer vom USB-Stick auf die Festplatte:

cp --preserve=all /home/NormalUser/* /media/ExternalHDD/NormalUser

Wenn alles in Ordnung ist:

rm --recursive --force /home/NormalUser/*
cd /home
ln --symbolic /media/ExternalHDD/NormalUser

Erledigt! :-)

Für die Aufzeichnung: Ich habe einen 16 GB USB 2.0 MLC-Stick wie diesen (mehr als genug für meinen Anwendungsfall und nicht zu teuer und er ist jetzt ungefähr 5 Jahre alt und läuft noch!)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.