chroot 환경에서 "파일이 있는 장치"를 결정합니까?

chroot 환경에서 "파일이 있는 장치"를 결정합니까?

이에 따르면: 디렉토리가 어느 장치에 있는지 확인

df일반적인 상황에서는 다음 명령을 통해 파일이 있는 장치를 찾을 수 있습니다.

fpemud-workstation / # df /bin 
Filesystem     1K-blocks     Used Available Use% Mounted on 
/dev/dm-0      476458008 48307576 403924640  11% /

하지만 다음에서는 이 방법을 사용할 수 없습니다 chroot.

fpemud-workstation / # mount -t proc n /test/proc 
fpemud-workstation / # mount --rbind /sys /test/sys 
fpemud-workstation / # mount --make-rslave /test/sys 
fpemud-workstation / # mount --rbind /dev /test/dev 
fpemud-workstation / # mount --make-rslave /test/dev 
fpemud-workstation / # chroot /test df /bin 
Filesystem     1K-blocks     Used Available Use% Mounted on 
-              476458008 48307604 403924612  11% / 

편집하다:

예, 내 chroot에 있습니다 /etc/mtab. 자세한 결과는 다음과 같습니다.

fpemud-workstation / # mount -t proc n /test/proc 
fpemud-workstation / # mount --rbind /sys /test/sys 
fpemud-workstation / # mount --make-rslave /test/sys 
fpemud-workstation / # mount --rbind /dev /test/dev 
fpemud-workstation / # mount --make-rslave /test/dev 

fpemud-workstation / # chroot /test ls /etc/mtab -l 
lrwxrwxrwx 1 root root 19 May 26 22:37 /etc/mtab -> ../proc/self/mounts 

fpemud-workstation / # chroot /test df /bin 
Filesystem     1K-blocks     Used Available Use% Mounted on 
-              476458008 51387464 400844752  12% / 

fpemud-workstation / # chroot /test cat /proc/mounts 
n /proc proc rw,relatime 0 0 
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0 
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0 
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0 
cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0 
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0 
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0 
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0 
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0 
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0 
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0 
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0 
configfs /sys/kernel/config configfs rw,relatime 0 0 
debugfs /sys/kernel/debug debugfs rw,relatime 0 0 
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0 
devtmpfs /dev devtmpfs rw,nosuid,size=1997472k,nr_inodes=499368,mode=755 0 0 
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0 
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0 
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0 
mqueue /dev/mqueue mqueue rw,relatime 0 0 

답변1

df/etc/mtab특정 마운트 지점에 마운트된 장치를 찾으려면 읽어보세요 . 이는 명령으로 업데이트된 파일이거나 mount커널에서 제공하는 현재 정보가 포함된 심볼릭 링크일 수 있습니다./proc/mounts

/etc/mtab장점은 더 정확한 정보를 제공한다는 것입니다. 즉, mount커널에서 처리하는 일부 정보가 아니라 에 전달되는 정보입니다. 그러나 여기에는 제한 사항도 있습니다. mount어떤 이유로 작성할 수 없는 경우(예: while이 /읽기 전용이거나 chroot에서 실행되는 경우) 동기화가 해제되어 mount작동하지 않을 수 있습니다. chroot.

chroot를 사용하려는 시스템에서는 /etc/mtab에 대한 심볼릭 링크를 만듭니다 /proc/mounts.

관련 정보