당신처럼알다, root_owner 옵션이 없으면 mke2fs는 mke2fs를 실행하는 사용자의 사용자 및 그룹 ID를 사용합니다. Ubuntu 22 x86_64(mke2fs 1.46.5(2021년 12월 30일))에서 테스트해 보겠습니다.
이미지 생성
mke2fs -t ext2 -I 256 -E 'lazy_itable_init=0,lazy_journal_init=0' -O '^large_file' -O '^huge_file' -L ext2test 'diskEmpty.img' 102400k
이미지 설치
그놈-디스크-이미지-마운터 -w diskEmpty.img
하지만 루트 사용자만 쓸 수 있습니다...왜?
root_owner 옵션을 테스트해 보겠습니다.
이미지 생성
mke2fs -t ext2 -I 256 -E 'root_owner=1000:1000,lazy_itable_init=0,lazy_journal_init=0' -O '^large_file' -O '^huge_file' -L ext2test 'diskEmpty.img' 102400k
이미지 설치
그놈-디스크-이미지-마운터 -w diskEmpty.img
이제 디스크에 쓸 수 있습니다.
함수 없이 디스크에 쓸 수 없는 이유는 무엇입니까 root_owner
?
답변1
당신이 링크한 맨페이지는 실제로 버전 1.42 이후로 꽤 잘 설명하고 있습니다.루트 디렉터리의 UID:GID는 더 이상 mke2fs를 실행하는 사용자의 UID:GID로 기본 설정되지 않습니다.
버전 >1.42에서 루트 디렉터리의 UID:GID가 mke2fs를 실행하는 사용자의 UID:GID가 되도록 하려면 이를 root_owner
기능 목록의 일부로 명시적으로 지정해야 하며 궁극적으로 uid:gid 선택적 인수를 생략해야 합니다.
T.Ts'o 패치 결과입니다.mke2fs: 루트 UID/GID를 자동으로 설정하지 않습니다.) 이는 다음을 명확하게 나타냅니다.
mke2fs에 "-E root_owner[=uid:gid]" 옵션을 추가하여 루트 디렉터리에 대해 사용자와 그룹을 명시적으로 지정할 수 있습니다. "=uid:gid" 매개변수가 지정되지 않으면 이전과 마찬가지로 현재 UID 및 GID가 실행 중인 프로세스에서 추출됩니다.
답변2
새 파일 시스템의 루트는 루트가 소유합니다. 기본 권한에서는 루트만 쓸 수 있습니다. 귀하의 세션 사용자는 일반 사용자일 가능성이 높습니다(UID는 아마도 1000).