はじめに
Linux版Dropboxがext4にしか対応しないというアナウンスが流れた。しかし、Dropboxのために今使ってるbtrfsを変えるのは癪だし、別でpartition切るのは空き作るのが辛かったり容量の管理が面倒くさい。そこで、loopbackで既存fs上にext4のファイルを作ってDropboxを動かす。タイトルはbtrfsだけど他でも流用可能。
ArchLinuxの場合で説明するが、特にArchLinux特有固有の話は無いと思われるので、他のLinuxでも問題なくできる筈である。
手順
元になるファイル作成
元になるファイルを作成する。ただし、ファイルシステムの都合上予め最大容量を決め打ちする必要がある。作り直すのは面倒くさいのでできるだけデカく作っておきたいが、無駄が多い。ので、0の羅列の場合は容量を省略できるスパースファイルとファイルシステムの圧縮を併用する。
-
truncate -s 4G loop-dropbox
でスパースファイルを作る -
chattr +c loop-dropbox
でファイルに圧縮属性を付与 -
mkfs.ext4 loop-dropbox
でext4でフォーマット
マウント・コピー
最初全削除してloopbackファイルを直でマウントしたら全削除されたと判断されて全部吹き飛ばすミスをしたので(復元はしたが)、マウントしたらまずは全ファイルをrsyncする。
-
mount -o loop -t ext4 loop-dropbox Dropbox2
でマウント rsync -av Dropbox/ Dropbox2/
- dropboxを落とす
- Dropboxを削除
- Dropbox2をunmount
- Dropboxにマウント
- dropbox再起動
fstab設定
うまく動いたらmount設定をfstabに永続化しておく
/.../loop-dropbox /home/.../Dropbox ext4 loop 0 0
これでおしまい。
Thanks
大体この辺全部筆者がオリジナルで考えたかのように書いてるけど、@syuu1228 先生の技術協力によってできたものです。ありがとうございました。