Raspberry pi3で電源断を簡単に行いたいと考え、
unionfs-fuseを導入しました。
いくつかのサイト様を参考にインストール、設定は完了したのですが
一度シャットダウンさせると起動しなくなり
SDカードの内容を確認するとファイルがすべて空になっていました。

下記の手順で導入を行いました。

事前にswapファイル、logファイルなどをRAMディスクに移すなどの設定は済ませています。

  1. パッケージ導入

    $ sudo apt-get install unionfs-fuse
    
  2. 設定ファイルコピー

    $ 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 
    
  3. /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
    
  4. スクリプト登録

    $ sudo update-rc.d a-unionfs-fuse-live-cd defaults 
    
  5. 切換用スクリプト作成

    • $ 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
      
  6. 実行権限付与

    $ sudo chmod a+x /usr/local/bin/noprotect   
    $ sudo chmod a+x /usr/local/bin/protect
    
  7. 再起動
    unionfs-fuse導入前より起動に時間がかかりますが
    正常に起動します。

  8. シャットダウン、または電源断を行い、その後SDカードの中を見るとすべてのファイルが消えています。

解決策をご存知の方、よろしくお願いいたします。