Ubuntu 16.04를 "라이브"로 설정(읽기/쓰기 레이어가 있는 읽기 전용)

Ubuntu 16.04를 "라이브"로 설정(읽기/쓰기 레이어가 있는 읽기 전용)

Ubuntu 16.04를 라이브 CD처럼 설정하고 싶습니다. 이것은 Ubuntu 12.04에서는 훌륭하게 작동했지만 16.04에서는 문제가 있습니다. 서비스가 충돌하고, CRON이 작동하지 않고, X가 작동하지 않고, 쉘에 로그인할 수도 없습니다. 그래서 16.04에는 약간의 수정이 필요하다고 생각합니다. 루트 드라이브를 읽기/쓰기로 마운트하면 모든 것이 정상적으로 작동합니다. 그러니까 OS 자체는 괜찮습니다.

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/

관련 정보