debootstrap คืออะไร - สองขั้นตอนสำหรับ


11

ฉันเพียงแค่เล่นไปรอบ ๆ ด้วยและdebootstrap ฉันตั้งค่าสภาพแวดล้อมของฉันด้วยschroot debootstrapฉันไม่ได้ใช้ตัวเลือกในการ--second-stagedebootstrap

ฉันต้องใช้ตัวเลือกนี้เมื่อใดและอย่างไร สิ่งที่ไม่debootstrapต้องทำในขั้นตอนที่สอง?

คำตอบ:


11

การแยกสองขั้นตอนจำเป็นเฉพาะเมื่อคุณทำการบูตการกระจายสำหรับสถาปัตยกรรมต่างประเทศ ( CrossDebootstrap ) SSEE คำอธิบายของ--foreignตัวเลือกบนหน้าคน ตัวอย่างเช่นการใช้เครื่อง x86 เพื่อสร้างการติดตั้ง Debian / Ubuntu สำหรับระบบ ARM หรือ PowerPC ในตัว

ขั้นตอนแรกจะดาวน์โหลดไฟล์. deb ที่จำเป็นและคลายไฟล์ลงในไดเรกทอรีที่คุณระบุ ขั้นตอนที่สองรันสคริปต์การกำหนดค่าแพคเกจทั้งหมดซึ่งจะต้องดำเนินการโดยใช้สถาปัตยกรรมเป้าหมาย (หรือโดยใช้qemu-user-staticเพื่อจำลองสถาปัตยกรรมเป้าหมาย)

หากคุณไม่ได้สร้างการติดตั้งสำหรับสถาปัตยกรรมต่างประเทศขั้นตอนจะถูกรวมเข้าด้วยกันและคุณสามารถข้าม--second-stageตัวเลือกนี้ได้


1
โพสต์ใน Unix Stack Exchange นี้ยังมีข้อมูลที่ดีเกี่ยวกับตัวเลือก--foreignและ --second-stage
GDP2

1

ตัวอย่างการใช้งาน debootstrap --second-stage

หากคุณต้องการ debootstrap ภาพ 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สคริปต์ที่ไม่โดยทั่วไปเป็นสิ่งเดียวกับที่เราทำ แต่โดยทั่วไปจะ archs ทั้งหมด มันไม่ได้อยู่ในแผนผังต้นกำเนิดหลักของ QEMU

นี่คือการตั้งค่าแบบเต็มของฉันเพื่อเรียกใช้ระบบที่สร้างขึ้นในการจำลองระบบเต็มรูปแบบ QEMU: มีภาพ QEMU Ubuntu (32 บิต) ที่สร้างไว้ล่วงหน้าออนไลน์หรือไม่

ทดสอบบน Ubuntu 18.04

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.