如何使用 chroot 的绝对路径挂载 -t proc proc proc/ ?

如何使用 chroot 的绝对路径挂载 -t proc proc proc/ ?

我们知道 chroot 需要在 chroot 目录中安装一些文件系统,如下所示:

chroot_dir=/some/where
cd $chroot_dir/
mount -t proc proc proc/
mount --rbind /sys sys/
mount --rbind /dev dev/

我想要的是用它们的绝对路径挂载这些目录
对于 sys 和 dev 这对我来说非常清楚!它可以是这样的:

chroot_dir=/some/where
mount --rbind /sys $chroot_dir/sys/
mount --rbind /dev $chroot_dir/dev/

但我不知道如何处理proc
我不知道它是否应该像那样:
mount -t $chroot_dir/proc $chroot_dir/proc $chroot_dir/proc/
或任何!

有人知道如何处理这个问题吗?

答案1

“绝对路径”将如 chroot 内部所示。但是,您可以在准备 chroot 时挂载这些文件系统,而不必担心将它们设置为绝对路径名。

这些问题有助于与您的示例进行比较

特别是,回答在第二个问题中引用了 Arch Wiki(关于更改根目录)是最简单的一种,因为它仅使用文件系统类型(没有来自非 chrooted 文件系统的特殊设备)。其他答案使用--bindmount 选项。

答案2

man mount

       -t, --types vfstype
              -t 后面的参数用于指示
              文件系统类型。当前的文件系统类型
              目前支持的包括:adfs、affs、autofs、cifs、
              [。 。 。 ]

并且proc,除其他外。因此,该-t参数采用多种文件系统类型之一,而不是/a/directory/name.照常挂载将采用您要挂载的系统的名称,后跟系统挂载的目录。所以你的命令看起来像这样:

挂载 --rbind /sys $chroot_dir/sys/
挂载 --rbind /dev $chroot_dir/dev/
挂载 -t proc /proc $chroot_dir/proc/

我第二托马斯的提及,您可以在以下位置阅读有关此主题的更多信息:Arch 维基文章他指出(尽管有些物流可能会因系统而异,具体取决于您想要做什么)。

相关内容