この記事は中国語版をもとにした日本語版メモです。コマンド、コード、数式、画像リンクは原文の意味を壊さないように保持し、説明文と見出しを日本語向けに整理しています。
sudo mount /dev/sdXX /mnt
sudo mount /dev/sdaXX /mnt/home(有这个分区的话)
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run
sudo mount --bind /etc/resolv. conf /mnt/etc/resolv. conf
sudo mount --bind /tmp /mnt/tmp
sudo chroot /mnt 什么是 chroot?#
chroot(Change Root)是 Linux/Unix システム中的一种ツール,它允许你将当前的根ファイルシステム切换到指定的ディレクトリ,使该ディレクトリ成为虚拟机或类似于容器的环境。简单来说,chroot できます将システム的根ディレクトリ / 改变为某个其他的ディレクトリ,这样你できます在この隔离的环境下操作,不影响主システム。这种方式通常用于恢复システム、测试环境、构建软件或者実行独立的システム。
但是,chroot 环境并不自动包含宿主机所有功能。为了确保虚拟机能够正常使用类似宿主机的功能,比如设备访问、プロセス管理和ネットワーク功能,你必要手动挂载一些关键ファイルシステム。
挂载的原理:#
这些挂载操作是通过 --bind 选项来实现的,它允许将宿主机的某个ディレクトリ或ファイルシステム“绑定”到 chroot 环境的某个位置。这样一来,虚拟机就できます直接访问宿主机上的这些资源,达到正常実行システム和ネットワーク功能的目的。
这些ファイルシステム本身大多是虚拟的(たとえば /proc 和 /sys),そのため它们不是实际的存储内容,而是动态生成的システム信息。通过将它们挂载到虚拟机,虚拟机就できます和宿主机共享这些动态システム信息。
挂载的ファイルシステム有哪些?为什么挂载?#
为了让 chroot 环境有完整的システム功能,你必要挂载以下ファイルシステム或ファイル:
/proc (プロセスファイルシステム)#
/proc(プロセスファイルシステム)- 作用:提供システム和プロセス的信息,如 CPU、メモリ使用情况、挂载点等。
- 为什么挂载:许多コマンド依赖
/proc来获取システム状态(如ps,top等)。挂载后,chroot できます访问宿主机的システム和プロセス信息。 - 挂载コマンド:
sudo mount --bind /proc /mnt/proc
/sys (システムファイルシステム)#
/sys(システムファイルシステム)- 作用:提供关于システム硬件设备的信息,包括驱动程序、设备状态等。
- 为什么挂载:システム管理ツール(如
udevadm)和硬件相关的功能必要访问/sys。 - 挂载コマンド:
sudo mount --bind /sys /mnt/sys
/dev (设备ファイルシステム)#
/dev(设备ファイルシステム)- 作用:提供设备节点,比如ディスク、终端设备、USB 等。
- 为什么挂载:
/dev让chroot环境できます访问实际的硬件设备,包括ディスク、鼠标、键盘等,以及管理这些设备。 - 挂载コマンド:
sudo mount --bind /dev /mnt/dev
/run (実行时信息)#
/run(実行时信息)- 作用:包含システム実行时生成的临时ファイル,比如 PID ファイル、socket ファイル等。
- 为什么挂载:一些システムプロセス和服务必要
/run来存储它们的実行状态或通信ファイル。 - 挂载コマンド:
sudo mount --bind /run /mnt/run
/dev/pts (伪终端#
/dev/pts(伪终端)- 作用:提供伪终端(pseudo-terminal),用于作成多个终端会话,比如
ssh或sudo必要使用它。 - 为什么挂载:在
chroot中执行必要伪终端的コマンド时(如sudo),必须挂载/dev/pts。 - 挂载コマンド:
sudo mount --bind /dev/pts /mnt/dev/pts
- 作用:提供伪终端(pseudo-terminal),用于作成多个终端会话,比如
/etc/resolv.conf (DNS 設定)#
/etc/resolv.conf(DNS 設定)- 作用:設定システム如何解析域名,通过 DNS サーバー转换域名为 IP 地址。
- 为什么挂载:もし
chroot环境中必要访问ネットワーク(如更新软件),必须能解析域名,そのため要挂载/etc/resolv.conf。 - 挂载コマンド:
sudo mount --bind /etc/resolv.conf /mnt/etc/resolv.conf
/tmp (临时ファイル)#
/tmp(临时ファイル)- 作用:用于存储临时ファイル和ディレクトリ。
- 为什么挂载:某些程序可能必要
/tmpディレクトリ来存储临时数据。 - 挂载コマンド:
sudo mount --bind /tmp /mnt/tmp
挂载顺序#
一般来说,挂载这些ディレクトリ的顺序不是特别严格,只要你确保所有必要的ディレクトリ都已经挂载。できます按照以下手順进行:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run
sudo mount --bind /etc/resolv. conf /mnt/etc/resolv. conf
sudo mount --bind /tmp /mnt/tmpその後进入 chroot:
sudo chroot /mnt

