我有两个分区,一个安装在/,一个安装在/crypt。我使用的是bind安装到安装/crypt/home在/home/(和各种其他)。
问题是我现在有点需要查看原始/home目录,但当然我只看到/crypt/home.
我无法卸载它,因为要这样做我必须登录,这意味着 /home 正在使用中...
有没有办法(可能是另一个绑定安装或其他东西)我可以访问原始/home目录下的文件,而无需求助于从 USB 记忆棒等启动?
如果您只是以 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
Run Code Online (Sandbox Code Playgroud)
如您所见,/esp安装在/.
mkdir /tmp/root
sudo mount --bind / /tmp/root
ls /esp /tmp/root/esp
/esp:
EFI/ shellia32.efi* shellx64.efi*
/tmp/root/esp:
Run Code Online (Sandbox Code Playgroud)
现在我将得到一个文件/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
Run Code Online (Sandbox Code Playgroud)
所以我在/esp挂载的目录中创建了一个文件。看?
sudo umount /boot /esp; ls /esp
blank_file
sudo mount -a; ls /esp
EFI/ shellia32.efi* shellx64.efi*
Run Code Online (Sandbox Code Playgroud)
我不得不umount /boot 并且 /esp因为/boot实际上来自 .bin 上的绑定安装文件夹/esp。这两个都定义在/etc/fstab- 这就是为什么mount -a把它们带回来。
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |