Respostas:
A separação dos dois estágios é necessária apenas se você estiver inicializando uma distribuição para uma arquitetura estrangeira ( CrossDebootstrap ). Veja a descrição da --foreign
opção na página de manual . Por exemplo, usando uma máquina x86 para criar uma instalação Debian / Ubuntu para um sistema ARM ou PowerPC incorporado.
O primeiro estágio baixa os arquivos .deb necessários e os descompacta no diretório que você especificar. O segundo estágio executa todos os scripts de configuração do pacote, o que deve ser feito usando a arquitetura de destino (ou usando qemu-user-static
para emular a arquitetura de destino).
Se você não estiver construindo uma instalação para uma arquitetura estrangeira, os estágios serão combinados e você poderá ignorar a --second-stage
opção.
Exemplo de como usar debootstrap --second-stage
Se você deseja desbootar uma imagem arm64 do Ubuntu 18.04 de um host Ubuntu 18.04 amd64, faça:
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"
O qemu-user-static
pacote no Ubuntu 18.04 também vem com um qemu-debootstrap
script que faz basicamente a mesma coisa que fizemos, mas generalizado para todos os arcos. No entanto, não está na árvore de fontes principal do QEMU.
Aqui está minha configuração completa para executar o sistema gerado na emulação de sistema completo do QEMU: Existe alguma imagem pré-criada do QEMU Ubuntu (32 bits) online?
Testado no Ubuntu 18.04.
--foreign
e--second-stage
.