Como posso fazer com que o btrfs finja ser ext4?

9

O Dropbox acaba de anunciar que seu cliente Linux só suportará ext4 no futuro. Atualmente, uso o Dropbox em uma partição btrfs (sem problemas). Aparentemente, o suporte ao xattr é essencial. Tanto o ext4 quanto o btrfs suportam isso e, de fato, não conheço nenhum recurso ext4 que o btrfs também não suporte.

Não sei como o Dropbox pretende detectar o sistema de arquivos, mas existe alguma maneira de conseguir que o btrfs finja ser ext4?

jl6
fonte
Primeira coisa que eu tentaria e seria "mount --bind"
user1133275

Respostas:

2

Sem modificações no kernel, provavelmente não. E, mesmo assim, pode não ser uma boa ideia, as ferramentas btrfs podem se recusar a funcionar quando acharem que o sistema de arquivos não é btrfs.

O Dropbox simplesmente não o suporta, pois não responde a perguntas ou o programa evita ativamente a execução em qualquer outro sistema de arquivos? Se for o último, há muitas maneiras de detectar um sistema de arquivos e você não seria capaz de enganá-los.

RalfFriedl
fonte
Referência dropboxforum.com/t5/Syncing-and-uploads/… - O DropBox só suportará o 4º sistema de arquivos estendido não criptografado no Linux a partir de novembro deste ano. (LUKS vai funcionar, mas encryptfs não)
DopeGhoti
2

Provavelmente, a maneira mais fácil de lidar com isso é criar uma imagem de loopback ext4 no sistema de arquivos Btrfs, montá-la em algum local temporário, mover os arquivos que você sincroniza com o Dropbox para esse sistema de arquivos e remontá-la no diretório de nível superior onde o Dropbox sincroniza .

Isso manterá o Dropbox funcionando, mas você não precisa substituir todo o sistema de arquivos. Você ainda terá alguns dos benefícios do Btrfs, pois poderá capturar instantaneamente a imagem de loopback e tal.

LustreOne
fonte
1

Veja como criar um arquivo ext4 no btrfs, olhando para um diretório em que você deseja que a imagem seja armazenada

truncate -s 100G dropbox.img
chown root:root dropbox.img
chmod 600 dropbox.img
mkfs.ext4 -j dropbox.img
mkdir /opt/dropbox
mount -t ext4 -o loop {path}/dropbox.img /opt/dropbox
chmod 777 /opt/dropbox
umount /opt/dropbox

Agora, edite /etc/fstabe adicione

{path}/dropbox.img      /opt/dropbox            ext4    loop            0 0

E agora, se você mount -a, você terá um sistema de arquivos ext4 permanente no btrfs


Eu escolho, truncatee não fallocateporque o dropbox.imgarquivo será "thin provisioned" (um arquivo esparso) no sistema de arquivos, e não o normal. O que isso significa é que 100 GB não serão usados ​​imediatamente, mas lentamente horas extras à medida que o dropbox lê e grava ao longo do tempo.

Andy
fonte