![Erledigt! :-)](https://rvso.com/image/1127620/Erledigt!%20%3A-).png)
Ich habe versucht, Ubuntu live auf einem USB-Laufwerk mit dauerhaften Änderungen zu installieren. Aus verschiedenen Gründen (Leistung, Speicherplatz) wollte ich die Änderungen jedoch auf die Festplatte statt auf das USB-Laufwerk schreiben.
Ich habe herausgefunden, dass die Änderungen in einer Datei mit einem ext3-Dateisystem verarbeitet werden, das vom System gemountet wird (casper-rw). Aber es scheint 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-Livesystem auf dem USB-Laufwerk auf die Festplatte umleiten?
Bearbeitung 14.07.2015:
Vielen Dank für die bisherigen Antworten. Sie sind sehr interessant und helfen sehr, die Mechanik der „Live-System Persistent Save-Funktion“ 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 bezüglich des Zugriffs auf das Hostsystem und/oder des Zugriffs auf neue Hardware im Sinn hatte, die ich jedoch nicht klar dargelegt habe (tut mir leid).
Wenn Partitionierung eine Option ist, denke ich, die Antwort lauteteHierist sehr gut, da Sie lediglich eine neue Partition erstellen und sie mit „casper-rw“ benennen müssen, und fertig (funktioniert super, ich habe es getestet).
Wenn der Kauf neuer Hardware eine Option ist, fallen USB 3.0-Flash-Laufwerke (MLC oder SLC), tragbare Festplatten, eSATA und andere Optionen ein, die eine weitaus bessere Leistung als ein durchschnittliches USB 2.0-Flash-Laufwerk bieten.
Daher habe ich mich gefragt, ob es eine Möglichkeit gibt, statt einer Partition auf einer Festplatte mit eingeschränktem Zugriff einfach eine Casper-RW-Datei zu erstellen (oder die auf dem Flash-Laufwerk zu kopieren/verknüpfen).
Auf diese Weise wäre es ganz einfach, die Casper-RW-Datei wieder auf den USB-Stick zu kopieren und sie von dort aus erneut zu verwenden oder auf einen anderen Computer zu verschieben. Dies gewährleistet große Flexibilität, minimale Änderungen an der Festplatte und eine einfache Entfernung der am System vorgenommenen Änderungen.
Antwort1
Das ist ganz einfach, wenn Sie den folgenden Aufbau verwenden:
Installieren Sie Ubuntu auf einemSLC-USB-Stick(USB 3.0 bevorzugt, sofern Ihre Hardware dies unterstützt) ohne den ganzen Casper-Kram (nur eine normale Installation, bei der der USB-Stick wie eine SSD behandelt wird.)
Warum?Die SLCs sind doppelt so teuer wie dieMLCsaber sie sind 4-mal schneller und halten 8* länger! Es handelt sich also tatsächlich um kleine SSDs auf einem Stick!
Optimieren Sie das System und behandeln Sie den USB-Stick wie eine kleine SSD, also:
In Ihrem
/etc/sysctl.conf
Add:# 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
Fügen Sie in Ihrem
/etc/fstab
Add diefettgedruckte Parameterzu Ihrer Boot-USB-Leitung. (Wahrscheinlich wird essdc
oder seinsdd
. Das Folgende ist ein Beispiel, verwenden Sie wenn möglich UID)/dev/sdc / ext4 defaults,noatime,discard,errors=remount-ro 0 1
Erstellen Sie 2 Benutzer: einen Administratorbenutzer, der sein Home-Verzeichnis auf dem USB-Stick hat, aber nur sehr wenige Dateien hat, und einen normalen Benutzer, derwerde habensein Home-Verzeichnis auf der Festplatte.
Erst jetztLegen Sie die Festplatte ein und fügen Sie die erforderlichen Festplatteninformationen hinzu,
fstab
um die Festplatte automatisch zu mounten. Fügen Sie außerdem die folgenden Parameter hinzu: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)
Nun melden Sie sich als Admin-Benutzer an und verschieben 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! :-)
Zur Info: Ich habe genau so einen 16 GB USB 2.0 MLC-Stick (mehr als genug für meinen Anwendungsfall und nicht zu teuer, er ist jetzt ungefähr 5 Jahre alt und funktioniert immer noch!)
Antwort2
Sie können das beschreibbare Dateisystem (in der Casper-RW-Datei) für ein Livemedium problemlos auf einer Festplatte ablegen. Die Einschränkung besteht darin, dass die Casper-RW-Datei auf einer FAT-Partition abgelegt werden muss. Neuere Maschinen (UEFI) haben alle eine FAT-EFI-Partition, aber diese ist normalerweise zu klein, 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 Livemedien enthalten. Angenommen, sda11 ist 10 G groß und verfügt über ein 10G-FAT-Dateisystem, das unter /mnt/sda11 gemountet ist und auf dem sich die Verzeichnisse /A, /B, /C, /D und /E befinden. Nehmen wir an, wir verwenden /A für unser persistentes Medium und legen dort ein Casper-RW ab.
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 Ihr mit Persistenz erstelltes Live-Medium und bearbeiten Sie die Dateien /boot/grub/grub.cfg und /syslinux/txt.cfg. Fügen Sie nach dem Wort "persistent" Folgendes 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 alles. 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 das Casper-RW der Festplatte sogar zurück auf das USB-Medium 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 auf 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. Allerdings scheint es ein Problem beim Herunterfahren zu geben, da die FAT-Partition nicht sauber ausgehängt wird (was keine Probleme zu verursachen scheint, aber …)