raspberry piにunionfs-fuseを導入するとSDカードの内容が消える
Raspberry pi3で電源断を簡単に行いたいと考え、
unionfs-fuseを導入しました。
いくつかのサイト様を参考にインストール、設定は完了したのですが
一度シャットダウンさせると起動しなくなり
SDカードの内容を確認するとファイルがすべて空になっていました。
下記の手順で導入を行いました。
事前にswapファイル、logファイルなどをRAMディスクに移すなどの設定は済ませています。
パッケージ導入
$ sudo apt-get install unionfs-fuse
設定ファイルコピー
$ sudo cp /usr/share/doc/unionfs-fuse/examples/S01a-unionfs-fuse-live-cd.sh /etc/init.d/a-unionfs-fuse-live-cd $ sudo cp /usr/share/doc/unionfs-fuse/examples/rc.local.omit-pid.sh /usr/local/sbin/a-unionfs-fuse-omit-pid.sh
/etc/init.d/a-unionfs-fuse-live-cd を編集
#!/bin/sh ### BEGIN INIT INFO # Provides: a-unionfs-fuse-live-cd # Required-Start: mountall-bootclean # Required-Stop: # Default-Start: S # Default-Stop: # X-Start-Before: procps udev-mtab urandom # Short-Description: UnionFS mode # Descrition: Shutdown process will not be required ### END INIT INFO # Copyright: Bernd Schubert <bernd.schubert@fastmail.fm> # BSD license, see LICENSE file for details FUSE_OPT="-o allow_other,use_ino,suid,dev,nonempty" CHROOT_PATH="/tmp/unionfs" UNION_OPT="-ocow,chroot=$CHROOT_PATH,max_files=32768" UBIN=/usr/bin/unionfs-fuse cd /boot file=noprotect if [ -e ${file} ]; then echo "${file} exists" exit 0 fi mount -o remount,ro /dev/mmcblk0p1 /boot mount -t proc proc /proc mount -t tmpfs tmpfs /tmp mkdir -p $CHROOT_PATH/root mkdir -p $CHROOT_PATH/rw mkdir -p /tmp/union mount --bind / $CHROOT_PATH/root $UBIN $FUSE_OPT $UNION_OPT /rw=RW:/root=RO /tmp/union mount -t proc proc /tmp/union/proc cd /tmp/union mkdir oldroot pivot_root . oldroot mount -o remount,ro /dev/root /oldroot for d in dev run run/lock sys run/shm dev/pts boot do mount --bind /oldroot/$d /$d done init q /usr/local/sbin/a-unionfs-fuse-omit-pid.sh exit 0
スクリプト登録
$ sudo update-rc.d a-unionfs-fuse-live-cd defaults
切換用スクリプト作成
$ sudo vim /usr/local/bin/noprotect
#!/bin/sh mount -o rw,remount /boot cd /boot if [ -e "protect" ]; then rm /boot/protect fi if [ -e "noprotect" ]; then echo "noprotect mode" else touch /boot/noprotect echo "noprotect mode" fi mount -o ro,remount /boot
$ sudo vim /usr/local/bin/protect
#!/bin/sh mount -o rw,remount /boot cd /boot if [ -e "noprotect" ]; then rm /boot/noprotect fi if [ -e "protect" ]; then echo "protect mode" else touch /boot/protect echo "protect mode" fi mount -o ro,remount /boot
実行権限付与
$ sudo chmod a+x /usr/local/bin/noprotect $ sudo chmod a+x /usr/local/bin/protect
再起動
unionfs-fuse導入前より起動に時間がかかりますが
正常に起動します。シャットダウン、または電源断を行い、その後SDカードの中を見るとすべてのファイルが消えています。
解決策をご存知の方、よろしくお願いいたします。