Linuxが固まることがありますが、
Terminalを入れ直すという解決策もあるそうです。
簡単にデータファイルを入れ替えられるように
別のドライブをマウントしたくなりました。
持ち運びもしたいので
loopbackを検討してみました。
fuse2fsを使う
losetup
は使えないようです。
fuseを使うのを想定しているということで、
fuse2fs
を使います。
$ sudo apt install -y fuse2fs
loopbackファイルを作る
FAT32で最大の4GBのファイルを作りました。
exFATにすると、ディスクアクセスの時間が伸びたので、
FAT32でやっています。
(FAT32だと40MB/sec、exFATだと1MB/secでした)
$ dd if=/dev/zero of=/mnt/chromeos/removable/c101pa/loopback.fs \
bs=$((1024 * 1024)) count=4
$ mkfs.ext4 -O ^has_journal /mnt/chromeos/removable/c101pa/loopback.fs
fuse2fsではjournalを使うとエラーになったので
journalをオフにしています。
fuse2fsでマウント
$ fuse2fs -o uid=1000,gid=1000,fakeroot \
/mnt/chromeos/removable/c101pa/loopback.fs ~/work
ちなみに uid
gid
だけを指定すると
所有者はそうなって、lsなど見た目はその人がなんでもできそうに見えますが、
最上階層のファイル・フォルダ作成には
root権限が必要になります。
起動時に自動的にマウントする
下のようなスクリプトを .bashrc
に記載して
毎回mountする手間をなくします。
function mountsd() {
if df | grep -qe "$1"; then
return 0
fi
/usr/sbin/e2fsck $1
uid=$(id -u)
gid=$(id -g)
fuse2fs -o uid=$uid,gid=$gid,fakeroot $1 $2
if [ x$? != x0 ]; then
echo "$1" was not able to mount.
fi
}
mountsd /mnt/chromeos/removable/c101pa/home-src.fs ~/src
ここまでやると、環境としては整うのですが
運用してわかったのがアクセスがあまりにも遅い...
結局、標準の「Linuxに共有」を使ってChromeOS側の
フォルダに直接読み書きすることにしました。