Trick-Installer, um btrfs root mit Komprimierung zu verwenden

9

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

Jetzt unterstützt das 10.10-Installationsprogramm endlich btrfs, aber es gibt keine Möglichkeit, das compressFlag darin zu aktivieren . Kann ich den Installer irgendwie austricksen? Für alte Versionen und LUKS können Sie Partitionen vormontieren. Oder ist ein einfaches Monkeypatch möglich, um die Vorinstallation von btrfs + compress zu aktivieren?

Mario
quelle
Haben Sie die alternative Festplatte (Textmodus-Installationsprogramm) ausprobiert?
Oli
@Oli: Hab es gerade versucht. Das alternative Debian-Installationsprogramm ist aufwändiger. Es werden jedoch nur Standard-Dateisystem-Flags (noatime, nodev, noexec) aufgelistet. Es verhindert das Festlegen von btrfs-spezifischen Optionen wie compressoder ssd. Kein Glück.
Mario

Antworten:

2

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 bereitstellte 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 nicht sicher, ob es mit Ubuntu dasselbe ist, aber wenn es so ist, wird dies direkt anwendbar sein. Dadurch konnte ich das Skript bearbeiten und diese Zeile direkt unter der Zeile hinzufügen, in der die Partition ursprünglich für "/" bereitgestellt wurde.

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

Natürlich variiert "/ dev / sda3" je nach Gerät.

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

CenterOrbit
quelle
10

Eine einfachere Möglichkeit, dies zu tun, besteht darin, den mountBefehl der Live-Umgebung zu ändern .

  1. Booten Sie wie gewohnt zur Live-Sitzung.
  2. Verschieben Sie die mountausführbare Datei an einen anderen Speicherort:

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

    #!/bin/sh
    if echo "$@" | grep -q -- "-t btrfs"; then
        /bin/mount.bin "$@" -o compress
    else
        /bin/mount.bin "$@"
    fi
    

    Sie können auch Blockgeräte wie /dev/sda1anstelle von -t btrfsund chain elifs abgleichen, um verschiedene 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. Installieren Sie wie gewohnt und Ihre btrfs-Partition wird mit den angegebenen Optionen (hier compress) bereitgestellt .

  6. Ändern Sie nach Abschluss der Installation vor dem Beenden der Live-Umgebung /etc/fstabdas neu installierte System so, dass es den angegebenen Optionen entspricht, sodass bei neuen Startvorgängen dieselben Optionen verwendet werden.

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

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

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

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

Msktje
quelle
Ich wünschte, ich könnte dies dreimal abstimmen, denn dies ist jetzt das dritte Mal, dass ich vergesse, wie man das richtig macht, und hier google ich immer noch intensiv danach. Natürlich müssen Sie sudo in den meisten Punkten verwenden, was für weniger erfahrene Benutzer möglicherweise nicht offensichtlich ist. So cool!
DanielSmedegaardBuus
4

Kurz nachdem das Installationsprogramm Ihre Partition bereitgestellt hat, können Sie versuchen, zu einer Shell zu wechseln und eine auszuführen mount -o remount,compress /target. Dies funktioniert möglicherweise.

Michel
quelle
Das schien zu funktionieren! (Obwohl ich etwas anderes vermasselt habe ..) Aber es erforderte den vollständigen Befehl mount -o remount,compress,ssd /dev/mapper/target /target -t btrfsmit dem Quellgerät.
Mario
Allerbeste. Nach einigen Tests funktionierte der Remount-Trick einwandfrei. 1,2 G statt 2,6 G verwendet, spürbare Geschwindigkeitssteigerung.
Mario
2

Ab 13.04 (Raring Ringtail) sollten Sie in der Lage sein, ohne Komprimierung auf einem btrfs-Volume zu installieren und dann jede Datei auf dem gesamten Volume zu komprimieren, sobald Sie mit der neuen Installation gestartet sind.

Gemäß der Dokumentation von Oracle 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 übergeben, 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 komprimieren = lzo (oder komprimieren = zlib, wenn Sie dies bevorzugen, aber lzo wird aus Gründen der Geschwindigkeit empfohlen) zur Zeile Ihres Volumes in / etc / fstab hinzu und starten Sie den Computer neu, damit alle weiteren auf die Festplatte geschriebenen Dateien komprimiert werden.

Geoff
quelle
2

Neuere Distributionen werden busyboxfür die meisten Befehle verwendet, einschließlich mount. In diesen Versionen /bin/mountist ein Symlink zu /bin/busyboxund 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. Booten Sie wie gewohnt zur Live-Sitzung.
  2. sudo rm /bin/mount
  3. sudo mkdir /bin/orig
  4. sudo ln -s /bin/busybox /bin/orig/mount
  5. sudo nano /bin/mount - Dadurch wird ein neues Skript erstellt.
  6. Kopieren Sie dies in das Skript und speichern Sie es (ändern Sie die Optionen nach Belieben, hier komprimieren):

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

  8. Bei normaler Installation wird Ihre btrfs-Partition mit den angegebenen Optionen bereitgestellt (hier komprimieren).
  9. Ändern Sie nach Abschluss der Installation vor dem Beenden der Live-Umgebung fstabdas neu installierte System so, dass es den angegebenen Optionen entspricht, sodass bei neuen Startvorgängen dieselben Optionen verwendet werden.
danBhentschel
quelle
1

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

In einem Terminal: Sudo Bash

Klicken Sie auf Installieren

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

user3911
quelle
1

Sie können einige oder alle der coolen neuen Btrfs-Funktionen herunterladen, indem Sie den Befehl mkfs.btrfs manuell ausführen . Das alternative Installationsprogramm hat jederzeit die Möglichkeit, zu einem vorherigen Schritt Ihrer Wahl zurückzukehren. Sie können dies verwenden, um, nachdem das Installationsprogramm die btrfs erstellt hat, Ihre eigenen btrfs zu erstellen und das Installationsprogramm dann im vorherigen Schritt zu starten, damit Ihre fs verwendet werden.

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

  3. Alt-F2 Gehen Sie zum Terminal und führen Sie mkfs.btrfs - / dev / sdXY aus

  4. Gehen Sie zurück zum Installationsprogramm Alt-F1
  5. Klicken Sie auf die Schaltfläche "Zurück" und wählen Sie die Partitionsoption erneut aus. Die Standardeinstellung ist, nicht neu zu formatieren, sodass Sie einfach auf Weiter klicken können. Das Basissystem wird erneut installiert. Sagen Sie Ja zu der Warnung, dass die Formatierung nicht neu erfolgt.

  6. genießen.

Arthur Ulfeldt
quelle
1

Ich habe es zum Laufen gebracht, 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. Kopiere alles zurück

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. Aktualisieren Sie / btrfsPartition / etc / fstab auf neue Geräte-UUids und auf einen neuen Partitionstyp. Remount-Option entfernen, da btrfs dies nicht hat.
  6. Installieren Sie den Bootloader neu (z. B. über BootRepair ).

Hinweis: Die Verzeichnisse /btrfsParition, /ext4Partitionund /backupspacekann so eingestellt werden , wie Sie wollen.

nob
quelle
0

Sie können die Komprimierung später einfach hinzufügen. Öffnen /etc/fstabund bearbeiten Sie die Zeile für Ihr Root-Dateisystem. Fügen Sie compressden Mount-Optionen Folgendes hinzu:

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

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

mniess
quelle
2
Soweit ich weiß, hat das Hinzufügen von komprimieren in fstab keine Auswirkungen auf vorhandene Dateien (was bereits einen großen Teil dieser 4-GB-SSD ausmacht, wenn Sie sie erst nach der Installation hinzufügen!). Ich denke, das Erstellen und Mounten der Partitionen vor der Installation ist die beste Option, wenn Sie die Live-CD verwenden.
Januar
Ja, wenn Sie die Option später hinzufügen, werden die Dateien nicht komprimiert. Das letzte Mal habe ich eine vollständige Dateisicherung durchgeführt, dann die Dateisystem-Flags geändert und anschließend alles überschrieben. Sehr umständlich. Und es ist nur so, dass tarmanchmal ein paar Dateiattribute vergessen werden, nicht sicher, ob ich stattdessen pax oder rsync verwendet habe.
Mario
Was ist, wenn Sie nur Ubuntu-Minimal installieren und den Rest später installieren?
Mniess
0

Man konnte immer dem alten chinesischen Sprichwort folgen:

Wenn Ihnen die Funktionsweise des Installationsprogramms des Installationsprogramms nicht gefällt, partitionieren Sie es selbst und weisen Sie das Installationsprogramm an, es auf diesen Partitionen zu installieren.

Oli
quelle
Wer bin ich, um alte chinesische Sprichwörter in Frage zu stellen? Aber ehrt der neue 10.10-Installer ein Mounted / Target? Wenn es darauf besteht, erneut zu montieren, wäre all meine wertvolle manuelle Partitionierung vergebens.
Mario
Bestehen. Wenn ich die ISO noch hätte, würde ich sie in VirtualBox testen, aber ich denke, Sie werden wahrscheinlich mehr Glück mit dem alternativen Installationsprogramm haben (es reagiert tendenziell besser auf Benutzereingriffe)
Oli
Ich habe es nur noch einmal gewirbelt. Beide Installer sind ziemlich unmount-glücklich. Die manuelle Partitionierung ist immer noch eine Lösung für LUKS, aber die manuellen Mount-Optionen bleiben für btrfs nicht bestehen. Der Assistent für alternative Installationen scheint im Allgemeinen weniger zufrieden mit nicht standardmäßigen Optionen zu sein, aber zumindest können Sie sehen, was los ist. Das Desktop-Installationsprogramm hebt das Ziel zwei- oder dreimal auf.
Mario