환경:
- Virtualbox 가상 머신의 데비안 제시
- 게스트 및 컨테이너에서 루트 계정 사용
- 가상 머신 내부의 lxc 컨테이너
- btrfs의 lxc 컨테이너 루트 파일 시스템
- VM 게스트에서 실행할 때는 잘 작동하지만 컨테이너에서는 작동하지 않습니다.
- 컨테이너와 기본 btrfs 파일 시스템에 존재하는 폴더에서 실행할 때 제대로 작동합니다.
- 새 하위 디렉터리의 컨테이너에서 실행 시 실패함(기본에서 델타)
ruby-build에서 Ruby를 설치하려고 하면 이상한 문제가 발생합니다. 설치 프로세스 중에 25,000줄이 넘는 구성 스크립트를 실행하고 다음을 실행합니다.
mkdir d
ln -s f d
rm d/f
rmdir d
이후 현재 디렉터리 핸들은 오래되었으며 "ls"를 실행하면 다음과 같은 결과가 발생합니다.
ls: cannot open directory .: Stale file handle
조금 결정하려고 노력한 후에 컨테이너 내부에서만 발생하고 기본 이미지에 존재하지 않는 폴더에서 실행할 때만 발생한다는 것을 발견했습니다.
예를 들어 기본 이미지에는 이미 /root가 있으므로 /root에서 4개의 명령을 실행하면 제대로 작동합니다. 그러나 /root/somesubdir에서 실행하면 실패합니다. /tmp 및 /opt에서도 동일한 일이 발생합니다(/mount는 하나만 있고 /tmp 또는 /opt에 특별한 것은 없음). /tmp 또는 /opt에서는 제대로 작동하지만 특정 하위 디렉토리에 만든 경우에는 작동하지 않습니다.
/run(tmpfs 마운트)에서 명령을 실행하면 컨테이너의 하위 디렉터리에서 제대로 실행됩니다.
이것은 내 마운트입니다.
Filesystem 1K-blocks Used Available Use% Mounted on
/var/lib/lxc/base_container/rootfs 37747708 20436096 16331024 56% /
udev 10240 0 10240 0% /dev
tmpfs 4097824 12 4097812 1% /dev/shm
tmpfs 4097824 106600 3991224 3% /run
tmpfs 5120 0 5120 0% /run/lock
tmpfs 4097824 0 4097824 0% /sys/fs/cgroup
나는 이것이 생성되는 d/f 파일의 특이한 점이라고 생각합니다. 그것은 그 자체에 대한 순환 심볼릭 링크입니다.
무엇이 잘못되었는지 또는 해결 방법에 대한 아이디어가 있습니까?