Как я могу заставить btrfs притворяться ext4?

Dropbox только что объявили, что их Linux-клиент будет поддерживать только ext4 в будущем. В настоящее время я использую Dropbox на разделе btrfs (без каких-либо проблем). По-видимому, поддержка xattr необходима. И ext4, и btrfs поддерживают это, и, действительно, я не знаю ни одной функции ext4, которую btrfs также не поддерживает.

Я не знаю, как Dropbox намеревается обнаружить файловую систему, но есть ли способ заставить btrfs притвориться ext4?

Без изменений в ядре, вероятно, нет. И даже тогда это может быть плохой идеей, инструменты btrfs могут отказаться работать, если они считают, что файловая система не btrfs.

Будет ли Dropbox просто не поддерживать его, как не отвечая на вопросы, или программа будет активно избегать работы в любой другой файловой системе? Если это последнее, есть много способов обнаружить файловую систему, и вы не сможете обмануть их всех.

Вероятно, самый простой способ справиться с этим – создать образ петли ext4 в вашей файловой системе Btrfs, затем смонтировать его во временное расположение, переместить файлы, синхронизируемые с Dropbox, в эту файловую систему, а затем перемонтировать его в каталог верхнего уровня, где синхронизируется Dropbox. ,

Это сохранит работу Dropbox, но вам не нужно заменять всю файловую систему. Вы все равно получите некоторые из преимуществ Btrfs, поскольку вы можете сделать снимок петлевого изображения и тому подобное.

Вот как создать файл ext4 на btrfs, начиная с каталога, в котором вы хотите сохранить изображение

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 

Теперь отредактируйте /etc/fstab и добавьте

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

И теперь, если вы mount -a , у вас будет постоянная файловая система ext4 на btrfs


Я выбираю truncate а не fallocate потому что файл dropbox.img будет «тонко предоставлен» (разреженный файл) в файловой системе, а не в обычном режиме. Это означает, что 100 ГБ будут израсходованы не сразу, а медленно, со временем, так как Dropbox читает и записывает со временем.