Jawaban:
Memisahkan kedua tahap hanya diperlukan jika Anda bootstrap distribusi untuk arsitektur asing ( CrossDebootstrap ). Lihat deskripsi --foreign
opsi pada halaman manual . Misalnya, menggunakan mesin x86 untuk membuat instalasi Debian / Ubuntu untuk sistem ARM atau PowerPC yang tertanam.
Tahap pertama mengunduh file .deb yang diperlukan dan membuka paketnya ke direktori yang Anda tentukan. Tahap kedua menjalankan semua skrip konfigurasi paket, yang harus dilakukan menggunakan arsitektur target (atau dengan menggunakan qemu-user-static
untuk meniru arsitektur target).
Jika Anda tidak membangun instalasi untuk arsitektur asing, tahapannya digabungkan dan Anda dapat mengabaikan --second-stage
opsi.
Contoh cara menggunakan debootstrap --second-stage
Jika Anda ingin melakukan debootstrap gambar arm64 Ubuntu 18.04 dari host Ubuntu 18.04 amd64, Anda harus:
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"
The qemu-user-static
paket di Ubuntu 18.04 juga dilengkapi dengan qemu-debootstrap
script yang melakukan pada dasarnya hal yang sama seperti yang kita lakukan, tapi digeneralisasi untuk semua archs. Namun itu tidak ada di pohon sumber utama QEMU.
Berikut ini adalah pengaturan lengkap saya untuk menjalankan sistem yang dihasilkan pada emulasi sistem lengkap QEMU: Apakah ada gambar Ubuntu QEMU prebuilt (32bit) online?
Diuji pada Ubuntu 18.04.
--foreign
dan--second-stage
opsi yang bagus.