如何使btrfs假装为ext4?


9

Dropbox刚刚宣布他们的Linux客户端将来仅支持ext4。我目前在btrfs分区上使用Dropbox(没有任何问题)。显然,xattr支持是必不可少的。ext4和btrfs都支持此功能,实际上我不知道btrfs也不支持的ext4功能。

我不知道Dropbox打算如何检测文件系统,但是有什么办法可以让btrfs假装为ext4?


我会尝试的第一件事是“ mount --bind”
user1133275 '18

Answers:


2

如果不修改内核,可能不会。而且即使那样也可能不是一个好主意,一旦btrfs工具认为文件系统不是btrfs,它们可能会拒绝运行。

Dropbox是否会像不回答问题那样不支持它,还是该程序会积极避免在任何其他文件系统上运行?如果是后者,则有多种方法可以检测文件系统,而您将无法完全欺骗它们。


参考dropboxforum.com/t5/Syncing-and-uploads/…-截至今年11月,DropBox仅支持Linux上未加密的第四扩展文件系统。(LUKS可以使用,但是cryptofs不能使用)
DopeGhoti

2

解决此问题的最简单方法可能是在Btrfs文件系统中创建ext4环回映像,然后将其挂载到某个临时位置,将与Dropbox同步的文件移动到该文件系统中,然后将其重新挂载到Dropbox同步的顶级目录中。

这将使Dropbox正常运行,但是您无需替换整个文件系统。您仍将获得Btrfs的一些好处,因为您可以快照回送映像等。


1

这是在btrfs上创建ext4文件的方法,它在要存储图像的目录中凝视

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,您将在btrfs上拥有一个永久的ext4文件系统


我之所以选择truncate它,不是fallocate因为dropbox.img文件在文件系统上而不是普通文件上是“精简配置”(稀疏文件)。这意味着100GB不会立即用完,而是随着Dropbox随着时间的推移进行读写而缓慢地超时。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.