私は通常、1日に約2〜3回ハード電源を循環するシステムに読み取り専用でマウントされた大規模で頻繁に読み取られるext3ファイルシステムを持っています。
デバイスは通常電源を切ると電源が切れるため、fsck はこのファイルシステムで起動時に実行されますが、このアプリケーションでは高速起動時間 (秒単位) が重要です。
fstabでファイルシステムの起動時間チェックを無効にできますが、私の質問はこれが安全ですか?ファイルシステムが読み取り専用でマウントされているが正しくマウント解除されていない場合どの起動時間チェックを無効にすると、長期間にわたってファイルシステムの破損が蓄積する危険性はありますか?
答え1
mount
マンページでは、
-r, --read-only
Mount the filesystem read-only. A synonym is -o ro.
Note that, depending on the filesystem type, state and kernel
behavior, the system may still write to the device. For example,
Ext3 or ext4 will replay its journal if the filesystem is dirty.
To prevent this kind of write access, you may want to mount ext3
or ext4 filesystem with "ro,noload" mount options or set the
block device to read-only mode, see command blockdev(8).
これが十分でない場合は、fstabエントリだけで読み取り専用デバイスを設定する方法はありませんro,noload
。ファイルシステムをマウントする前に、他の方法でblockdev --setro
読み取り専用ループデバイス()を呼び出すか作成する必要があるかもしれません。losetup --read-only
真の読み取り専用に設定すると、マウントされたかどうかはわかりません。したがって、デバイスに何も記録されない限り、マウント数は更新されず、fsckは強制的に実行されず、特に破損は発生しません。
答え2
tune2fs
マンページから:
-c max-mount-counts
Adjust the number of mounts after which the filesystem will be checked by e2fsck(8). If max-mount-counts is 0 or -1, the number
of times the filesystem is mounted will be disregarded by e2fsck(8) and the kernel.
Staggering the mount-counts at which filesystems are forcibly checked will avoid all filesystems being checked at one time when
using journaled filesystems.
You should strongly consider the consequences of disabling mount-count-dependent checking entirely. Bad disk drives, cables,
memory, and kernel bugs could all corrupt a filesystem without marking the filesystem dirty or in error. If you are using jour-
naling on your filesystem, your filesystem will never be marked dirty, so it will not normally be checked. A filesystem error
detected by the kernel will still force an fsck on the next reboot, but it may already be too late to prevent data loss at that
point.
See also the -i option for time-dependent checking.
そして:
-i interval-between-checks[d|m|w]
Adjust the maximal time between two filesystem checks. No postfix or d result in days, m in months, and w in weeks. A value of
zero will disable the time-dependent checking.
It is strongly recommended that either -c (mount-count-dependent) or -i (time-dependent) checking be enabled to force periodic
full e2fsck(8) checking of the filesystem. Failure to do so may lead to filesystem corruption due to bad disks, cables, memory,
or kernel bugs to go unnoticed until they cause data loss or corruption.
したがって、両方とも0に設定すると、自動が無効になりますfsck
(実際にしかし、したい。)
答え3
歴史的、状況的理由で別の回答を残しましたが、もう一度読んでみると実際の質問が見えます。はい、まだ最後に一つを作ってくださいfsck
。すべてのディスクは寿命が制限されており、fsck
不良セクタは「不良ブロック」のinode /リストに割り当てられ、新しいファイルではそれを使用しません。
読み取り専用(およびnoload
frotschutzが言うことを行う)は、サービスの中断による一貫性の問題を防ぐのに役立ちますが、それでもハードウェアが単に消えることを考慮する必要があります。