Відповіді:
Розмежування двох етапів потрібно лише в тому випадку, якщо ви завантажуєте дистрибутив для іноземної архітектури ( CrossDebootstrap ). Перегляньте опис --foreign
опції на сторінці чоловіка . Наприклад, використання машини x86 для створення установки Debian / Ubuntu для вбудованої системи ARM або PowerPC.
На першому етапі завантажуються потрібні файли .deb і розпаковується їх у вказаний вами каталог. На другому етапі виконуються всі сценарії конфігурації пакета, які необхідно виконати за допомогою цільової архітектури (або за допомогою qemu-user-static
імітації цільової архітектури).
Якщо ви не будуєте інсталяцію для іноземної архітектури, етапи поєднуються, і ви можете ігнорувати --second-stage
варіант.
Приклад використання debootstrap --second-stage
Якщо ви хочете зняти завантаження зображення arm64 Ubuntu 18.04 з хоста Ubuntu 18.04 amd64, ви зробите це:
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"
qemu-user-static
Пакет в Ubuntu 18.04 поставляється з qemu-debootstrap
скрипт , який робить в основному той же самий, що ми робили, але узагальнена все арки. Однак воно не знаходиться в дереві основного джерела QEMU.
Ось моя повна настройка для запуску створеної системи на повній емуляції системи QEMU: Чи є попередньо вбудований образ QEMU Ubuntu (32 біт) в Інтернеті?
Тестовано на Ubuntu 18.04.
--foreign
та--second-stage
варіанти.