Engane o instalador para usar o btrfs root com compactação

9

Quero instalar o Maverick em uma partição raiz BTRFS. Não por diversão ou teste, mas porque eu preciso de compactação devido a um pequeno disco flash (4 GB).

Agora, o instalador 10.10 finalmente suporta btrfs, mas não há como habilitar o compresssinalizador nele. Posso enganar o instalador de alguma forma? Para versões antigas e obtenção do LUKS, você pode pré-montar partições. Ou existe um monkeypatch fácil para ativar a pré-instalação do btrfs + compress?

mario
fonte
Você já tentou o disco alternativo (instalador em modo de texto)?
Oli
@ Oli: Apenas tentei agora. O instalador alternativo do Debian é mais elaborado. Mas lista apenas os sinalizadores padrão do sistema de arquivos (noatime, nodev, noexec). Impede a configuração de opções específicas do btrfs como compressou ssd. Sem sorte
mario

Respostas:

2

Me deparei com esse segmento como porque estava procurando instalar o Linux Mint Debian Edition em uma unidade flash e instalando em btrfs compactados desde o início. Embora essas soluções não sejam diretamente aplicáveis ​​para alcançar meus resultados, usei algumas dessas informações para atingir minha meta.

O problema era que o ponto do instalador de formatar e montar a partição e iniciar a cópia dos arquivos estava próximo um do outro, por isso não consegui executar a opção "remontar" mencionada por outras pessoas acima.

A versão LMDE do script do instalador estava em python (usr / lib / live-installer / installer.py). Não tenho certeza se é o mesmo com o Ubuntu, mas se for, isso será diretamente aplicável. Isso me permitiu editar o script e adicionar essa linha logo abaixo da linha que originalmente montava a partição para "/"

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

de tribunais, o "/ dev / sda3" varia de acordo com o seu dispositivo.

Entendo que este é um fórum do Ubuntu, mas, como eu disse, surgiu com a pesquisa e essa solução seria diretamente relevante se o instalador fosse baseado em python. De qualquer forma, somos todos o Debian aqui, certo !?

CenterOrbit
fonte
10

Uma maneira mais fácil de fazer isso é alterar o mountcomando do ambiente ativo.

  1. Inicialize como de costume a sessão ao vivo.
  2. Mova o mountexecutável para outro local:

    sudo mv /bin/mount /bin/mount.bin
    
  3. Edite um novo arquivo usando sudoedit /bin/mounte salve o seguinte script nele (altere as opções que desejar; aqui adicionamos compress):

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

    Você também pode combinar dispositivos de bloco como em /dev/sda1vez de -t btrfse cadeia elifs para usar diferentes opções de montagem para diferentes dispositivos e sistemas de arquivos.

  4. Copie as permissões originais para o novo script:

    sudo chmod --reference=/bin/mount.bin /bin/mount
    
  5. Instale como de costume e sua partição btrfs será montada com as opções especificadas (aqui, compress).

  6. Após a conclusão da instalação, antes de sair do ambiente ativo, altere o /etc/fstabsistema recém-instalado para corresponder às opções especificadas, para que ele use as mesmas opções nas novas botas.

Eu usei: defaults,noatime,compress-force=lzo,space_cachecomo opções de montagem.

Isso funciona com quantal diariamente (30/6/12).

Eu usei a partição btrfs como /e uma partição swap.

Os créditos vão para este post ( neste tópico ), que por sua vez cita este post .

Msktje
fonte
Eu gostaria de poder triplicar a votação disso, porque agora é a terceira vez que esqueço como fazer isso corretamente, e ainda é aí que acabo pesquisando intensamente no Google. Embora você precise usar o sudo na maioria dos pontos, é claro, o que pode não ser óbvio para usuários menos experientes. Tão legal!
DanielSmedegaardBuus
4

Logo após o instalador montar sua partição, você pode tentar mudar para um shell e fazer um mount -o remount,compress /target, isso pode funcionar.

Michel
fonte
Isso pareceu funcionar! (Embora eu estraguei outra coisa ..) Mas era necessário o comando completo mount -o remount,compress,ssd /dev/mapper/target /target -t btrfscom o dispositivo de origem.
mario
Mais excelente. Após alguns testes, o truque de remontagem funcionou perfeitamente. 1.2G em vez de 2.6G usado, ganho de velocidade notável.
mario
2

A partir do 13.04 (Raring Ringtail), você poderá instalar em um volume btrfs sem compactação e compactar todos os arquivos no volume inteiro depois de inicializar a nova instalação.

De acordo com a documentação da Oracle, você pode compactar arquivos existentes em um sistema de arquivos existente desfragmentando-o com a opção -clzo.

sudo btrfs filesystem defragment -clzo /

Ao passar a barra, o btrfs desfragmenta todos os arquivos e diretórios do seu volume raiz.

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

Quando terminar, adicione compress = lzo (ou compress = zlib, se preferir, mas lzo é recomendado para velocidade) à linha do seu volume em / etc / fstab e reinicie para que todos os arquivos gravados no disco sejam compactados.

Geoff
fonte
2

Distribuições mais recentes usam busyboxpara a maioria dos comandos, inclusive mount. Nessas versões, /bin/mounté um link simbólico para /bin/busyboxe o link simbólico deve ser nomeado "mount", e não "mount.bin" para funcionar corretamente. Como tal, a resposta acima de Mskje pode ser alterada para o seguinte:

  1. Inicialize normalmente na sessão ao vivo.
  2. sudo rm /bin/mount
  3. sudo mkdir /bin/orig
  4. sudo ln -s /bin/busybox /bin/orig/mount
  5. sudo nano /bin/mount - isso criará um novo script.
  6. Copie isso para o script e salve (altere as opções que desejar, aqui comprima):

    #!/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 para torná-lo executável.

  8. Instale normalmente e sua partição btrfs será montada com as opções especificadas (aqui comprima).
  9. Após a conclusão da instalação, antes de sair do ambiente ativo, altere o fstabsistema recém-instalado para corresponder às opções especificadas, para que ele use as mesmas opções nas novas botas.
danBhentschel
fonte
1

Selecionando manualmente: / dev / sda1 como btrfs para / some ext? / inicializa alguma troca

Em um terminal: sudo bash

Pressione Instalar

Pressione enter na linha de terminal: (sudo done) mount -t btrfs -o remount, comprima / dev / sda1 / target

user3911
fonte
1

Você pode obter um ou todos os novos recursos interessantes do Btrfs executando o comando mkfs.btrfs manualmente . O instalador alternativo tem a opção, a qualquer momento, de voltar à etapa anterior de sua escolha. você pode usar isso para, depois que o instalador criar os btrfs, crie seus próprios btrfs e inicie o instalador na etapa anterior para que seu fs seja usado.

  1. execute o instalador até depois da fase de partição.
  2. deixe instalar o sistema básico.

  3. alt-F2 vá para o terminal e execute mkfs.btrfs - / dev / sdXY

  4. volte para o instalador alt-F1
  5. clique no botão "voltar" e escolha a opção de partição novamente. os padrões serão não reformatar, para que você possa clicar em continuar. reinstala o sistema base. diga sim ao aviso de não reformatar.

  6. desfrutar.

Arthur Ulfeldt
fonte
1

Comecei a trabalhar substituindo a partição ext4 no stick por uma partição btrfs compactada. Isso pode ser feito usando outro computador.

  1. Copiando tudo via

    sudo cp -ar / ext4Partition / * / backupspace /
  2. Substitua partição usando gparted com btrfs one

  3. Monte uma nova partição usando o sudo mount mount -o compress / dev / yourdevice / btrfsPartition
  4. Copie tudo de volta

    sudo cp -ar / backupspace / * / btrfsPartition /
  5. Atualize / btrfsPartition / etc / fstab para novos uuids de dispositivos e para o novo tipo de partição. Remova a opção remontar, pois o btrfs não possui isso.
  6. reinstalar o carregador de inicialização (por exemplo, via BootRepair )

Nota: os diretórios /btrfsParition, /ext4Partitione /backupspacepode ser configurado como você quer.

nob
fonte
0

Você pode adicionar compactação mais tarde. Abra /etc/fstabe edite a linha do seu sistema de arquivos raiz. Adicione compressàs opções de montagem assim:

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

Agora remonte ou reinicie e não esqueça que / boot não pode viver no btrfs, ainda, pois o GRUB2 não o suporta.

mniess
fonte
2
Até onde eu sei, adicionar compress no fstab não afeta os arquivos existentes (que já são uma grande parte do SSD de 4 GB quando você o adiciona após a instalação!). Eu acho que criar e montar as partições pré-instaladas é a melhor opção ao usar o live-CD.
janc
Sim, adicionar a opção posteriormente não compacta os arquivos. Da última vez, fiz um backup completo dos arquivos, alterei os sinalizadores do sistema de arquivos e depois substituímos tudo. Muito pesado. E taràs vezes esquece alguns atributos de arquivo, não tenho certeza se usei pax ou rsync no lugar.
mario
E se você apenas instalar o ubuntu-minimal e instalar o resto mais tarde?
Mniess 12/10/10
0

Você sempre pode seguir o antigo provérbio chinês:

Se você não gostar do que o particionador do instalador faz, particione-o você mesmo e peça ao instalador para instalar essas partições.

Oli
fonte
Quem sou eu para questionar os antigos provérbios chineses? Mas o novo instalador 10.10 honra um alvo / montado? Se ele insistir na remontagem, todo o meu precioso particionamento manual seria em vão.
mario
Passar. Se eu tivesse a ISO ainda, eu testá-lo no VirtualBox, mas novamente, eu acho que você provavelmente terá melhor sorte com o instalador alternativo (que tende a reagir melhor a user-interferência)
Oli
Apenas deu outro giro. Ambos os instaladores são bastante desmontáveis. O particionamento manual ainda é uma solução para LUKS, mas as opções de montagem manual não persistem no btrfs. O assistente de instalação alternativa geralmente parece menos satisfeito com as opções não padrão, mas pelo menos você pode ver o que está acontecendo. O instalador da área de trabalho desmonta o destino duas ou três vezes.
mario