Help us understand the problem. What is going on with this article?

BeagleBone (Green) で Read-only な環境を作る

More than 3 years have passed since last update.

BeagleBone Greenで電源をブチ切ってもいいようにRead-onlyでブートするように設定する手順です。
調べるとRaspberry Pi版が結構出てくるのですが、違うのは/etc/fstabを編集するあたり。
ここを適宜変えればどのボードでも動くはずです。

実作業

まず、UnionFSをインストールします。
(使っているものに合わせてパッケージマネージャを変えてください)

aptitude install unionfs-fuse

続いて、UnionFSでマウントするようにスクリプトを作っておきます。

vi /usr/local/bin/mount_unionfs

内容は下記のとおり。

mount_unionfs
#!/bin/sh
DIR=$1
ROOT_MOUNT=$(awk '$2=="/" {print substr($4,1,2)}' < /etc/fstab)
if [ $ROOT_MOUNT = "rw" ]
then
  /bin/mount --bind ${DIR}_org ${DIR}
else
  /bin/mount -t tmpfs ramdisk ${DIR}_rw
  /usr/bin/unionfs-fuse -o cow,allow_other,suid,dev,nonempty ${DIR}_rw=RW:${DIR}_org=RO ${DIR}
fi

スクリプトに実行権限を与えます。

chmod +x /usr/local/bin/mount_unionfs

ファイルシステムの変更内容を/etc/fstabにも書いておきます。

vi /etc/fstab

ここで編集するポイントですが、/の項目と/bootの項目だけRead-onlyに設定します。
また、/etc/varを下記の通りに追記します。
レイアウトがくずれていますがあしからず。

元の/etc/fstab

/etc/fstab
# /etc/fstab: static file system information.
#
# Auto generated by: beaglebone-black-eMMC-flasher.sh
#
# ここの部分が
# ボードによって違います
#  UUID=573d0d44-89f4-44b0-b6cc-61e0282b47fd  /  ext4  noatime,errors=remount-ro  0  1
UUID=44C9-4065  /boot/uboot  auto  defaults  0  0
debugfs         /sys/kernel/debug  debugfs  defaults          0  0

自分の場合、/etc/fstabは以下のようになりました。

/etc/fstab
# /etc/fstab: static file system information.
#
# Auto generated by: beaglebone-black-eMMC-flasher.sh
#
UUID=573d0d44-89f4-44b0-b6cc-61e0282b47fd  /  ext4  ro,noatime  0  1
UUID=447C-2A4C  /boot/uboot  auto  ro 0 2
debugfs         /sys/kernel/debug  debugfs  defaults          0  0
mount_unionfs   /etc    fuse    defaults                0       0
mount_unionfs   /var    fuse    defaults                0       0

見せかけ用の/etc/varを用意し、
バックアップ(/etc_org/var_org)と/varの実体(/var_rw)を作ります。
そして再起動。

cp -al /etc /etc_org
mv /var /var_org
mkdir /etc_rw
mkdir /var /var_rw
reboot

以上で完成です。

一時的に書き込み可能にする場合

一時的に書き込む場合はファイルシステムをrwで再マウントしてあげればOKです。
終わったら再起動してください。

mount -o remount,rw /
# 1. 何か書き込む作業をする
#    例:aptitude install git
# 2. 再起動 reboot

参照

pi3g Blog - Make Raspbian System Read-Only

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした