Instalador do truque para usar a raiz do btrfs com compactação

8

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

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

    
por mario 12.10.2010 / 00:58

10 respostas

2

Eu me deparei com esta discussão porque eu estava olhando para instalar o Linux Mint Debian Edition em uma unidade flash e instalar em btrfs comprimidos desde o início. Embora essas soluções não fossem diretamente aplicáveis para alcançar meus resultados, usei algumas dessas informações para alcançar minha meta.

O problema era que o ponto em que o instalador formatava e montava a partição e iniciava a cópia de arquivos ficava bem ao lado um do outro, já que não pude executar a opção "remount" mencionada por outras pessoas acima.

A versão do LMDE do script do instalador estava em python (usr / lib / live-installer / installer.py). Eu 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 coures, o "/ dev / sda3" irá variar dependendo do seu dispositivo.

Eu entendo que este é um fórum do Ubuntu, mas como eu disse, surgiu a busca e esta solução seria diretamente relevante se o instalador fosse baseado em Python. Nós somos todos Debian aqui, de qualquer maneira, certo!?

    
por CenterOrbit 03.04.2012 / 02:58
7

Uma maneira mais fácil de fazer isso é alterar o comando mount do ambiente ao vivo.

  1. Inicialize normalmente na sessão ao vivo.
  2. Mova o executável mount para outro local:

    sudo mv /bin/mount /bin/mount.bin
    
  3. Edite um novo arquivo usando sudoedit /bin/mount e salve o seguinte script nele (altere as opções conforme desejar; aqui nós 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 /dev/sda1 em vez de -t btrfs e cadeia elif s 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/fstab do sistema recém-instalado para corresponder às opções especificadas, para que ele use as mesmas opções nas novas inicializações.

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

Isso funciona com o quantal diário (30/6/12).

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

Os créditos vão para este post (em este tópico ), que por sua vez cita esta postagem no blog .

    
por Msktje 02.07.2012 / 12:52
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.

    
por Michel 12.10.2010 / 12:50
2

A partir do 13.04 (Raring Ringtail), você deve ser capaz de instalar em um volume btrfs sem compactação e, em seguida, compactar todos os arquivos em todo o volume depois que você 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 /

Passando isso, a barra simples diz ao btrfs para desfragmentar todos os arquivos e diretórios no seu volume root.

Veja: link

Assim que estiver pronto, adicione compress = lzo (ou compress = zlib se preferir, mas lzo é recomendado para velocidade) na linha do seu volume em / etc / fstab e reinicialize para que outros arquivos gravados no disco ser comprimido.

    
por Geoff 05.09.2013 / 23:34
1

Selecionando manualmente:   / dev / sda1 como btrfs para /   algum ext? / boot   alguma troca

Em um terminal:   sudo bash

Pressione instalar

Pressione enter na linha do terminal: (sudo done)   montar -t btrfs -o remount, comprimir / dev / sda1 / target

    
por user3911 14.10.2010 / 06:09
1

Você pode obter alguns ou todos os novos recursos interessantes do Btrfs executando executando manualmente o comando mkfs.btrfs . O instalador alternativo tem uma opção a qualquer momento para retornar a uma etapa anterior de sua escolha. você pode usar isto para, depois que o instalador criar o btrfs, faça seu próprio btrfs e então inicie o instalador na etapa anterior para que seu fs seja usado.

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

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

  4. voltar para o instalador alt-F1
  5. pressione o botão "voltar" e escolha a opção de partição novamente. o padrão será não reformatar, então você pode apenas pressionar continuar. ele irá reinstalar o sistema básico. diga sim ao aviso de não reformatar a formatação.

  6. aproveite.

por Arthur Ulfeldt 17.02.2011 / 20:04
1

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

  1. Copiando tudo via

    sudo cp -ar /ext4Partition/* /backupspace/
  2. Substituir partion usando gparted com btrfs um

  3. Montar nova partição usando o comando sudo mount -o compress / dev / yourdevice / btrfsPartition
  4. Copiar 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 de remontagem, pois o btrfs não tem isso.
  6. reinstale o carregador de inicialização (por exemplo, BootRepair )

Observação: os diretórios /btrfsParition , /ext4Partition e /backupspace podem ser definidos como você deseja.

    
por nob 27.03.2013 / 18:01
1

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

  1. Inicialize normalmente para a 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 isto para o script e salve (altere as opções como 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 como normal e sua partição btrfs será montada com as opções especificadas (aqui compactar).
  9. Após a conclusão da instalação, antes de sair do ambiente ativo, altere o fstab do sistema recém-instalado para corresponder às opções especificadas, para que ele use as mesmas opções nas novas inicializações.
por danBhentschel 29.05.2015 / 17:06
0

Você pode adicionar apenas a compactação mais tarde. Abra /etc/fstab e 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 se esqueça de que / boot não pode viver no btrfs, já que o GRUB2 não suporta isso.

    
por mniess 12.10.2010 / 02:06
0

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

  

Se você não gosta do que o particionador do instalador faz, faça a sua própria partição e diga ao instalador para instalar nessas partições.

    
por Oli 12.10.2010 / 12:21