Debianを実行しているOrangePI Zero 2でSDカードの破損を防ぎたい
最良の方法は読み取り専用ファイルシステムを持つことだと思ったので、次のガイドラインに従ってください。ここしかし、次のステップでは失敗します。
$sudo mount -o move /etc /mnt/etc/
mount: /mnt/etc/root-ro: bad option; moving a mount residing under a shared mount is unsupported.
私の目標は、SDカードの損傷を防ぐことです。
- 読み取り専用ファイルシステムを作成するより良い方法はありますか?
- 腐敗を減らすための他のオプションはありますか?たとえば、起動する
fsck
たびに自動的に実行しますか?ジャーナリングを無効にすると役に立ちますか?他に何もない?
ハードウェア:OrangePi Zero 2
OS:Debian(公式Orangepizero2_3.0.6_debian_bullseye_server_linux5.16.17
)
Ubuntuでsoundとgpioがうまく動作すると、そのOSに移動することができます(残念ながらArmbianではsoundとgpioに問題があるようです)。
私は「簡単な」プログラマーであり、/fs/overlayマウントに初めて触れる人です。どんな助けでも大変感謝します!
以下は、さまざまなマウントに関する情報です。
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/zram0 partition 503864 0 5
$ cat /etc/fstab
UUID=5dd5b836-fb32-4678-908e-d23f7a028780 / ext4 defaults,noatime,commit=600,errors=remount-ro 0 1
tmpfs /tmp tmpfs defaults,nosuid 0 0
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 422M 0 422M 0% /dev
tmpfs 99M 836K 98M 1% /run
/dev/mmcblk1p1 30G 2.1G 27G 8% /
tmpfs 493M 0 493M 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 493M 0 493M 0% /tmp
/dev/zram1 49M 18M 28M 39% /var/log
tmpfs 99M 0 99M 0% /run/user/0
$ blkid
/dev/mmcblk1p1: UUID="5dd5b836-fb32-4678-908e-d23f7a028780" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="e8ce0794-01"
/dev/zram0: UUID="0d318608-f97b-49cb-ad9a-2868d4158952" TYPE="swap"
/dev/zram1: LABEL="log2ram" UUID="7c3c126a-be5d-491c-89be-a59ce9d002a8" BLOCK_SIZE="4096" TYPE="ext4"
答え1
読み取り専用ファイルシステムはSDカードが死ぬのを防ぎません。ルートパーティションを書き込み可能に再マウントしないと、更新はできません。これは場合によっては大きな欠点になります。あなたができることは、アプリケーションが書く場所を調べてtmpfsを指すことです。 tmpfsパーティションを拡張することもできます。
しかし、私の考えには既製のソリューションが必要だと思います。ディテルピーする。 SDの寿命を考慮して、基本的にRAMにログを書き込む最小限のオペレーティングシステムです。私は2年間、RBPi 4を1日24時間、一週間問題なく使用してきました。
ログインRAM機能はで提供されているようですlog2ram
。これを使用して、SDからほとんどの書き込み要求を取得できます。
答え2
私もOverlayrootに初めてアクセスし、私のペットプロジェクトのためにOrange pi Zero 2にこれを設定する簡単な方法を探していました。
私が一つ見つけた非常に良い手動バージョンUbuntuでのみ動作します。 Debian では overlayroot パッケージを試してみましたが、私が理解したのは別のソリューションや回避策が必要です。
UbuntuベースのArmbianに対してのみ、次のコマンドを実行します(orange pi zero 2の公式Ubuntuも機能します)。
sudo apt update
apt-get remove unattended-upgrades
mv /usr/lib/apt/apt.systemd.daily /usr/lib/apt/apt.systemd.daily.DISABLED
apt-get install overlayroot
echo 'overlayroot="tmpfs"' > /etc/overlayroot.conf
overlayroot-chroot を使用してシステムを編集します。
cd /media/root-ro
mount -t proc proc proc/
mount -t sysfs sys sys/
mount -o bind /dev dev/
overlayroot-chroot
オーバーレイファイルが使用するRAMスペースを確認して最小化します。
df -h /media/root-rw
rm -rf /media/root-rw/overlay/var/