我有两个分区,一个安装在 / ,一个安装在 /crypt 。我正在使用bind
安装座/crypt/home
(/home/
以及其他各种安装座)。
问题是我现在有点需要查看原始/home
目录,但当然我只看到/crypt/home
.
我无法卸载它,因为为此我必须登录,这意味着 /home 正在使用中......
有没有一种方法(也许是另一种绑定安装或其他方法)可以访问原始/home
目录下的文件,而无需从 USB 记忆棒等启动?
答案1
如果您只是以 root 身份登录,那么安装就不会有任何问题/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
把它们带回来的原因。