ฉันได้ต่อสู้กับ qemu และ virt-install โดยไม่มีประโยชน์ และฉันติดอยู่กับข้อความแสดงข้อผิดพลาดที่ไม่ช่วยเหลือซึ่งทำให้ฉันไปไหนไม่ได้เลย
ขั้นแรก การกำหนดค่าระบบที่จำเป็นบางอย่าง:
ระบบปฏิบัติการโลหะพื้นฐานคือ Ubuntu Server 20.04 LTS ไม่มีสภาพแวดล้อมเดสก์ท็อป ระบบปฏิบัติการ VM จะเป็น Ubuntu Server 18.04 LTS ไม่มีสภาพแวดล้อมเดสก์ท็อป
ฉันมี 60GB LVM ที่ /มังกรโหนด
ที่ฉันตั้งใจจะใช้เป็นวอลุ่มหน่วยเก็บข้อมูลหลักสำหรับเครื่องเสมือนนี้:
calyodelphi@dragonweyr:~$ lsblk
ชื่อ MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
[ละเว้นพาร์ทิชันลูป]
nvme0n1 259:0 0 477G 0 ดิสก์
âânvme0n1p1 259:1 0 512M 0 ส่วน /boot/efi
âânvme0n1p2 259:2 0 1G 0 ส่วน /บูต
âânvme0n1p3 259:3 0 475.4G 0 ส่วน
ââubuntu--vg-ubuntu--lv 253:0 0 50G 0 lvm /
ââubuntu--vg-dragonode--lv 253:1 0 60G 0 lvm /dragonode
ââubuntu--vg-dragonhoard--lv 253:2 0 365.4G 0 lvm /dragonhoard
ฉันได้กำหนดค่าบริดจ์ด้วย netplan เพื่อทำหน้าที่เป็นส่วนต่อประสานโลหะสำหรับระบบสำเร็จแล้ว:
calyodelphi@dragonweyr:~$ แสดงลิงค์ไอพี
1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP โหมด DEFAULT กลุ่มเริ่มต้น qlen 1000
ลิงค์/อีเธอร์ f8:75:a4:b5:ca:ba brd ff:ff:ff:ff:ff:ff
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
ลิงค์/อีเธอร์ 94:e6:f7:36:91:d8 brd ff:ff:ff:ff:ff:ff
4: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 สถานะ qdisc noqueue UP โหมด DEFAULT กลุ่มเริ่มต้น qlen 1000
ลิงค์/อีเธอร์ f8:75:a4:b5:ca:ba brd ff:ff:ff:ff:ff:ff
และตอนนี้คำสั่งที่ฉันปูด้วยหินและปัญหา:
calyodelphi@dragonweyr:~$ virt-install --name dragonode --ram=2048 --disk path=/dragonode/dragonode.qcow2,size=50,format=qcow2 --vcpus 1 --os-type linux --os -variant ubuntu18.04 -- ไม่มีกราฟิก -- สะพานเครือข่าย: br0 --location 'http://archive.ubuntu.com/ubuntu/dists/bionic/main/binary-amd64/' --extra-args "console = tty0 console=ttyS0,115200n8 ip=192.168.1.144::192.168.1.1:255.255.255.0:dragonode.home:eth0:ไม่มี"
ข้อผิดพลาด ข้อผิดพลาดในการตรวจสอบตำแหน่งการติดตั้ง: ไม่พบการแจกจ่ายที่ติดตั้งได้ที่ 'http://archive.ubuntu.com/ubuntu/dists/bionic/main/binary-amd64/'
ตำแหน่งต้องเป็นไดเร็กทอรีรากของแผนผังการติดตั้ง
ดูหน้าคนติดตั้ง virt สำหรับตัวอย่าง distro ต่างๆ
คำสั่งนี้ส่วนใหญ่ฉันรวบรวมโดยใช้เป็นส่วนใหญ่ คู่มือนี้ โดยอ้างอิงเพิ่มเติมเล็กน้อยจาก ตัวอย่างชุดนี้ (เฉพาะส่วนที่เชื่อมโยง) และ เอกสาร RedHat ที่เป็นประโยชน์นี้และแลกเปลี่ยนข้อความโดยตรงกับผู้เขียนบทความแรก
อย่างไรก็ตาม เมื่อเรียกใช้คำสั่งด้านบน คุณจะเห็นข้อผิดพลาดทั่วไปที่ไม่ช่วยเหลือ
ส่วนที่น่าผิดหวังของสิ่งนี้คือ URL นั้นมา โดยตรงจาก manpage สำหรับ virt-ติดตั้ง
ใน --ที่ตั้ง
คำจำกัดความของอาร์กิวเมนต์:
-l, --location ตัวเลือก
จำหน่ายแหล่งติดตั้งต้นไม้. virt-install สามารถจดจำแผนผังการแจกจ่ายบางอย่างและดึงเคอร์เนล / คู่เริ่มต้นที่สามารถบู๊ตได้
เปิดการติดตั้ง
--location ช่วยให้สิ่งต่าง ๆ เช่น --extra-args สำหรับการโต้แย้งเคอร์เนลและการใช้ --initrd-inject หากคุณต้องการใช้ตัวเลือกเหล่านั้นกับสื่อซีดีรอม
คุณสามารถส่ง ISO ไปที่ --location ซึ่งใช้ได้กับสื่อ CDROM บางส่วน แต่ไม่ใช่ทั้งหมด
"LOCATION" สามารถใช้รูปแบบใดรูปแบบหนึ่งต่อไปนี้:
https://host/path
ตำแหน่งเซิร์ฟเวอร์ HTTP ที่มีอิมเมจการแจกจ่ายที่ติดตั้งได้
ftp://host/path
ตำแหน่งเซิร์ฟเวอร์ FTP ที่มีอิมเมจการแจกจ่ายที่ติดตั้งได้
ISO ตรวจสอบ ISO และแตกไฟล์โดยใช้ 'isoinfo'
ไดเรกทอรี
พาธไปยังโลคัลไดเร็กทอรีที่มีอิมเมจการแจกจ่ายที่ติดตั้งได้ โปรดทราบว่าแขกจะไม่สามารถเข้าถึงไดเร็กทอรีได้ในภายหลัง
การบู๊ตครั้งแรก ดังนั้นตัวติดตั้ง OS จะต้องใช้วิธีอื่นในการเข้าถึงสื่อการติดตั้งที่เหลือ
ตัวอย่าง URL เฉพาะของ distro:
ตาม Fedora / Red Hat
https://download.fedoraproject.org/pub/fedora/linux/releases/29/Server/x86_64/os
เดเบียน
https://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/
อูบุนตู
https://us.archive.ubuntu.com/ubuntu/dists/wily/main/installer-amd64/
ซูส
https://download.opensuse.org/pub/opensuse/distribution/leap/42.3/repo/oss/
นอกจากนี้ --location สามารถใช้ตัวเลือกย่อย 'kernel' และ 'initrd' เส้นทางเหล่านี้สัมพันธ์กับ URL/ISO ของตำแหน่งที่ระบุที่อนุญาต
เลือกไฟล์เฉพาะสำหรับเคอร์เนล/initrd ภายในแผนผังการติดตั้ง สิ่งนี้มีประโยชน์หาก virt-install/ libosinfo ไม่ทราบว่าจะหาได้จากที่ใด
เคอร์เนลใน --location ที่ระบุ
ตัวอย่างเช่น หากคุณมี ISO ที่ libosinfo ไม่รู้จักเรียกว่า my-unknown.iso โดยมีเคอร์เนลอยู่ที่ 'kernel/fookernel' และเริ่มต้นที่
'kernel/fooinitrd' คุณสามารถใช้งานได้ด้วย:
--location my-unknown.iso,kernel=kernel/fookernel,initrd=kernel/fooinitrd
ฉันได้ลองใช้คำสั่งปัญหาหลายรูปแบบแล้ว:
คำแนะนำทั้งหมดจากเพื่อนที่เคยพบข้อผิดพลาดเดียวกันนี้มาก่อนและจำไม่ได้ว่าเขาแก้ไขอย่างไร
ความพยายาม ISO ส่งผลให้เกิดบรรทัดสุดท้ายเหล่านี้หลังจากนั้น ดูเหมือน เช่นเดียวกับความสำเร็จครั้งแรก:
เมานต์: การติดตั้ง /root/cdrom/casper/extras/modules.squashfs-generic บน /root/lib/modules ล้มเหลว: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
เมานต์: การติดตั้ง /dev บน /root/dev ล้มเหลว: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
[อีกไม่กี่สิ่งเหล่านี้]
run-init: ไดเร็กทอรีปัจจุบันบนระบบไฟล์เดียวกันกับรูท: ข้อผิดพลาด 0
ระบบไฟล์เป้าหมายไม่ได้ร้องขอ /sbin/init
[ข้อผิดพลาดในการเรียกใช้เพิ่มเติม]
ไม่พบการเริ่มต้น ลองผ่าน init=bootarg.
BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.3) เชลล์ในตัว (เถ้า)
ป้อน 'วิธีใช้' สำหรับรายการคำสั่งในตัว
(initramfs)
ฉันอยู่ไกลเกินความสามารถของฉันในการแก้ปัญหานี้ และต้องการความช่วยเหลืออย่างมากเพื่อให้ VM ทำงาน
การตั้งค่า VM ที่ฉันตั้งใจจะทำให้สำเร็จ:
- VM ที่เส้นทาง
/dragonode/dragonode.qcow2
- VM OS: Ubuntu 18.04 LTS ไม่มีกราฟิก
- ผูกอินเทอร์เฟซเครือข่ายเสมือนของ VM กับ
br0
- จัดเตรียมที่อยู่ IP 192.168.1.144 เพื่อให้ฉันสามารถ ssh ได้ทันที
- ส่วนที่เหลือควรอธิบายตนเองในคำสั่งเดิม