두 개의 파티션이 있습니다. 하나는 /에 마운트되고 다른 하나는 /crypt에 마운트됩니다. 저는 bind
마운트 /crypt/home
( /home/
및 기타 다양한 마운트)를 사용하고 있습니다.
문제는 이제 원래 /home
디렉토리를 볼 필요가 있지만 물론 /crypt/home
.
로그인해야 하기 때문에 제거할 수 없습니다. 즉, /home이 사용 중이라는 의미입니다.
/home
USB 스틱 등에서 부팅하지 않고 원래 디렉터리의 파일에 액세스할 수 있는 방법(다른 바인드 마운트 등)이 있습니까 ?
답변1
방금 루트로 로그인한 경우에는 문제 없이 설치가 가능합니다 /home
. 그러나 이것이 가능하지 않다면 간단하게 mount --bind / /elsewhere
. 기본적으로 --bind
유형 마운트는 재귀적이지 않습니다. 따라서 마운트된 파일 시스템은 다른 곳에 마운트될 때 이를 따르지 않습니다 /
. --bind
너할 수 있는그러나 다른 곳에는 재귀적으로 설치됩니다 --rbind
.
예를 들어:
findmnt /esp; findmnt /
TARGET SOURCE FSTYPE OPTIONS
/esp /dev/sda1 vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda2[/arch_root] btrfs rw,relatime,compress-force=lzo,ssd,space_cache,autodefrag
보시다시피 /esp
에 설치되었습니다 /
.
mkdir /tmp/root
sudo mount --bind / /tmp/root
ls /esp /tmp/root/esp
/esp:
EFI/ shellia32.efi* shellx64.efi*
/tmp/root/esp:
이제 파일을 다음 위치에 넣었습니다 /tmp/root/esp
.
sudo touch /tmp/root/esp/blank_file
ls /esp /tmp/root/esp
/esp:
EFI/ shellia32.efi* shellx64.efi*
/tmp/root/esp:
blank_file
/esp
그래서 설치된 디렉토리에 파일을 만들었습니다. 바라보다?
sudo umount /boot /esp; ls /esp
blank_file
sudo mount -a; ls /esp
EFI/ shellia32.efi* shellx64.efi*
나는해야만했다umount /boot
그리고 /esp
실제로 /boot
는 /esp
. 둘 다 거기에 있습니다 /etc/fstab
. 그래서 mount -a
다시 가져온 것입니다.