mmdebstrap
を使用して最小限のDebianシステムを構築するには、多くの場合、Chroot環境内のディレクトリを手動で取り付けて解除するという退屈なタスクが含まれます。 このガイドは、このプロセスを合理化するための効率的な自動化ソリューションを提示し、Chroot操作中にシームレスなアクセスを確保します。
/dev
/dev
なぜ自動化する
/dev
chroot環境には、デフォルトでホストシステムのディレクトリへのアクセスがありません。この制限は、アプリケーションが
のようなコマンドを実行するときにエラーを引き起こします。 手動マウントは面倒です。自動化により効率が向上します
/dev
apt update
/dev/null
ソリューション1:レバレッジ
<code>[...] /usr/bin/apt-key: 95: cannot create /dev/null: Permission denied /usr/bin/apt-key: 95: cannot create /dev/null: Permission denied E: gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed Err:3 http://deb.debian.org/debian bookworm-updates InRelease gpgv, gpgv2 or gpgv1 required for verification, but neither seems installed [...]</code>
systemd-nspawn
、、およびの自動マウントをエレガントに処理します。
systemd-nspawn
systemd
ステップ1:インストール/dev
/proc
Debianベースのシステムへのインストール/sys
インストール:
ステップ2:chrootエントリ
systemd-nspawn
クルー環境を作成します(例:
sudo apt update sudo apt install systemd-container
::
を使用してクルートを入力します
mmdebstrap
mmdebstrap --variant=minbase stable /tmp/debian-rootfs
ソリューション2:systemd-nspawn
スクリプト
sudo systemd-nspawn -D /tmp/debian-rootfs
systemd-nspawn
bashスクリプトは、クルー環境内での取り付けとマウントを簡素化します。 [ostechnix github gist](link_to_gist_here-利用可能な場合は実際のリンクに置き換えます)で入手できます。
主要な機能:chrootmnt
chrootmnt
堅牢なエラー処理。/dev
Exitでの自動クリーンアップ。
ステップ1:スクリプトの作成
スクリプトを実行可能にします:
ステップ3:スクリプトの使用chrootmnt.sh
#!/usr/bin/env bash CHROOT_DIR="" shift sudo mount --bind /dev "$CHROOT_DIR/dev" sudo mount --bind /dev/pts "$CHROOT_DIR/dev/pts" trap "sudo umount "$CHROOT_DIR/dev/pts"; sudo umount "$CHROOT_DIR/dev"" EXIT sudo chroot "$CHROOT_DIR" "$@"
でchroot環境を作成した後、スクリプトを使用してください。
を実際のクルーパスに置き換えることを忘れないでください。
chmod +x chrootmnt.sh
結論 自動化の取り付けにより、手動の介入がなくなり、
systemd-nspawn
:コンテナのような機能を必要とする高度なユーザーにとって理想的です。chrootmnt
スクリプト:マウント/マウントを簡単に自動化します。/dev
chroot環境での作業効率が向上します。 技術的な専門知識とワークフローのニーズに最適なソリューションを選択してください。
以上がLinuxのChroot環境で取り付け\/devを自動化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。