我希望防止运行 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
操作系统:Debian(官方Orangepizero2_3.0.6_debian_bullseye_server_linux5.16.17
)
如果声音和 gpio 在 Ubuntu 上运行良好,我可以转移到该操作系统(不幸的是,声音和 gpio 在 Armbian 上似乎有问题)。
我是一个“简单”的程序员,不熟悉挂载/fs/覆盖 - 非常感谢任何帮助!
以下是各种坐骑的信息:
$ 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。我的 RBPi 4 已经使用了两年,每周 7 天,每天 24 小时,到目前为止没有任何问题。
我认为登录RAM功能是由log2ram
.您可以用它来将大部分写入请求从 SD 中取出。
答案2
我也是 Overlayroot 的新手,一直在寻找一种简单的方法来在 Orange pi Zero 2 上的我的宠物项目中进行设置。
我找到了一个很好的说明书版本仅适用于 ubuntu。对于 debian,还尝试使用overlayroot 包,但据我了解,需要在那里使用其他解决方案或解决方法。
仅针对基于 Ubuntu 的 Armbian 运行以下命令(橙色 pi 零 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/