Installer Trick pour utiliser la racine btrfs avec compression

9

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

Maintenant, le programme d'installation 10.10 prend enfin en charge btrfs, mais il n'y a aucun moyen d'activer l' compressindicateur. Puis-je tromper le programme d'installation d'une manière ou d'une autre? Pour les anciennes versions et l'obtention de LUKS, vous pouvez pré-monter des partitions. Ou existe-t-il un monkeypatch simple pour activer btrfs + compress pré-installation?

mario
la source
Avez-vous essayé le disque alternatif (programme d'installation en mode texte)?
Oli
@Oli: Je viens de l'essayer maintenant. L'installateur Debian -alternate est plus élaboré. Mais il ne répertorie que les indicateurs de système de fichiers standard (noatime, nodev, noexec). Il empêche de définir des options spécifiques à btrfs comme compressou ssd. Pas de chance.
mario

Réponses:

2

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

Le problème était que le point de l'installateur de formater et de monter la partition et de démarrer la copie des fichiers était juste à côté les uns des autres, donc je n'ai pas pu effectuer l'option de "remontage" mentionnée par d'autres ci-dessus.

La version LMDE du script d'installation était en 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 de modifier le script et d'ajouter cette ligne juste sous la ligne qui montait à l'origine la partition pour "/"

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

des cours, le "/ dev / sda3" variera en fonction de votre appareil.

Je comprends que c'est un forum Ubuntu, mais comme je l'ai dit, il est venu avec la recherche 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!?

CenterOrbit
la source
10

Un moyen plus simple de le faire consiste à modifier la mountcommande de l'environnement réel.

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

    sudo mv /bin/mount /bin/mount.bin
    
  3. Modifiez un nouveau fichier en utilisant sudoedit /bin/mountet enregistrez-y le script suivant (modifiez les options comme vous le souhaitez; 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 comme /dev/sda1au lieu de -t btrfset des chaînes elifpour 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 en direct, modifiez le /etc/fstabsystème nouvellement installé pour qu'il corresponde aux options spécifiées, afin qu'il utilise les mêmes options sur les nouvelles bottes.

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

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

J'ai utilisé la partition btrfs en tant que /et une partition de swap.

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

Msktje
la source
Je souhaiterais pouvoir tripler ce vote, car c'est maintenant la troisième fois que j'oublie comment le faire correctement, et c'est toujours là que je finis par googler intensivement. Bien que vous deviez utiliser sudo sur la plupart des points, bien sûr, ce qui pourrait ne pas être évident pour les utilisateurs moins expérimentés. Trop cool!
DanielSmedegaardBuus
4

Juste après que l'installateur ait monté votre partition, vous pouvez essayer de basculer vers un shell et faire un mount -o remount,compress /target, cela pourrait fonctionner.

Michel
la source
Cela semblait fonctionner! (Même si j'ai foiré quelque chose d'autre ..) Mais cela nécessitait la commande complète mount -o remount,compress,ssd /dev/mapper/target /target -t btrfsavec le périphérique source.
mario
Le plus excellent. Après quelques tests, l'astuce de remontage a fonctionné parfaitement. 1.2G au lieu de 2.6G utilisé, gain de vitesse notable.
mario
2

À partir de la version 13.04 (Raring Ringtail), vous devriez pouvoir installer sur un volume btrfs sans compression, puis compresser chaque fichier sur l'ensemble du volume une fois que vous avez démarré vers 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 avec l'option -clzo.

sudo btrfs filesystem defragment -clzo /

En le passant, 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 compress = lzo (ou compress = zlib si vous préférez, mais lzo est recommandé pour la vitesse) à la ligne de votre volume dans / etc / fstab et redémarrez afin que tous les autres fichiers écrits sur le disque soient compressés.

Geoff
la source
2

Des distributions plus récentes sont utilisées busyboxpour la plupart des commandes, notamment mount. Dans ces versions, /bin/mountest un lien symbolique vers /bin/busyboxet le lien symbolique doit être nommé "mount" et non "mount.bin" pour fonctionner correctement. En tant que tel, la réponse ci-dessus de Mskje peut être modifiée comme suit:

  1. Démarrez normalement lors de 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 enregistrez (modifiez les options comme vous le souhaitez, compressez ici):

    #!/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 comme d'habitude 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 en direct, modifiez le fstabsystème nouvellement installé pour qu'il corresponde aux options spécifiées, afin qu'il utilise les mêmes options sur les nouvelles bottes.
danBhentschel
la source
1

Sélection manuelle: / dev / sda1 comme btrfs pour / some ext? / boot certains swap

Dans un terminal: sudo bash

Installation par la presse

Appuyez sur Entrée sur la ligne du terminal: (sudo done) mount -t btrfs -o remount, compress / dev / sda1 / target

user3911
la source
1

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

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

  3. alt-F2 accédez au terminal et exécutez mkfs.btrfs - / dev / sdXY

  4. revenir à l'installateur alt-F1
  5. appuyez sur le "bouton de retour" puis choisissez à nouveau l'option de partition. les valeurs par défaut seront de ne pas reformater, vous pouvez donc simplement continuer. il réinstallera le système de base. dites oui à l'avertissement de ne pas reformater.

  6. prendre plaisir.

Arthur Ulfeldt
la source
1

Je l'ai fait fonctionner en remplaçant la partition ext4 sur le bâton par une partition btrfs compressée. 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. Montez une nouvelle partition en utilisant sudo mount mount -o compress / dev / yourdevice / btrfsPartition
  4. Copiez tout

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. Mettez à jour / btrfsPartition / etc / fstab vers les nouveaux uuids de périphérique et le nouveau type de partition. Supprimer l'option de remontage, car btrfs ne l'a pas.
  6. réinstaller le chargeur de démarrage (par exemple via BootRepair )

Remarque: les répertoires /btrfsParition, /ext4Partitionet /backupspacepeuvent être définis comme vous le souhaitez.

nob
la source
0

Vous pouvez simplement ajouter une compression plus tard. Ouvrez /etc/fstabet modifiez la ligne de votre système de fichiers racine. Ajoutez compressaux 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 encore vivre sur btrfs, car GRUB2 ne le prend pas en charge.

mniess
la source
2
Pour autant que je sache, l'ajout de compress dans fstab n'a aucun effet sur les fichiers existants (qui constitueront déjà une grande partie de ce SSD de 4 Go lorsque vous ne l'ajoutez qu'après l'installation!). Je pense que la création et le montage des partitions avant l'installation est la meilleure option lors de l'utilisation du live-CD.
JanC
Oui, l'ajout de l'option plus tard ne compresse pas les fichiers. La dernière fois, j'ai fait une sauvegarde complète des fichiers, puis changé les drapeaux du système de fichiers, puis j'ai tout écrasé. Très encombrant. Et c'est juste que tarparfois oublie quelques attributs de fichier, je ne sais pas si j'ai utilisé pax ou rsync à la place.
mario
Et si vous installez juste ubuntu-minimal et installez le reste plus tard?
mniess
0

Vous pouvez toujours suivre l'ancien proverbe chinois:

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

Oli
la source
Qui suis-je pour remettre en question les vieux proverbes chinois? Mais le nouveau programme d'installation 10.10 respecte-t-il une cible / montée? S'il persiste à remonter, tout mon précieux partitionnement manuel serait vain.
mario
Passer. Si j'avais encore l'ISO, je le testerais dans VirtualBox mais encore une fois, je pense que vous aurez probablement plus de chance avec l'installateur alternatif (il a tendance à mieux réagir aux interférences de l'utilisateur)
Oli
Je lui ai juste donné un autre tourbillon. Les deux installateurs sont assez désassemblés. Le partitionnement manuel est toujours une solution pour LUKS, mais les options de montage manuel ne persistent pas pour btrfs. L'assistant d'installation alternative semble généralement moins satisfait des options non standard, mais au moins vous pouvez voir ce qui se passe. Le programme d'installation de bureau démonte la cible deux ou trois fois.
mario