Programma di installazione dell'inganno per utilizzare btrfs root con compressione


9

Voglio installare Maverick su una partizione root BTRFS. Non per divertimento o test, ma perché ho bisogno di compressione a causa di un piccolo disco flash (4 GB).

Ora il programma di installazione 10.10 supporta finalmente btrfs, ma non è possibile abilitare il compressflag al suo interno. Posso in qualche modo ingannare l'installer? Per le versioni precedenti e ottenere LUKS è possibile preinstallare le partizioni. O è possibile un semplice monkeypatch per abilitare btrfs + compress preinstall?


Hai provato il disco alternativo (programma di installazione in modalità testo)?
Oli

@Oli: ho appena provato ora. Il programma di installazione Debian alternativo è più elaborato. Ma elenca solo flag di filesystem standard (noatime, nodev, noexec). Impedisce l'impostazione di opzioni specifiche di btrfs come compresso ssd. Senza fortuna.
Mario,

Risposte:


2

Mi sono imbattuto in questo thread come perché stavo cercando di installare Linux Mint Debian Edition su un'unità flash e l'installazione su btrfs compressi fin dall'inizio. Sebbene queste soluzioni non fossero direttamente applicabili al raggiungimento dei miei risultati, ho usato alcune di queste informazioni per raggiungere il mio obiettivo.

Il problema era che il punto in cui il programma di installazione formattava e montava la partizione e iniziava a copiare i file era uno accanto all'altro, quindi non ero in grado di eseguire l'opzione "rimonta" menzionata da altri sopra.

La versione LMDE dello script di installazione era in python (usr / lib / live-installer / installer.py). Non sono sicuro che sia lo stesso con Ubuntu, ma se lo è, questo sarà direttamente applicabile. Questo mi ha permesso di modificare lo script e aggiungere questa riga proprio sotto la riga che originariamente montava la partizione per "/"

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

of coure, "/ dev / sda3" varierà a seconda del dispositivo.

Capisco che questo è un forum di Ubuntu, ma come ho detto, è venuto fuori con la ricerca e questa soluzione sarebbe direttamente rilevante se l'installer fosse basato su Python. Siamo comunque tutti Debian qui, giusto !?


10

Un modo più semplice per farlo è quello di modificare il mountcomando dell'ambiente live.

  1. Avvia come al solito la sessione live.
  2. Sposta l' mounteseguibile in un'altra posizione:

    sudo mv /bin/mount /bin/mount.bin
    
  3. Modifica un nuovo file usando sudoedit /bin/mounte salva il seguente script (modifica le opzioni come preferisci; qui abbiamo aggiunto compress):

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

    Puoi anche abbinare dispositivi a blocchi come al /dev/sda1posto di -t btrfse catene elifper usare diverse opzioni di montaggio per diversi dispositivi e filesystem.

  4. Copia le autorizzazioni originali nel nuovo script:

    sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. Installa come al solito e la tua partizione btrfs verrà montata con le opzioni specificate (qui, compress).

  6. Al termine dell'installazione, prima di uscire dall'ambiente live, modificare il /etc/fstabsistema appena installato in modo che corrisponda alle opzioni specificate, quindi utilizzerà le stesse opzioni sui nuovi boot.

Ho usato: defaults,noatime,compress-force=lzo,space_cachecome opzioni di montaggio.

Funziona con il quantico quotidiano (30/06/12).

Ho usato la partizione btrfs come /e una partizione di swap.

I crediti vanno a questo post (in questa discussione ), che a sua volta cita questo post sul blog .


Vorrei poter triplicare questo, perché questa è la terza volta che dimentico come farlo correttamente, ed è ancora qui che finisco per cercarlo intensamente. Sebbene sia necessario utilizzare sudo sulla maggior parte dei punti, ovviamente, ciò potrebbe non essere ovvio per gli utenti meno esperti. Così bello!
DanielSmedegaard Buu

4

Subito dopo che il programma di installazione monta la partizione, potresti provare a passare a una shell e fare un mount -o remount,compress /target, questo potrebbe funzionare.


Sembrava funzionare! (Anche se ho rovinato qualcos'altro ..) Ma ha richiesto il comando completo mount -o remount,compress,ssd /dev/mapper/target /target -t btrfscon il dispositivo sorgente.
Mario,

Eccellente. Dopo alcuni test, il trucco di rimontaggio ha funzionato perfettamente. 1,2 G invece di 2,6 G usati, notevole guadagno di velocità.
Mario,

2

A partire da 13.04 (Raring Ringtail), dovresti essere in grado di installare su un volume btrfs senza compressione e quindi comprimere tutti i file su tutto il volume una volta avviato la nuova installazione.

Secondo la documentazione di Oracle, è possibile comprimere i file esistenti su un filesystem esistente deframmentandolo con l'opzione -clzo.

sudo btrfs filesystem defragment -clzo /

Passandolo la singola barra indica a btrfs di deframmentare tutti i file e le directory sul volume principale.

Vedi: http://docs.oracle.com/cd/E37670_01/E37355/html/ol_use_case1_btrfs.html

Una volta terminato, aggiungi compress = lzo (o compress = zlib se preferisci, ma lzo è consigliato per la velocità) alla riga del tuo volume in / etc / fstab e riavvia in modo che eventuali altri file scritti sul disco vengano compressi.


2

Le distribuzioni più recenti utilizzano busyboxper la maggior parte dei comandi, incluso mount. In queste versioni, /bin/mountè presente un collegamento simbolico /bin/busyboxe il collegamento simbolico deve essere denominato "mount" e non "mount.bin" per funzionare correttamente. Di conseguenza, la risposta di cui sopra di Mskje può essere modificata come segue:

  1. Avvia normalmente alla sessione live.
  2. sudo rm /bin/mount
  3. sudo mkdir /bin/orig
  4. sudo ln -s /bin/busybox /bin/orig/mount
  5. sudo nano /bin/mount - questo creerà un nuovo script.
  6. Copia questo nello script e salva (modifica le opzioni come preferisci, qui comprimi):

    #!/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 per renderlo eseguibile.

  8. Installa normalmente e la tua partizione btrfs verrà montata con le opzioni specificate (qui comprimi).
  9. Al termine dell'installazione, prima di uscire dall'ambiente live, modificare il fstabsistema appena installato in modo che corrisponda alle opzioni specificate, quindi utilizzerà le stesse opzioni sui nuovi boot.

1

Selezione manuale: / dev / sda1 come btrfs per / some ext? / avvia alcuni scambi

In un terminale: sudo bash

Premi installa

Premi invio sulla linea terminale: (sudo done) mount -t btrfs -o remount, compress / dev / sda1 / target


1

Puoi ottenere una o tutte le fantastiche nuove funzionalità di Btrfs eseguendo il comando mkfs.btrfs manualmente . Il programma di installazione alternativo ha un'opzione in qualsiasi momento per tornare a un passaggio precedente a tua scelta. puoi usarlo per, dopo che il programma di installazione crea il btrfs, crea il tuo btrfs e quindi avvia il programma di installazione nel passaggio precedente in modo che la tua fs venga utilizzata.

  1. eseguire il programma di installazione fino a dopo la fase di partizione.
  2. lasciarlo installare il sistema di base.

  3. alt-F2 vai al terminale ed esegui mkfs.btrfs - / dev / sdXY

  4. tornare al programma di installazione alt-F1
  5. premi il pulsante "torna indietro", quindi scegli di nuovo l'opzione di partizione. le impostazioni predefinite consistono nel non riformattare in modo da poter semplicemente premere continua. reinstallerà il sistema di base. dire di sì all'avvertenza di non riformattare.

  6. godere.


1

Ho funzionato sostituendo la partizione ext4 sullo stick con una partizione btrfs compressa. Questo può essere fatto usando un altro computer.

  1. Copia tutto tramite

    sudo cp -ar / ext4Partition / * / backupspace /
  2. Sostituisci la partion usando gparted con btrfs one

  3. Montare la nuova partion usando sudo mount mount -o compress / dev / yourdevice / btrfsPartition
  4. Copia di nuovo tutto

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. Aggiorna / btrfsPartition / etc / fstab ai nuovi uuidi del dispositivo e al nuovo tipo di partizione. Rimuovi opzione di rimontaggio, poiché btrfs non ha questo.
  6. reinstallare boot loader (ad es. tramite BootRepair )

Nota: le directory /btrfsParition, /ext4Partitione /backupspacepuò essere impostato come si desidera.


0

Puoi semplicemente aggiungere la compressione in un secondo momento. Apri /etc/fstabe modifica la linea per il tuo filesystem di root. Aggiungi compressalle opzioni di montaggio in questo modo:

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

Ora rimonta o riavvia e non dimenticare che / boot non può vivere su btrfs, poiché GRUB2 non lo supporta.


2
Per quanto ne so, l'aggiunta di compress in fstab non ha alcun effetto sui file esistenti (che sarà già gran parte di quel SSD da 4 GB già quando lo aggiungi solo dopo l'installazione!). Penso che la creazione e il montaggio delle partizioni preinstallate sia l'opzione migliore quando si utilizza il live-CD.
JanC

Sì, l'aggiunta dell'opzione in seguito non comprime i file. L'ultima volta ho eseguito un backup completo del file, quindi ho modificato i flag del filesystem e successivamente ho sovrascritto tutto. Molto ingombrante. Ed è solo che a tarvolte dimentica alcuni attributi di file, non sono sicuro se ho usato pax o rsync al posto di.
Mario,

Che cosa succede se installi ubuntu-minimal e installi il resto in seguito?
mniess,

0

Puoi sempre seguire l'antico proverbio cinese:

Se non ti piace quello che fa il partizionatore del programma di installazione, partizionalo tu stesso e dì al programma di installazione di installarlo su quelle partizioni.


Chi sono io per mettere in discussione i vecchi proverbi cinesi? Ma il nuovo installer 10.10 onora un montato / target? Se insiste per rimontare, tutto il mio prezioso partizionamento manuale sarebbe inutile.
Mario,

Passaggio. Se avessi ancora l'ISO, lo proverei in VirtualBox ma, di nuovo, penso che probabilmente avrai più fortuna con il programma di installazione alternativo (tende a reagire meglio alle interferenze dell'utente)
Oli

Ho appena dato un altro vortice. Entrambi gli installatori sono abbastanza smontati. Il partizionamento manuale è ancora una soluzione per LUKS, ma le opzioni di montaggio manuale non persistono per btrfs. La procedura guidata di installazione alternativa sembra generalmente meno soddisfatta delle opzioni non standard, ma almeno puoi vedere cosa sta succedendo. Il programma di installazione desktop smonta la destinazione due o tre volte.
Mario,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.