(이 글은 교차 게시글입니다.아쿠벤투, 왜냐면 여기엔 그것을 작동시키는 방법을 아는 사람들이 더 많다고 생각하기 때문입니다)
Live CD처럼 Ubuntu 16.04를 설정하고 싶습니다. 이것은 Ubuntu 12.04에서는 잘 작동하지만 16.04에서는 문제가 있습니다. 서비스가 충돌하고 CRON이 작동하지 않고 X가 작동하지 않으며 셸에 로그인할 수도 없습니다. 그래서 16.04에는 약간의 수정이 필요하다고 생각합니다. 루트 드라이브를 읽기/쓰기로 마운트하면 모든 것이 잘 작동합니다. 따라서 운영 체제 자체는 괜찮습니다.
읽기 전용 모드에서 Ubuntu 부팅을 만들기 위해 커널 매개변수 "rw"를 "ro"로 바꾸고 initramfs에서 스크립트를 사용했습니다.
/etc/initramfs-tools/scripts/init-bottom/ro_root
#!/bin/sh
PREREQ=''
prereqs() {
echo "$PREREQ"
}
case $1 in
prereqs)
prereqs
exit 0
;;
esac
ro_mount_point="${rootmnt%/}.ro"
rw_mount_point="${rootmnt%/}.rw"
# Create mount points for the read-only and read/write layers:
mkdir "${ro_mount_point}" "${rw_mount_point}"
# Move the already-mounted root filesystem to the ro mount point:
mount --move "${rootmnt}" "${ro_mount_point}"
# Mount the read/write filesystem:
mount -t tmpfs root.rw "${rw_mount_point}"
# Mount the union:
mount -t aufs -o "dirs=${rw_mount_point}=rw:${ro_mount_point}=ro" root.union "${rootmnt}"
# Correct the permissions of /:
chmod 755 "${rootmnt}"
# Make sure the individual ro and rw mounts are accessible from within the root
# once the union is assumed as /. This makes it possible to access the
# component filesystems individually.
mkdir "${rootmnt}/ro" "${rootmnt}/rw"
mount --bind "${ro_mount_point}" "${rootmnt}/ro"
mount --bind "${rw_mount_point}" "${rootmnt}/rw"
# ro_root end
ro 루트 드라이브 및 rw fs 레이어로 Ubuntu 16.04를 올바르게 설정하는 방법은 무엇입니까?
답변1
표준 Ubuntu 패키지 "overlayroot"를 사용하십시오. Ubuntu 16.04에서는 이 패키지가 자동으로 설치됩니다. /etc/overlayroot.conf를 편집하고 다음 설정을 추가하면 간단히 활성화할 수 있습니다.
overlayroot="tmpfs"
Ubuntu 16.04 시스템을 다시 시작하면 완료됩니다. 패치 등에 대한 읽기 전용 루트 파일 시스템을 일시적으로 쉽게 비활성화하기 위해 grub 구성에 커널 부팅 항목을 추가할 수 있습니다. 이를 수행하는 방법은 다음과 같이 커널 매개변수를 전달하는 grub 항목을 추가하는 것입니다.
overlayroot=disabled
자세한 내용은 다음을 방문하십시오. https://spin.atomicobject.com/2015/03/10/protecting-ubuntu-root-filesystem/