Risposte:
La separazione delle due fasi è necessaria solo se si sta eseguendo il bootstrap di una distribuzione per un'architettura esterna ( CrossDebootstrap ). Vedi la descrizione --foreign
dell'opzione nella pagina man . Ad esempio, usare una macchina x86 per creare un'installazione Debian / Ubuntu per un sistema ARM o PowerPC incorporato.
La prima fase scarica i file .deb necessari e li decomprime nella directory specificata. La seconda fase esegue tutti gli script di configurazione del pacchetto, che devono essere eseguiti utilizzando l'architettura di destinazione (o utilizzando qemu-user-static
per emulare l'architettura di destinazione).
Se non stai costruendo un'installazione per un'architettura straniera, le fasi sono combinate e puoi ignorare l' --second-stage
opzione.
Esempio di come usare debootstrap --second-stage
Se vuoi debootstrap di un'immagine Ubuntu 18.04 arm64 da un host Ubuntu 18.04 amd64, faresti:
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"
Il qemu-user-static
pacchetto in Ubuntu 18.04 qemu-debootstrap
include anche uno script che fa sostanzialmente la stessa cosa che abbiamo fatto, ma generalizzato a tutti gli arch. Tuttavia, non si trova nell'albero dei sorgenti principale di QEMU.
Ecco la mia configurazione completa per eseguire il sistema generato sull'emulazione dell'intero sistema QEMU: Esiste un'immagine QEMU Ubuntu (32 bit) preconfigurata online?
Testato su Ubuntu 18.04.
--foreign
e--second-stage
.