Move a pasta para o sub-volume BTRFS

1

Eu recentemente formatei minha partição /home usando o BTRFS, mas desde que foi meu primeiro contato com este FS, eu não sabia sobre sub-volumes.

Ontem eu reinstalei meu Linux Mint e selecionei para montar minha partição home existente como /home . Agora fiquei surpreso, que meus arquivos pareciam estar perdidos, mas depois percebi que o Linux Mint criou um sub-volume chamado @home ao lado da minha pasta pessoal do usuário.

A situação atual é o seguinte layout de disco: 250 GB de SSD - 64 GiB / (BTRFS) - troca de 8 GiB - ~ 170 GiB / home (BTRFS)

Quando tento mover minha pasta home para o sub-volume @home , recebo o erro de que não há espaço suficiente (?!) embora haja ~ 50 GiB restantes esta partição e eu quero mover e não copiar os arquivos. Eu não tenho nenhum outro disco agora que eu poderia reformatar para qualquer formato não-NTFS, que seria necessário para manter qualquer link simbólico ..

Agora eu tenho a pergunta: Como mover os arquivos da pasta para o sub-volume corretamente? E por que não mover os arquivos funciona?

    
por RootTutGut 11.07.2017 / 15:46

2 respostas

1

Você pode tentar uma cópia COW (copy-on-write) com cp -a --reflinks=always /home/whatever /home/@home/ . É uma cópia verdadeira no que diz respeito ao Linux VFS (sistema de arquivos virtual), mas dentro do BTRFS os arquivos compartilham os mesmos blocos / extensões, portanto, nenhum espaço adicional é necessário até que você modifique os arquivos.

Se a cópia for bem-sucedida, modifique o fstab para montar o subvolume em vez de todo o sistema de arquivos:

/dev/sdXn    /home    btrfs    subvol=@home

Em seguida, reinicie. Se tudo estiver bem, você pode remover os arquivos originais.

mount /dev/sdXn /mnt
pushd /mnt
rm -fR whatever
popd
umount /mnt

É claro que você deve ter backups antes de tentar fazer isso.

Próxima

Uma vez que tudo esteja bem, por favor leia o wiki do BTRFS , em particular todos os artigos sob o Guias e informações de uso . O BTRFS é bem legal e tudo mais, mas não funciona como seus sistemas de arquivos tradicionais do Linux (extN, ReiserFS, etc.). Não é uma daquelas coisas em que se pode entrar e descobrir como você vai. Para usar bem o BTRFS, você precisa saber o que está fazendo. E ler a documentação é a melhor maneira de fazer isso.

Por acaso eu amo o BTRFS, e espero que você goste também.

    
por 11.07.2017 / 17:03
0

Caso outra pessoa também tente usar mv para mover dados entre sub-volumes, que de acordo com o link soa como deveria funcionar / ser rápido (o reflinks deve ser o modo padrão para mv desde o coreutils 8.24): Meu teste prático com o coreutils-8.29 no linux-4.14.15-arch mostra que cópias estão sendo criadas ao invés de arquivo links internos do sistema ( df mostra o tamanho do sistema de arquivos aumentando, o que parece estranho para mv , especialmente com os reflexos).

Assim, o link continua a ser a resposta correta, mesmo com versões mais novas do coreutils, que devem ser padronizadas para reflinks para mv .

(Eu teria comentado a melhor resposta atualmente para adicionar esta informação, mas eu precisaria de 50 de reputação para isso, o que eu ainda não tenho).

    
por 04.03.2018 / 11:19