サーチ…


前書き

Change root(chroot)は、現在実行中のプロセスとその子プロセスの明白なルートディレクトリを変更する操作です。そのような変更された環境で実行されるプログラムは、その環境ディレクトリツリー外のファイルやコマンドにアクセスすることはできません。

構文

  • chroot [宛先パス] [シェルまたはコマンド]

ディレクトリ内のルートを手動で変更する

  1. 要件に従ってすべての要件を満たしていることを確認する

  2. 一時的なAPIファイルシステムをマウントする:

    cd /location/of/new/root
    mount -t proc proc proc/
    mount --rbind /sys sys/
    mount --rbind /dev dev/
    mount --rbind /run run/ (optionally)
    
  1. chroot環境でインターネット接続を使用する必要がある場合は、DNSの詳細をコピーしてください:

    cp /etc/resolv.conf etc/resolv.conf
    
  2. rootを/ location / of / new / rootに変更し、シェル(この例では/bin/bash )を指定します。

    chroot /location/of/new/root /bin/bash
    
  3. chrootの後、ローカルのbash設定をロードする必要があります:

    source /etc/profile
    source ~/.bashrc
    
  4. オプションで、chroot環境を区別できる一意のプロンプトを作成します。

    export PS1="(chroot) $PS1"
    
  5. chrootが終了したら、次のようにして終了することができます。

    exit
    
  6. 一時ファイルシステムをアンマウントする:

    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