web-dev-qa-db-fra.com

Trick installer pour utiliser btrfs root avec compression

Je souhaite installer Maverick sur une partition racine BTRFS. Pas pour le plaisir ou les tests, mais parce que j'ai besoin de compression à cause d'un petit disque flash (4 Go).

Maintenant, le programme d’installation 10.10 supporte enfin btrfs, mais il n’ya aucun moyen d’activer le drapeau compress. Puis-je tromper l'installateur en quelque sorte? Pour les anciennes versions et pour obtenir LUKS, vous pouvez pré-monter des partitions. Ou bien existe-t-il un monkeypatch simple pour activer btrfs + compress pre install?

9
mario

Je suis tombé sur ce fil parce que je cherchais à installer Linux Mint Debian Edition sur un lecteur flash et à l’installer sur btrfs compressé dès le début. Bien que ces solutions ne soient pas directement applicables pour atteindre mes résultats, j'ai utilisé certaines de ces informations pour atteindre ma cible.

Le problème était que l’intérêt du programme d’installation de formater et de monter la partition et de commencer à copier les fichiers était juste à côté, de sorte que je n’étais pas en mesure d’effectuer l’option de "remontage" mentionnée par d’autres ci-dessus.

La version LMDE du script du programme d’installation se trouvait dans python (usr/lib/live-installer/installer.py). Je ne sais pas si c'est la même chose avec Ubuntu, mais si c'est le cas, ce sera directement applicable. Cela m'a permis d'éditer le script et d'ajouter cette ligne juste sous la ligne qui montait la partition à l'origine de "/"

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

"/ dev/sda3" varie en fonction de votre appareil.

Je comprends que c’est un forum Ubuntu, mais comme je l’ai dit, la recherche a été effectuée et cette solution serait directement pertinente si le programme d’installation est basé sur python. Nous sommes tous Debian ici de toute façon, non!?

2
CenterOrbit

Une méthode plus simple consiste à modifier la commande mount de l’environnement réel.

  1. Démarrez comme d'habitude pour la session en direct.
  2. Déplacez l'exécutable mount vers un autre emplacement:

    Sudo mv /bin/mount /bin/mount.bin
    
  3. Editez un nouveau fichier en utilisant sudoedit /bin/mount et sauvegardez-y le script suivant (modifiez les options à votre guise; ici nous avons ajouté compress):

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

    Vous pouvez également faire correspondre des périphériques de bloc tels que /dev/sda1 au lieu de -t btrfs et une chaîne Elifs pour utiliser différentes options de montage pour différents périphériques et systèmes de fichiers.

  4. Copiez les autorisations d'origine sur le nouveau script:

    Sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. Installez comme d'habitude et votre partition btrfs sera montée avec les options spécifiées (ici, compress).

  6. Une fois l'installation terminée, avant de quitter l'environnement actif, modifiez le /etc/fstab du système nouvellement installé pour qu'il corresponde aux options spécifiées afin qu'il utilise les mêmes options lors de nouveaux démarrages.

J'ai utilisé: defaults,noatime,compress-force=lzo,space_cache comme options de montage.

Cela fonctionne avec quantal daily (30/6/12).

J'ai utilisé la partition btrfs comme / et une partition de swap.

Les crédits vont à cet article (dans ce fil ), qui cite à son tour cet article de blog .

10
Msktje

Juste après que le programme d'installation monte votre partition, vous pouvez essayer de passer à un shell et faire un mount -o remount,compress /target, cela pourrait fonctionner.

4
Michel

À compter de la version 13.04 (Raring Ringtail), vous devriez pouvoir installer sur un volume btrfs sans compression, puis compresser tous les fichiers du volume entier une fois que vous avez démarré la nouvelle installation.

Selon la documentation d'Oracle, vous pouvez compresser des fichiers existants sur un système de fichiers existant en le défragmentant à l'aide de l'option -clzo.

Sudo btrfs filesystem defragment -clzo /

Le passage de la barre oblique unique indique à btrfs de défragmenter tous les fichiers et répertoires de votre volume racine.

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

Une fois que vous avez terminé, ajoutez le paramètre compress = lzo (ou compress = zlib si vous préférez, mais lzo est recommandé pour la rapidité) à la ligne de votre volume dans/etc/fstab et redémarrez-le pour que tous les fichiers écrits sur le disque soient compressés.

2
Geoff

Les distributions plus récentes utilisent busybox pour la plupart des commandes, y compris mount. Dans ces versions, /bin/mount est un lien symbolique vers /bin/busybox et le lien symbolique doit s'appelle "mount" et non "mount.bin" afin de fonctionner correctement. En tant que tel, la réponse ci-dessus de Mskje peut être modifiée comme suit:

  1. Démarrez normalement pour la session en direct.
  2. Sudo rm /bin/mount
  3. Sudo mkdir /bin/orig
  4. Sudo ln -s /bin/busybox /bin/orig/mount
  5. Sudo nano /bin/mount - cela créera un nouveau script.
  6. Copiez ceci dans le script et sauvegardez (modifiez les options comme vous le souhaitez, ici compresser):

    #!/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 pour le rendre exécutable.

  8. Installez normalement et votre partition btrfs sera montée avec les options spécifiées (ici compresser).
  9. Une fois l'installation terminée, avant de quitter l'environnement actif, modifiez la fstab du système nouvellement installé pour qu'elle corresponde aux options spécifiées, afin qu'il utilise les mêmes options pour les nouveaux démarrages.
1
danBhentschel

Sélection manuelle:/dev/sda1 en tant que btrfs pour/some ext?/boot des échanges

Dans un terminal: Sudo bash

Presse installer

Appuyez sur enter sur la ligne de terminal: (Sudo done) mount -t btrfs -o remount, compressez/dev/sda1/target

1
user3911

Je l'ai obtenu en remplaçant la partition ext4 sur le stick par une partition compressée btrfs. Cela peut être fait en utilisant un autre ordinateur.

  1. Tout copier via

    Sudo cp -ar/ext4Partition/*/backupspace /
  2. Remplacer la partition en utilisant gparted avec btrfs one

  3. Monter une nouvelle partition à l'aide de Sudo mount mount -o compress/dev/yourdevice/btrfsPartition
  4. Tout recopier

    Sudo cp -ar/backupspace/*/btrfsPartition /
  5. Mettez à jour/btrfsPartition/etc/fstab vers les nouveaux uuids de périphériques et le nouveau type de partition. Remove remount Option, car btrfs ne l’a pas.
  6. réinstallez le chargeur de démarrage (par exemple, via BootRepair )

Remarque: les répertoires /btrfsParition, /ext4Partition et /backupspace peuvent être définis à votre guise.

1
nob

Vous pouvez obtenir tout ou partie des nouvelles fonctionnalités intéressantes de Btrfs en exécuter manuellement la commande mkfs.btrfs. le installateur alternatif a la possibilité à tout moment de revenir à une étape précédente de votre choix. vous pouvez l'utiliser pour, après que l'installateur ait créé les btrfs, créer vos propres btrfs, puis démarrer l'installateur à l'étape précédente pour que votre fs soit utilisé.

  1. exécutez le programme d'installation jusqu'après la phase de partition.
  2. laissez-le installer le système de base.

  3. alt-F2 aller au terminal et lancer mkfs.btrfs -/dev/sdXY

  4. retournez à l'installateur alt-F1
  5. appuyez sur le bouton "Revenir" puis choisissez à nouveau l'option de partition. les valeurs par défaut seront de ne pas reformater afin que vous puissiez simplement cliquer sur Continuer. il va réinstaller le système de base. dire oui à l'avertissement de ne pas reformater.

  6. prendre plaisir.

1
Arthur Ulfeldt

Vous pouvez simplement ajouter une compression plus tard. Ouvrez /etc/fstab et modifiez la ligne de votre système de fichiers racine. Ajoutez compress aux options de montage comme ceci:

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

Maintenant, remontez ou redémarrez et n'oubliez pas que/boot ne peut pas vivre sur btrfs, car GRUB2 ne le supporte pas.

0
mniess

Vous pouvez toujours suivre l'ancien proverbe chinois:

Si vous n'aimez pas le rôle du partitionneur du programme d'installation, partitionnez-le vous-même et dites au programme d'installation de l'installer sur ces partitions.

0
Oli