Câu trả lời:
Việc tách hai giai đoạn chỉ cần thiết nếu bạn đang khởi động phân phối cho một kiến trúc nước ngoài ( CrossDebootstrap ). Xem mô tả của --foreign
tùy chọn trên trang người đàn ông . Ví dụ: sử dụng máy x86 để tạo cài đặt Debian / Ubuntu cho hệ thống ARM hoặc PowerPC được nhúng.
Giai đoạn đầu tiên tải xuống các tệp .deb cần thiết và giải nén chúng vào thư mục bạn chỉ định. Giai đoạn thứ hai chạy tất cả các tập lệnh cấu hình gói, phải được thực hiện bằng cách sử dụng kiến trúc đích (hoặc bằng cách sử dụng qemu-user-static
để mô phỏng kiến trúc đích).
Nếu bạn không xây dựng bản cài đặt cho kiến trúc nước ngoài, các giai đoạn được kết hợp và bạn có thể bỏ qua --second-stage
tùy chọn.
Ví dụ về cách sử dụng debootstrap --second-stage
Nếu bạn muốn gỡ lỗi một hình ảnh Ubuntu 18.04 arm64 từ máy chủ Ubuntu 18.04 amd64, bạn sẽ làm:
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"
Các qemu-user-static
gói trong Ubuntu 18,04 cũng đi kèm với một qemu-debootstrap
kịch bản mà không cơ bản được điều tương tự như chúng ta đã làm, nhưng tổng quát cho tất cả các archs. Tuy nhiên, nó không nằm trong cây nguồn chính của QEMU.
Đây là thiết lập đầy đủ của tôi để chạy hệ thống được tạo trên mô phỏng toàn hệ thống QEMU: Có hình ảnh Ubuntu QEMU dựng sẵn (32 bit) nào không?
Đã thử nghiệm trên Ubuntu 18.04.
--foreign
và--second-stage
các tùy chọn.