GNU/Linux
ルート(chroot)を変更する
サーチ…
前書き
Change root(chroot)は、現在実行中のプロセスとその子プロセスの明白なルートディレクトリを変更する操作です。そのような変更された環境で実行されるプログラムは、その環境ディレクトリツリー外のファイルやコマンドにアクセスすることはできません。
構文
- chroot [宛先パス] [シェルまたはコマンド]
ディレクトリ内のルートを手動で変更する
要件に従ってすべての要件を満たしていることを確認する
一時的なAPIファイルシステムをマウントする:
cd /location/of/new/root mount -t proc proc proc/ mount --rbind /sys sys/ mount --rbind /dev dev/ mount --rbind /run run/ (optionally)
chroot環境でインターネット接続を使用する必要がある場合は、DNSの詳細をコピーしてください:
cp /etc/resolv.conf etc/resolv.conf
rootを/ location / of / new / rootに変更し、シェル(この例では
/bin/bash
)を指定します。chroot /location/of/new/root /bin/bash
chrootの後、ローカルのbash設定をロードする必要があります:
source /etc/profile source ~/.bashrc
オプションで、chroot環境を区別できる一意のプロンプトを作成します。
export PS1="(chroot) $PS1"
chrootが終了したら、次のようにして終了することができます。
exit
一時ファイルシステムをアンマウントする:
cd / umount --recursive /location/of/new/root
要件
- ルート権限
- Live CDブートや既存のディストリビューションなど、別の動作中のLinux環境
-
chroot
ソースと宛先のマッチング環境アーキテクチャ(現在の環境アーキテクチャをuname -m
確認) -
chroot
環境で必要なカーネルモジュールをロードする必要があります(たとえば、modprobe
)
chrootを使う理由
ルートの変更は、通常、ブートやログインがもはや不可能なシステムでシステムメンテナンスを実行するために行われます。
一般的な例は次のとおりです。
- ブートローダを再インストールする
- initramfsイメージを再構築する
- パッケージのアップグレードまたはダウングレード
- 忘れたパスワードをリセットする
- クリーンなルート環境でソフトウェアを構築する
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow