FreeBSD/FreeNAS에서 iocage를 사용하여 기본 Jail 업그레이드가 실패함

FreeBSD/FreeNAS에서 iocage를 사용하여 기본 Jail 업그레이드가 실패함

FreeBSD 11.3을 실행하는 FreeNAS 서버에서 일부 11.3 Base Jail을 11.4로 업그레이드하려고 합니다. 나는 다음을 사용했다:

iocage upgrade -r 11.4-RELEASE my-jail-name

일부 감옥은 etcupdate failed! Rolling back snapshot메시지로 인해 실패합니다. etcupdate감옥 안팎에서 수동으로 실행 하려고 하면 iocage exec다음과 같은 추가 메시지가 나타납니다. Failed to build new tree.무엇이 잘못되었나요?

답변1

/usr/local/sbin/etcupdate스크립트가 실패하는 이유는 시스템 불변 플래그를 설정하여 특정 파일이 삭제되는 것을 방지하기 때문인 것으로 나타났습니다 chflags schg. 스크립트의 213행을 참조하세요.

chflags -R noschg $1 >&3 2>&1 || return 1

불행하게도 플래그를 더 이상 지우지 못하고 265-266행에서 오류가 발생합니다 Operation not permitted.

chflags -R noschg $1 >&3 2>&1
rm -rf $1 >&3 2>&1

감옥에 필요한 allow_chflags설정이 있음에도 불구하고 설정을 허용하는 securelevel것이 기본값이기 때문입니다.2schg아니요그렇게 되도록 허락하다설정되지 않았습니다.

이 문제를 해결하려면 감옥을 securelevel임시 로 변경하고 켜져 있는지 0확인한 다음 작동해야 했습니다. 업그레이드한 후에는 더 안전한 기본값 으로 다시 변경하겠습니다 .allow_chflagsiocage upgradesecurelevel2

혹시 다른 분들께 도움이 될까 해서 여기에 글을 올립니다.

관련 정보