debootstrap
とschroot
で遊んでみました。 debootstrap
を使用して環境をセットアップしています。 debootstrap
の--second-stage
オプションを使用していません。
このオプションをいつ、どのように使用する必要がありますか。第二段階でdebootstrap
は何をしますか?
2つのステージを分離する必要があるのは、外部アーキテクチャのディストリビューションをブートストラップする場合のみです( CrossDebootstrap )。 manページ の--foreign
オプションの説明を参照してください。たとえば、x86マシンを使用して、埋め込みARMまたはPowerPCシステム用のDebian/Ubuntuインストールを作成します。
最初の段階では、必要な.debファイルをダウンロードし、指定したディレクトリに展開します。 2番目の段階では、すべてのパッケージ構成スクリプトを実行します。これは、ターゲットアーキテクチャを使用して(またはターゲットアーキテクチャをエミュレートするためにqemu-user-static
を使用して)実行する必要があります。
外部アーキテクチャ用のインストールを構築していない場合は、ステージが結合され、--second-stage
オプションを無視できます。
debootstrap --second-stage
の使用方法の例
Ubuntu 18.04 AMD64ホストからarm64 Ubuntu 18.04イメージをデブートする場合は、次のようにします。
Sudo apt-get install \
debootstrap \
qemu-user-static \
;
debootstrap_dir=debootstrap
Sudo debootstrap \
--Arch arm64 \
--foreign \
bionic \
"$debootstrap_dir" \
http://ports.ubuntu.com/ubuntu-ports \
;
Sudo mkdir -p "${debootstrap_dir}/usr/bin"
Sudo cp "$(which qemu-aarch64-static)" "${debootstrap_dir}/usr/bin"
Sudo chroot "$debootstrap_dir" /debootstrap/debootstrap --second-stage
Sudo rm -f "$root_filesystem"
Ubuntu 18.04のqemu-user-static
パッケージには、qemu-debootstrap
スクリプトも付属しています。このスクリプトは、基本的に私たちと同じですが、すべてのアーキテクチャに一般化されています。ただし、QEMUのメインソースツリーにはありません。
QEMUフルシステムエミュレーションで生成されたシステムを実行するための完全なセットアップを次に示します。 オンラインで事前にビルドされたQEMU Ubuntuイメージ(32ビット)はありますか?
Ubuntu 18.04でテスト済み。