Chromebook Linux terminal(4): loopbackを使う
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でマウント
-
fakeroot
オプションを指定しないとrootが求められるので
指定しました。- 一つフォルダ掘って適切に権限設定してもいいと思います。
- ただ、運用側のフォルダがソフトリンクになるのが嫌だったので
私はマウント先を直接使うようにこの設定を行っています。
$ 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側の
フォルダに直接読み書きすることにしました。
コメント
Comments powered by Disqus