기본 시스템(NFS를 통해 PXE 클라이언트 제공)이 읽기 전용이고 루트 파일 시스템이 읽기 전용 NFS 기본 시스템이 lowerdir이고 tmpfs가 상위/작업 디렉토리인 overridefs 파일 시스템인 PXEboot 환경을 설정하려고 합니다. .
OverlayFS를 사용하기 위해 AuFS initramfs 스크립트를 편집했는데 제대로 작동했습니다.와는 별개로하위 디렉터리(예: /etc/environment)에 있는 파일을 편집하려고 하면 읽기 전용으로 열리며, 이는 새 파일(예: /etc/foobar)이나 상위 디렉터리에 복사된 파일의 경우에는 해당되지 않습니다. 문서. 파일을 편집하기 전에 간단히 파일을 터치하면 문제가 완화될 수 있지만 이상적이지 않으며 다른 응용 프로그램이 중단될 수 있습니다.
AuFS에는 이 문제가 없습니다. 어떤 제안이 있으십니까? 다음은 간결성을 위해 편집된 initramfs 스크립트(/etc/initramfs-tools/scripts/init_bottom/00_overlayfs_init)의 관련 부분입니다.
mkdir /overlay
mkdir /local
mkdir /remote
# mount the temp file system and move real root out of the way
mount -t tmpfs none /local
mount --move ${rootmnt} /remote
mkdir /local/rw
mkdir /local/work
mount -t overlayfs -o lowerdir=/remote,upperdir=/local/rw,workdir=/local/work overlay /overlay
#test for mount points on overlay file system
[ -d /overlay/ro ] || mkdir /overlay/remote
[ -d /overlay/rw ] || mkdir /overlay/local
mount --move /remote /overlay/remote
mount --move /local /overlay/local
mount --move /overlay ${rootmnt}
편집: 추가 정보
Vim과 같은 편집기를 사용하여 편집을 시도하면 vim이 파일을 읽기 전용으로 선언 하고 :wq!
.E166: Can't open linked file for writing
root@dark-node:~# echo FOO=bar >> /etc/environment
-bash: /etc/environment: Permission denied
root@dark-node:~# echo FOO=bar > /etc/environment
-bash: /etc/environment: Permission denied
root@dark-node:~# touch /etc/environment
root@dark-node:~# echo FOO=bar >> /etc/environment
root@dark-node:~# cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/game::/usr/local/games"
FOO=bar
root@dark-node:~# uname -a
Linux dark-node 4.4.0-57-generic #78-Ubuntu SMP Fri Dec 9 23:50:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
답변1
나는 똑같은 문제를 겪었습니다. (똑같은 일을 하려고 했습니다: PXE 부팅 환경을 갖춘 읽기 전용 기본 시스템).
내가 보는 행동은 다음과 비슷합니다이 우분투 버그 보고서. 변경사항을 쓸 수 없습니다.기존의파일을 제출해야 하지만 할 수는 있어요삭제그것들은 (하지만 그것들은 하위 파일 시스템에 보관되어 있습니다. 상위 계층은 그것들의 부재만을 기록합니다.) 그런 다음 다시 씁니다(이 시점에서 상위 계층에는 제가 편집할 수 있는 복사본이 있습니다).
내가 이해한 바로는 OverlayFS와 NFS가 함께 잘 작동하지 않기 때문에 이런 일이 발생합니다. 낮은 파일 시스템에서 파일을 수정하려고 할 때 예상되는 작업을 "복사"라고 하며, OverlayFS가 NFS 파일 시스템을 사용하려고 하면 NFS가 xattrs를 지원하지 않기 때문에 중단됩니다.
지금까지 내가 찾을 수 있는 유일한 유망한 접근 방식은 fusion_xattrs를 사용하여 NFS 마운트에서 xattrs를 시뮬레이션할 수 있다는 것입니다(여기에 설명) 그러나 이를 위해서는 두 개의 NFS 공유 마운트 지점이 필요합니다. 하나는 "실제" 마운트 지점이고 다른 하나는 첫 번째 마운트 지점이 필요한 "xattr-enhanced" 마운트 지점입니다.