it-swarm.com.de

Trick Installer, um btrfs root mit Komprimierung zu verwenden

Ich möchte Maverick auf einer BTRFS-Root-Partition installieren. Nicht zum Spaß oder Testen, sondern weil ich wegen einer kleinen Flash-Disk (4GB) Komprimierung brauche.

Jetzt unterstützt das 10.10-Installationsprogramm endlich btrfs, aber es gibt keine Möglichkeit, das compress -Flag darin zu aktivieren. Kann ich den Installer irgendwie austricksen? Für ältere Versionen und das Abrufen von LUKS können Sie Partitionen vorinstallieren. Oder gibt es ein einfaches Monkeypatch, mit dem btrfs + compress vor der Installation aktiviert werden kann?

9
mario

Ich bin auf diesen Thread gestoßen, weil ich Linux Mint Debian Edition auf einem Flash-Laufwerk installieren und von Anfang an auf komprimierten Btrfs installieren wollte. Obwohl diese Lösungen nicht direkt auf das Erreichen meiner Ergebnisse anwendbar waren, habe ich einige dieser Informationen verwendet, um mein Ziel zu erreichen.

Das Problem war, dass der Punkt, an dem das Installationsprogramm die Partition formatierte und anbrachte und mit dem Kopieren von Dateien begann, direkt nebeneinander lag, da ich die von anderen oben erwähnte Option "remount" nicht ausführen konnte.

Die LMDE-Version des Installationsskripts befand sich in python (usr/lib/live-installer/installer.py). Ich bin mir nicht sicher, ob es mit Ubuntu dasselbe ist, aber wenn ja, wird dies direkt zutreffen. Dadurch konnte ich das Skript bearbeiten und diese Zeile direkt unter der Zeile einfügen, die ursprünglich die Partition für "/" bereitgestellt hat.

os.system("mount -o remount,compress /dev/sda3 /target -t btrfs")

natürlich wird "/ dev/sda3" je nach Gerät variieren.

Ich verstehe, dass dies ein Ubuntu-Forum ist, aber wie ich bereits sagte, kam es zu der Suche und diese Lösung wäre direkt relevant, wenn das Installationsprogramm auf python basiert. Wir sind sowieso alle Debian hier, oder?

2
CenterOrbit

Eine einfachere Möglichkeit besteht darin, den Befehl mount der Live-Umgebung zu ändern.

  1. Starten Sie die Live-Sitzung wie gewohnt.
  2. Verschieben Sie die ausführbare Datei mount an einen anderen Speicherort:

    Sudo mv /bin/mount /bin/mount.bin
    
  3. Bearbeiten Sie eine neue Datei mit sudoedit /bin/mount und speichern Sie das folgende Skript darin (ändern Sie die Optionen nach Ihren Wünschen; hier haben wir compress hinzugefügt):

    #!/bin/sh
    if echo "[email protected]" | grep -q -- "-t btrfs"; then
        /bin/mount.bin "[email protected]" -o compress
    else
        /bin/mount.bin "[email protected]"
    fi
    

    Sie können auch Blockgeräte wie /dev/sda1 anstelle von -t btrfs und Chain Elifs zuordnen, um unterschiedliche Mount-Optionen für verschiedene Geräte und Dateisysteme zu verwenden.

  4. Kopieren Sie die ursprünglichen Berechtigungen in das neue Skript:

    Sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. Wenn Sie wie gewohnt installieren, wird Ihre btrfs-Partition mit den angegebenen Optionen gemountet (hier compress).

  6. Ändern Sie nach Abschluss der Installation vor dem Verlassen der Live-Umgebung den /etc/fstab des neu installierten Systems so, dass er den angegebenen Optionen entspricht, sodass für neue Starts dieselben Optionen verwendet werden.

Ich habe: defaults,noatime,compress-force=lzo,space_cache als Mount-Optionen verwendet.

Dies funktioniert mit quantal daily (30/6/12).

Ich habe die btrfs-Partition als / und als Swap-Partition verwendet.

Credits gehen an diesen Beitrag (in diesen Thread ), der wiederum diesen Blog-Beitrag zitiert.

10
Msktje

Kurz nachdem das Installationsprogramm Ihre Partition gemountet hat, könnten Sie versuchen, zu einer Shell zu wechseln und einen mount -o remount,compress /target auszuführen. Dies könnte funktionieren.

4
Michel

Ab 13.04 (Raring Ringtail) sollten Sie in der Lage sein, auf einem btrfs-Volume ohne Komprimierung zu installieren und anschließend jede Datei auf dem gesamten Volume zu komprimieren, sobald Sie auf die neue Installation hochgefahren haben.

Laut Oracle-Dokumentation können Sie vorhandene Dateien in einem vorhandenen Dateisystem komprimieren, indem Sie es mit der Option -clzo defragmentieren.

Sudo btrfs filesystem defragment -clzo /

Wenn Sie den einzelnen Schrägstrich eingeben, wird btrfs angewiesen, alle Dateien und Verzeichnisse auf Ihrem Root-Volume zu defragmentieren.

Siehe: http://docs.Oracle.com/cd/E37670_01/E37355/html/ol_use_case1_btrfs.html

Wenn Sie fertig sind, fügen Sie die Datei compress = lzo (oder compress = zlib, wenn Sie dies vorziehen, aber lzo wird aus Gründen der Geschwindigkeit empfohlen) in die Zeile Ihres Volumes in/etc/fstab ein und starten Sie das System neu, damit alle weiteren auf die Festplatte geschriebenen Dateien komprimiert werden.

2
Geoff

Neuere Distributionen verwenden busybox für die meisten Befehle, einschließlich mount. In diesen Releases ist /bin/mount ein Symlink zu /bin/busybox und der Symlink muss "mount" und nicht "mount.bin" heißen, um korrekt zu funktionieren. Daher kann die obige Antwort von Mskje wie folgt geändert werden:

  1. Starten Sie die Live-Sitzung wie gewohnt.
  2. Sudo rm /bin/mount
  3. Sudo mkdir /bin/orig
  4. Sudo ln -s /bin/busybox /bin/orig/mount
  5. Sudo nano /bin/mount - Hiermit wird ein neues Skript erstellt.
  6. Kopiere dies in das Skript und speichere (ändere die Optionen, hier komprimiere):

    #!/bin/sh  
    if echo [email protected] | grep "btrfs" >/dev/null; then  
        /bin/orig/mount [email protected] -o compress  
    else  
        /bin/orig/mount [email protected]  
    fi
    
  7. Sudo chmod 755 /bin/mount um es ausführbar zu machen.

  8. Installieren Sie es wie gewohnt und Ihre btrfs-Partition wird mit den angegebenen Optionen gemountet (hier komprimieren).
  9. Ändern Sie nach Abschluss der Installation vor dem Verlassen der Live-Umgebung das fstab des neu installierten Systems so, dass es den angegebenen Optionen entspricht, sodass für neue Starts dieselben Optionen verwendet werden.
1
danBhentschel

Manuelle Auswahl:/dev/sda1 als btrfs für/some ext? Ich starte einen Swap

In einem Terminal: Sudo-Bash

Klicken Sie auf Installieren

Drücken Sie die Eingabetaste in der Terminalzeile: (Sudo done) mount -t btrfs -o remount, compress/dev/sda1/target

1
user3911

Ich habe es funktioniert, indem ich die ext4-Partition auf dem Stick durch eine komprimierte btrfs-Partition ersetzt habe. Dies kann mit einem anderen Computer erfolgen.

  1. Alles kopieren über

    Sudo cp -ar/ext4Partition/*/backupspace /
  2. Ersetzen Sie die Partition mit gparted durch btrfs one

  3. Mounten Sie eine neue Partition mit Sudo mount mount -o compress/dev/yourdevice/btrfsPartition
  4. Alles zurückschreiben

    Sudo cp -ar/backupspace/*/btrfsPartition /
  5. Aktualisieren Sie/btrfsPartition/etc/fstab auf die neuen Geräte-UUIDs und den neuen Partitionstyp. Entferne remount Option, da btrfs dies nicht hat.
  6. installieren Sie den Bootloader neu (z. B. über BootRepair )

Hinweis: Die Verzeichnisse /btrfsParition, /ext4Partition und /backupspace können beliebig eingestellt werden.

1
nob

Sie können einige oder alle der coolen neuen Btrfs-Funktionen von herunterladen führen Sie den Befehl mkfs.btrfs manuell aus. Das alternatives Installationsprogramm Sie können jederzeit zu einem vorherigen Schritt Ihrer Wahl zurückkehren. Sie können dies verwenden, um, nachdem das Installationsprogramm das BTRFS erstellt hat, Ihr eigenes BTRFS zu erstellen und dann das Installationsprogramm im vorherigen Schritt zu starten, damit Ihr Fs verwendet wird.

  1. führen Sie das Installationsprogramm bis nach der Partitionsphase aus.
  2. lassen Sie es das Basissystem installieren.

  3. alt-F2 gehe zum Terminal und starte mkfs.btrfs -/dev/sdXY

  4. gehe zurück zum installer alt-F1
  5. klicken Sie auf die Schaltfläche "Zurück" und wählen Sie die Partitionsoption erneut aus. Die Standardeinstellungen sind "Nicht neu formatieren", sodass Sie einfach auf "Weiter" klicken können. Das Basissystem wird neu installiert. Sagen Sie Ja zu der Warnung, dass keine Neuformatierung erfolgt.

  6. genießen.

1
Arthur Ulfeldt

Sie können die Komprimierung später einfach hinzufügen. Öffnen Sie /etc/fstab und bearbeiten Sie die Zeile für Ihr Root-Dateisystem. Fügen Sie compress zu den Mount-Optionen wie folgt hinzu:

UUID=0c8e6d48-e6b3-425a-ab33-24205a9cb586 / btrfs defaults,compress 0 1

Jetzt entweder erneut einbinden oder neu starten und nicht vergessen, dass/boot noch nicht auf btrfs laufen kann, da GRUB2 dies nicht unterstützt.

0
mniess

Man konnte immer dem alten chinesischen Sprichwort folgen:

Wenn Sie nicht mögen, was der Installer-Partitionierer macht, partitionieren Sie ihn selbst und weisen Sie den Installer an, auf diesen Partitionen zu installieren.

0
Oli