SD 카드 손상 방지/읽기 전용 루트 FS(overlayroot) 생성

SD 카드 손상 방지/읽기 전용 루트 FS(overlayroot) 생성

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 카드 손상을 방지하는 것입니다.

  1. 읽기 전용 파일 시스템을 만드는 더 좋은 방법이 있습니까?
  2. 부패를 줄이기 위한 다른 옵션이 있습니까? 예를 들어 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에 로그를 기록하는 최소한의 운영체제입니다. 저는 RBPi 4를 2년 동안 하루 24시간, 일주일 내내 아무 문제 없이 사용해 왔습니다.

로그인 RAM 기능은 에서 제공하는 것 같습니다 log2ram. 이를 사용하여 SD에서 대부분의 쓰기 요청을 가져올 수 있습니다.

답변2

나는 또한 Overlayroot를 처음 접했고 내 애완 동물 프로젝트를 위해 Orange pi Zero 2에 이를 설정하는 쉬운 방법을 찾고 있었습니다.

내가 하나 찾았어아주 좋은 수동 버전우분투에서만 작동합니다. 데비안의 경우 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/

관련 정보