標準様式

ReadOnly 設定について

版

版

日付

記述

発行

作成

日付

記述

発行

作成

版

日付20171115

記述

1

発行

プロフェッショナルサービス

作成

表題

確認

承認

確認

承認

新規発行
大島龍博

確認
No

ReadOnly 設 定に ついて

承認

PSG-20171115

版
ﾍﾟｰｼﾞ

1
1/5

標準様式
READONLY にする方法は、以下の 3 ステップです。

1.

/etc/fstab のオプション部分に “ro” を指定する
下記設定では、/home は、別のパーティションであるため、通常の Read/Write が行いますが、/(ルート)パーティションは、READONLY になります。
/boot パーティションも ReadOnly 設定にすることが望ましい場合には、同様に RO を追記してください。
## /etc/fstab# Created by anaconda on Wed Sep 27 09:45:39 2017## Accessible filesystems, by reference, are maintained under '/dev/disk'# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info#/dev/mapper/centos-root/
xfs
defaults,ro00
UUID=UUID 番 号/bootxfs
defaults
00/dev/mapper/centos-home
/home
xfs
defaults
00/dev/mapper/centos-swap
swap
swap
defaults00

2.

/etc/sysconfig/readonly-root を編集し、READONLY=yes,TEMPORARY_STATE=yesに設定する。

3.

/etc/rwtab を編集し、ReadOnly 設定した中にある、書き込みを行う必要のある部分を追記する（例：/root 等ホームディレクトリを追記しないと、xlogin 出来ない）

備考



サービスが起動しているか/var/log/boot.log ファイルを確認してください[OK] Started Configure read-only root support.

read-only で起動した後、何か書き込みたい時：# mount -o remount,rw /表題

No

ReadOnly 設 定に ついて

PSG-20171115

版
ﾍﾟｰｼﾞ

12/5

標準様式

ReadOnly 設定の仕組み
RHEL/CentOS/RedHawk では、システム設定ファイルを変更することで、簡単にREADONLY マウントを実現することが出来ます。
V6 系列では、/etc/rc.d/rc.sysinitから、V7 系列では、 /usr/lib/systemd/rhel-readonly から、システムファイルのマウント動作が開始され、下記のファイルを READONLY 設定のために呼び出します。
V6 も V7 も、grub の起動時設定に readonlyroot を追記し、/etc/sysconfig/readonly-rootを設定する事で READONLY になります。

V6 系列：/etc/rc.d/rc.sysinit
READONLY=/etc/sysconfig/readonly-root の 結 果 で yes に な る
if [ -f /etc/sysconfig/readonly-root ]; then. /etc/sysconfig/readonly-root
fi
ReadOnly 設 定 に 加 え て 一 部 を RW マ ウ ン ト に す る
if strstr "$cmdline" readonlyroot ; then
READONLY=yes[ -z "$RW_MOUNT" ] && RW_MOUNT=/var/lib/stateless/writable[ -z "$STATE_MOUNT" ] && STATE_MOUNT=/var/lib/stateless/statefi
if strstr "$cmdline" noreadonlyroot ; then
READONLY=nofi

V7 系列：/usr/lib/systemd/rhel-readonly#!/bin/bash## Set up readonly-root support.
#::# Only read this once.
[ -z "${cmdline}" ] && cmdline=$(cat /proc/cmdline)
READONLY=
if [ -f /etc/sysconfig/readonly-root ]; then. /etc/sysconfig/readonly-root/etc/sysconfig/readonly-root の 結 果 で yes に な るfi
if strstr "$cmdline" readonlyroot ; then
READONLY=yes[ -z "$RW_MOUNT" ] && RW_MOUNT=/var/lib/stateless/writable[ -z "$STATE_MOUNT" ] && STATE_MOUNT=/var/lib/stateless/statefi
if strstr "$cmdline" noreadonlyroot ; then
ReadOnly 設 定 に 加 え て 一 部 を RW マ ウ ン ト に す る
READONLY=noFi:

表題No

ReadOnly 設 定に ついて

PSG-20171115

版
ﾍﾟｰｼﾞ

1
3/5

標準様式

/etc/sysconfig/readonly-root

ディフォルト設定# cat /etc/sysconfig/readonly-root# Set to 'yes' to mount the system filesystems read-only.
READONLY=no# Set to 'yes' to mount various temporary state as either tmpfs# or on the block device labelled RW_LABEL. Implied by READONLYTEMPORARY_STATE=no# Place to put a tmpfs for temporary scratch writable space
RW_MOUNT=/var/lib/stateless/writable# Label on local filesystem which can be used for temporary scratch space
RW_LABEL=stateless-rw# Options to use for temporary mount
RW_OPTIONS=# Label for partition with persistent data
STATE_LABEL=stateless-state# Where to mount to the persistent data
STATE_MOUNT=/var/lib/stateless/state# Options to use for peristent mount
STATE_OPTIONS=

上記の設定の通り、READONLY=no 、TEMPORARY_STATE=no です。
ここで、TEMPORARY_STATE は、いわゆる TEMPFS（RAM ディスク）を ON/OFF させる仕組みです。
つまり、ディスク全体を READONLY に設定しておき、Read/Write を行う必要のある部分だ
け、TEMPFS を使用し、その初期値（ファイルの内容）は、READONLY のディスクからコピーする仕組みです。

READONLY 設定
READONLY 設定では、この２つの設定が共に yes になります。
# cat /etc/sysconfig/readonly-root# Set to 'yes' to mount the system filesystems read-only.
READONLY=yes# Set to 'yes' to mount various temporary state as either tmpfs# or on the block device labelled RW_LABEL. Implied by READONLYTEMPORARY_STATE=yes# Place to put a tmpfs for temporary scratch writable space
RW_MOUNT=/var/lib/stateless/writable# Label on local filesystem which can be used for temporary scratch space
RW_LABEL=stateless-rw# Options to use for temporary mount
RW_OPTIONS=# Label for partition with persistent data
STATE_LABEL=stateless-state# Where to mount to the persistent data
STATE_MOUNT=/var/lib/stateless/state# Options to use for peristent mount
STATE_OPTIONS=

表題No

ReadOnly 設 定に ついて

PSG-20171115

版
ﾍﾟｰｼﾞ

14/5

標準様式

TEMPFS 設定
次に TEMPFS の設定は、/etc/rwtab で行います。このファイルでは、作成するディレクト
リ(dirs)、空のファイル(empty)、コピーするファイル(files)の定義を行います。

dirs
dirs
dirs
dirs
dirs
dirs
dirs
dirs
dirs
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty
empty

/var/cache/man/var/gdm/var/lib/xkb/var/lock/var/log/var/run/var/puppet/var/lib/dbus/var/lib/nfs/tmp/var/cache/foomatic/var/cache/hald/var/cache/logwatch/var/cache/mod_ssl/var/cache/mod_proxy/var/cache/php-pear/var/cache/systemtap/var/db/nscd/var/lib/dav/var/lib/dhcp/var/lib/dhclient/var/lib/php/empty
empty
empty
empty
empty
files
files
files
files
files
files
files
files
files
files
files
files
files
files
files
files
files
files
files
files

/var/lib/pulse/var/lib/ups/var/tmp/var/tux/media/etc/adjtime/etc/ntp.conf/etc/resolv.conf/etc/lvm/.cache/etc/lvm/archive/etc/lvm/backup/var/account/var/arpwatch/var/cache/alchemist/var/lib/gdm/var/lib/iscsi/var/lib/logrotate.status/var/lib/ntp/var/lib/xen/var/lib/xend/var/empty/sshd/etc/localtime/var/lib/random-seed/var/spool
/root
/home
ログインディレクトリを追記しないとX でログイン出来ない注意

この内容は、システムが停止した場合には、すべて失われることに注意してください。



また、READONLY 設定にすると、その起動ディスクでは、以後変更することは出来ません。



起動時にディスクから TEMPFS にコピーするため、起動時間が増加します。

も し 、 フ ァ イ ル シ ス テ ム の 一 部 を 通 常 の デ ィ ス ク と し て マ ウ ン ト す る 場 合 に は 、 /etc/fstab
中の記述を行ってください。

表題

No

ReadOnly 設 定に ついて

PSG-20171115

版
ﾍﾟｰｼﾞ

1
5/5