Czym jest debootstrap - drugi etap

11

Po prostu bawiłem się z debootstrapi schroot. Konfiguruję swoje środowiska debootstrap. Nie używam --second-stageopcji debootstrap.

Kiedy i jak muszę skorzystać z tej opcji. Co robi debootstrapw drugim etapie?

cheffo
źródło

Odpowiedzi:

11

Rozdzielenie dwóch etapów jest konieczne tylko wtedy, gdy ładujesz dystrybucję dla architektury obcej ( CrossDebootstrap ). Zobacz opis --foreignopcji na stronie podręcznika . Na przykład użycie komputera x86 do utworzenia instalacji Debian / Ubuntu dla wbudowanego systemu ARM lub PowerPC.

Pierwszy etap pobiera potrzebne pliki .deb i rozpakowuje je do wskazanego katalogu. W drugim etapie uruchamiane są wszystkie skrypty konfiguracyjne pakietu, które należy wykonać przy użyciu architektury docelowej (lub przy użyciu qemu-user-staticemulacji architektury docelowej).

Jeśli nie budujesz instalacji dla architektury obcej, etapy są łączone i możesz zignorować tę --second-stageopcję.

Matt
źródło
1
Ten post na Unix Stack Exchange zawiera również dobre informacje o --foreigni --second-stageopcjach.
GDP2
1

Przykład użycia debootstrap --second-stage

Jeśli chcesz zdebootować pasek obrazu arm64 Ubuntu 18.04 z hosta Ubuntu 18.04 amd64, wykonaj następujące czynności:

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-staticPakiet w Ubuntu 18.04 jest również wyposażony w qemu-debootstrapskrypt, który robi w zasadzie to samo, co my, ale uogólnione do wszystkich łuków. Nie ma go jednak w głównym drzewie źródeł QEMU.

Oto moja pełna konfiguracja do uruchomienia wygenerowanego systemu na pełnej emulacji systemu QEMU: Czy jest jakiś wstępnie zbudowany obraz Ubuntu QEMU (32-bitowy) online?

Testowane na Ubuntu 18.04.

Ciro Santilli
źródło