ติดตั้ง VM จากบรรทัดคำสั่งด้วย virt-install


16

ข้อจำกัดความรับผิดชอบ:

ตอนนี้ฉันใช้virt-managerเพื่อสร้างและจัดการ VM ของฉันและมันช่วยชีวิตจริงๆ สามารถใช้จากระยะไกล (จากเครื่องที่สามซึ่งโดยทั่วไปคือเวิร์กสเตชันของคุณ) หากโฮสต์ไม่มีจอแสดงผลแบบกราฟิก

การเกิดขึ้นของvncบทเรียนการติดตั้งที่ฉันพบทำให้ฉันคิดว่าขั้นตอน "แนะนำ" จำเป็นต้องใช้สิ่ง X ในโฮสต์แขกหรือทั้งสองอย่าง ไม่ได้อย่างแน่นอน. ความผิดพลาดของฉัน. หากคุณอยู่ในสถานการณ์เดียวกันให้คิดสองครั้งก่อนลองติดตั้ง VM จากบรรทัดคำสั่ง


ฉันกำลังพยายามติดตั้ง Debian VM ในโฮสต์ Debian โดยใช้virt-installและฉันไม่รู้วิธีส่งภาพ. isiso

virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --location=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args='console=tty0 console=ttyS0,115200n8 serial'

Starting install...
Retrieving file info...                                                                                                                                         |  160 B     00:00 ... 
ERROR    Could not find an installable distribution at '/home/jerome/debian-8.0.0-amd64-netinst.iso'
The location must be the root directory of an install tree.
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start prod
otherwise, please restart your installation.
root@versailles:/etc# 

คำตอบที่ฉันได้เห็นนั้นค่อนข้างบิดเบี้ยวเช่นใช้ apache เพื่อแสดงรูปภาพ. iso ในพื้นที่ราวกับว่ามันมาจากสถานที่ห่างไกล

ฉันไม่อยากจะเชื่อเลยว่ามันซับซ้อนขนาดนั้น ใช่ไหม?

man virt-install พูดว่า:

If you want to use those options with CDROM media, you have a few options:

         * Run virt-install as root and do --location ISO

         * Mount the ISO at a local directory, and do --location DIRECTORY

         * Mount the ISO at a local directory, export that directory over local http, and do --location http://localhost/DIRECTORY

นี่ไม่ใช่สิ่งที่ฉันกำลังทำอยู่เหรอ

มีคนบอกว่าเขาย้าย. iso ไปที่ / cdrom และใช้งานได้แต่ฉันไม่เข้าใจว่าเขาทำอะไรและฉันไม่สามารถทำซ้ำได้

ฉันไม่สามารถใช้--cdromแทน--locationเช่นเดียวกับในคำถามนี้เพราะทำงานเฉพาะในกรณีที่ระบุไว้กับ--extra-args--location

virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --cdrom=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args='console=tty0 console=ttyS0,115200n8 serial'
ERROR    --extra-args only work if specified with --location. See the man page for examples of using --location with CDROM media

แก้ไข:

เข้าสู่ระบบด้วย --debug

virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --location=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args='console=tty0 console=ttyS0,115200n8 serial' --debug
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:187) Launched with command line: /usr/share/virt-manager/virt-install --connect qemu:///system --virt-type kvm --name prod --ram 6144 --disk /srv/vm/prod.qcow,format=qcow2,size=10 --location=/home/jerome/debian-8.0.0-amd64-netinst.iso --network bridge=br0 --os-type linux --os-variant debianwheezy --extra-args=console=tty0 console=ttyS0,115200n8 serial --debug
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:195) Requesting libvirt URI qemu:///system
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:199) Received libvirt URI qemu:///system
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:193) Requesting virt method 'default', hv type 'kvm'.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:432) Received virt method 'kvm'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:433) Hypervisor name is 'hvm'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:476) DISPLAY is not set: defaulting to nographics.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (guest:208) Setting Guest.os_variant to 'debianwheezy'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (diskbackend:171) Path '/srv/vm' is target for pool 'srv-kvm'. Creating volume 'prod.qcow'.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (connection:228) Fetching volume XML failed: Storage volume not found: no storage vol with matching path '/media/cdrom0/debian-8.0.0-amd64-netinst.iso'
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (virt-install:551) Guest.has_install_phase: True

Starting install...
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (distroinstaller:417) Using scratchdir=/var/lib/libvirt/boot
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:204) Preparing mount at /var/lib/libvirt/boot/virtinstmnt.srz86f
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:214) mount cmd: ['/bin/mount', '-o', 'ro,loop', '/home/jerome/debian-8.0.0-amd64-netinst.iso', '/var/lib/libvirt/boot/virtinstmnt.srz86f']
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:302) Finding distro store for location=/home/jerome/debian-8.0.0-amd64-netinst.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/.treeinfo
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:325) Prioritizing distro store=<class 'virtinst.urlfetcher.DebianDistro'>
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/current/images/MANIFEST
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/daily/MANIFEST
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/Fedora
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:99) Fetching URI: /var/lib/libvirt/boot/virtinstmnt.srz86f/.disk/info
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:110) Saved file to /var/lib/libvirt/boot/virtinst-info.lZMVqL
Retrieving file info...                                                                                                                                                                                                  |  160 B     00:00 ... 
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:1016) Regex didn't match, not a ALT Linux distro
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/current/images/MANIFEST
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/install/netboot/version.info
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/SL
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/directory.yast
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/CentOS
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/VERSION
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/Server
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/Client
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/RedHat
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/images/pxeboot/vmlinuz
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/images/boot.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/boot/boot.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/current/images/netboot/mini.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:183) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.srz86f/install/images/boot.iso
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (urlfetcher:225) Cleaning up mount at /var/lib/libvirt/boot/virtinstmnt.srz86f
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:234)   File "/usr/share/virt-manager/virt-install", line 876, in <module>
    sys.exit(main())
  File "/usr/share/virt-manager/virt-install", line 870, in main
    start_install(guest, continue_inst, options)
  File "/usr/share/virt-manager/virt-install", line 588, in start_install
    fail(e, do_exit=False)
  File "/usr/share/virt-manager/virtinst/cli.py", line 234, in fail
    logging.debug("".join(traceback.format_stack()))

[mer., 03 juin 2015 17:46:12 virt-install 12991] ERROR (cli:235) Could not find an installable distribution at '/home/jerome/debian-8.0.0-amd64-netinst.iso'
The location must be the root directory of an install tree.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:237) 
Traceback (most recent call last):
  File "/usr/share/virt-manager/virt-install", line 560, in start_install
    dom = guest.start_install(meter=meter, noboot=options.noreboot)
  File "/usr/share/virt-manager/virtinst/guest.py", line 384, in start_install
    self._prepare_install(meter, dry)
  File "/usr/share/virt-manager/virtinst/guest.py", line 277, in _prepare_install
    util.make_scratchdir(self.conn, self.type))
  File "/usr/share/virt-manager/virtinst/installer.py", line 201, in prepare
    self._prepare(guest, meter, scratchdir)
  File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 444, in _prepare
    self._prepare_kernel_url(guest, fetcher)
  File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 347, in _prepare_kernel_url
    store = urlfetcher.getDistroStore(guest, fetcher)
  File "/usr/share/virt-manager/virtinst/urlfetcher.py", line 346, in getDistroStore
    fetcher.location))
ValueError: Could not find an installable distribution at '/home/jerome/debian-8.0.0-amd64-netinst.iso'
The location must be the root directory of an install tree.
[mer., 03 juin 2015 17:46:12 virt-install 12991] DEBUG (cli:248) Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start prod
otherwise, please restart your installation.
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start prod
otherwise, please restart your installation.

มันใช้งานได้--location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/แต่มันน่าละอายที่จะทำเช่นนี้เมื่อมีรูปภาพ. iso ในเครื่องหรือไม่

  • การสูญเสียการตรวจสอบย้อนกลับ: คุณไม่สามารถทำซ้ำได้ในภายหลังเพื่อให้แน่ใจว่าคุณได้รับแหล่งเดียวกัน

  • การใช้แบนด์วิดท์หลายตัวจากเซิร์ฟเวอร์ / มิเรอร์

  • ต้องการอินเทอร์เน็ต

  • ช้าลง


คุณมีสิทธิ แต่คุณสามารถลดบางส่วนของข้อบกพร่องเหล่านั้นโดยการสร้างเซิร์ฟเวอร์แคชแพคเกจท้องถิ่นโดยใช้apt-cacher-ngหรือกระจกเต็มรูปแบบโดยใช้apt-กระจกหรือftpsync จริงๆแล้วการกระจาย CD / DVD / BD เป็นเพียงส่วนเล็ก ๆ ของคอลเล็กชั่นแพคเกจที่ยอดเยี่ยมของ Debian มันทำลายความได้เปรียบอย่างหลีกเลี่ยงไม่ได้และเพียงทำให้เราหงุดหงิด ดังนั้นคนจำนวนมากมักจะรักษากระจกในพื้นที่และเพลิดเพลินกับความสมบูรณ์ตั้งแต่เริ่มต้นการติดตั้ง
yaegashi

สิ่งนี้ได้รับการแก้ไขใน virt-manager 1.4.3 ( กระทำ )
ทอม

คำตอบ:


6

virt-installพยายามแยกเคอร์เนลและไฟล์ initrd จากอิมเมจ ISO ด้วย--debugคุณสามารถดูกิจกรรมทั้งหมดของมันรวมถึงการติดตั้งแบบวนซ้ำค้นหาไฟล์เหล่านั้น ฯลฯ

Starting install...
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (Installer:182) scratchdir=/var/lib/libvirt/boot
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:184) Preparing mount at /var/lib/libvirt/boot/virtinstmnt.dwcpql
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (OSDistro:65) Attempting to detect distro:
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/.treeinfo
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/Fedora
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/Server
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/Client
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/RedHat
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/CentOS
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/SL
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/directory.yast
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/current/images/MANIFEST
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/daily/MANIFEST
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/current/images/MANIFEST
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/install/netboot/version.info
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/initrd.gz
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (OSDistro:990) Doesn't look like an Ubuntu Distro.
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/VERSION
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/VERSION
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/boot/platform/i86xpv/kernel/unix
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/platform/i86xpv/kernel/unix
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/STARTUP/XNLOADER.SYS
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/images/pxeboot/vmlinuz
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/images/boot.iso
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/boot/boot.iso
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/current/images/netboot/mini.iso
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:169) local hasFile: Couldn't find /var/lib/libvirt/boot/virtinstmnt.dwcpql/install/images/boot.iso
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] DEBUG (ImageFetcher:205) Cleaning up mount at /var/lib/libvirt/boot/virtinstmnt.dwcpql
[Wed, 03 Jun 2015 07:56:40 virt-install 29692] ERROR (cli:445) Could not find an installable distribution at '/home/yaegashi/debian-8.0.0-amd64-netinst.iso'

ฉันคิดว่าvirt-installไม่รองรับภาพ ISO Debian netinst ด้วย--location(แต่ Ubuntu รองรับอย่างใด)

ในการบูตเคอร์เนลด้วย--extra-args, virt-installต้องมีเคอร์เนลเหล่านั้นและสอดคล้อง initrd ไฟล์ --cdromเพียงแค่ติด ISO --extra-argsลงแผ่นซีดีไดรฟ์ของผู้เข้าพักที่ไม่เพียงพอที่จะทำงานร่วมกับ

หากคุณต้องการใช้--extra-argsฉันขอแนะนำให้คุณใช้ไฟล์ "netboot" เคอร์เนล / initrd โดยระบุ URL การติดตั้ง Debian ของมิเรอร์ที่ใกล้ที่สุดเช่น --location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/ที่อธิบายไว้ในคู่มือ


ขอบคุณ ยอมรับคำตอบของคุณเนื่องจากดูเหมือนว่าไม่มีวิธีง่ายๆ แต่ฉันคิดว่าวิธีนี้มีปัญหา (คำถามได้รับการอัปเดตตามนั้น)
Jérôme

แน่นอนว่ามันจะใช้งานได้ แต่ฉันไม่คิดว่ามันจะตอบคำถามของวิธีการติดตั้งจาก iso ในพื้นที่ซึ่งคุณอาจต้องทำถ้าคุณไม่มีอินเทอร์เน็ต
Rick Chatham

โปรดทราบว่านี่ไม่ใช่ลิงก์ไปยัง ISO แต่เป็นลิงก์ไปยัง ... โครงสร้างไดเรกทอรีที่ทราบว่ามี ISO เอาฉันพยายามที่จะคิดออก ทำไมสิ่งนี้ถึงใช้งานได้กับ KVM-Debian แตกต่างจาก KVM-CentOS (ซึ่งฉันเพิ่งย้ายออกไป) ฉันไม่มีความคิด แต่มันใช้งานได้ (ยังในปี 2019)
ไคม์เอลียาห์

8

วิธีนี้ใช้ได้ผลสำหรับฉัน:

virt-install --name=centos \
--memory=8196 --vcpus=2 \
--location=/var/lib/libvirt/images/CentOS-7-x86_64-Minimal-1511.iso \
--disk /var/lib/libvirt/images/centos7.qcow2,device=disk,bus=virtio,size=8 \
--network bridge:br0 \
--os-type=linux  \
--nographics \
--extra-args='console=tty0 console=ttyS0,115200n8 serial'

2
คำตอบที่ชอบส่วนตัว การนำเสนอที่ง่ายมากสำหรับฉันที่จะเข้าใจ ขอบคุณ!
bitofagoob

วิธีนี้ใช้งานได้ดีกับ Centos แต่ไม่สามารถใช้กับไฟล์ Debian หรือ Ubuntu ISO ได้ คุณจะได้รับปัญหาเช่นเดียวกับที่อธิบายไว้ในคำถามเดิม วิธีแก้ไขคือการระบุ URL ไปยังตำแหน่งของตัวติดตั้ง --location ftp.us.debian.org/debian/dists/stable/main/installer-amd64
GeraldScott

1

ความแตกต่างอยู่ในไฟล์ isoที่ใช้

ไม่เกี่ยวข้องกับวิธีการvirt-installใช้งาน ( --locationใช้กับ http URL กับที่--locationใช้กับพา ธ ไปยังไฟล์ iso ในเครื่อง)

ต่อไปนี้เป็นคำสั่งที่ใช้งานได้เมื่อใช้ที่เก็บ Debian ออนไลน์เป็น--location(รวมถึงการรับเอาต์พุตเพื่อทำการติดตั้งจนเสร็จสิ้นในการบู๊ตครั้งแรก (จากนั้นอีกสองขั้นตอนจำเป็นต่อการเข้าสู่ VM ใหม่ในที่สุด

virt-install --virt-type kvm --name test8 --memory 2048 --disk path=/var/lib/libvirt/images/test8-1.qcow2,size=5 --disk path=/var/lib/libvirt/images/test8-2.qcow2,size=2 --location http://ftp.at.debian.org/debian/dists/stable/main/installer-amd64/ --graphics none --extra-args='console tty0 console=ttyS0,115200n8 serial'

คุณสามารถใช้คำสั่งเดียวกันแน่นอน แต่การใช้ดังกล่าวข้างต้นไฟล์ Centos ISOเป็น--locationและการทำงานได้เป็นอย่างดี (ยกเว้นว่าการเชื่อมต่อไปยังคอนโซลอนุกรมดูเหมือนจะไม่ทำงานในตอนแรก แต่ในหลักการการติดตั้งเริ่มต้นใช้ --location และไฟล์ ISO):

virt-install --virt-type kvm --name test8 --memory 2048 --disk path=/var/lib/libvirt/images/test8-1.qcow2,size=5 --disk path=/var/lib/libvirt/images/test8-2.qcow2,size=2 --location /softwarestorage/CentOS-7-x86_64-Minimal-1511.iso --graphics none --extra-args='console tty0 console=ttyS0,115200n8 serial'

ผลลัพธ์คือ:

Starting install...
Retrieving file .treeinfo...                                                                                                                                                                | 2.2 kB     00:00 ... 
Retrieving file vmlinuz...                                                                                                                                                                  | 9.8 MB     00:00 ... 
Retrieving file initrd.img...                                                                                                                                                               |  73 MB     00:00 ... 
Creating domain...                                                                                                                                                                          |    0 B     00:00     
Connected to domain test8
Escape character is ^]

แต่ถ้าคุณใช้ไฟล์ Debian ISOสำหรับ--locationคุณจะได้รับข้อผิดพลาด:

virt-install --virt-type kvm --name test8 --memory 2048 --disk path=/var/lib/libvirt/images/test8-1.qcow2,size=5 --disk path=/var/lib/libvirt/images/test8-2.qcow2,size=2 --location /softwarestorage/debian-8.5.0-amd64-CD-1.iso --graphics none --extra-args='console tty0 console=ttyS0,115200n8 serial'

Starting install...
Retrieving file info...                                                                                                                                                                     |  150 B     00:00 ... 
ERROR    Could not find an installable distribution at '/softwarestorage/debian-8.5.0-amd64-CD-1.iso'
The location must be the root directory of an install tree.
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start test8
otherwise, please restart your installation.

IMHO สิ่งนี้พิสูจน์ให้เห็นว่ามีบางสิ่งที่ขาดหายไป / สิ่งใด "ผิด" กับ Debian ISO (ไม่แน่ใจว่าตอนนี้ที่ฉันได้รับมาจากอะไร


ฉันคิดว่าคุณผิดไปมาก ... ในตัวอย่างแรกของคุณคุณกำลังระบุตำแหน่ง FTP และในตัวอย่างที่สองของคุณคุณกำลังระบุไฟล์ ISO ภายในเครื่อง ทั้งสองวิธีที่แตกต่างกันเพราะด้วย FTP และ HTTP URL ที่virt-installสามารถ "เดิน" โครงสร้างไดเรกทอรีที่กำลังมองหาและinitrd.img kernel.imgด้วย ISO ในพื้นที่virst-installก่อนอื่นต้องmountใช้ ISO เพื่อเดินโครงสร้างไดเรกทอรีและแน่นอนว่าmountต้องมีการเข้าถึงรูทเพื่อติดตั้งตำแหน่งตามอำเภอใจ (ไม่ใช่ - fstab)
Dejay Clayton

@DejayClayton: เขาพูดถูก ฉันใช้เวลาตลอดทั้งวันในการพยายามติดตั้ง Ubuntu 16.04 และ 18.04 และ Centos 7.1 บนโฮสต์ Centos 6 โดยใช้ขั้นตอนการเมาท์และการส่งออกเดียวกันและ--locationสำหรับทั้ง 3 Centos-6 virt-installไม่รู้จักโครงสร้างไดเรกทอรีของ Ubuntu และ--debugบอกคุณว่า Centos-7 ระดับบนสุดประกอบด้วย a .treeinfoซึ่งเป็นหนึ่งในสิ่งที่virt-installมองหาดังนั้นจึงพยายามบูตมัน แต่ล้มเหลวในภายหลัง ฉันประหลาดใจกับสิ่งที่กองของซอฟต์แวร์นี้เป็น
EML

1

การทำงานต่อไปนี้สำหรับฉันติดตั้ง Debian 10 จากระบบโฮสต์ Ubuntu 16.04:

cd /usr/share/virt-manager/virtinst/
patch <<.
--- urlfetcher.py.orig 2019-07-25 13:54:37.496567791 +1200
+++ urlfetcher.py      2019-07-25 13:54:43.180373257 +1200
@@ -663,6 +663,8 @@
                 ]
     _hvm_paths = [("pxeboot/vmlinuz",
                     "images/pxeboot/initrd.img"),       # Fedora
+                  ("install.amd/vmlinuz",
+                    "install.amd/initrd.gz"),   # Debian
                 ]
     _iso_paths = ["images/boot.iso",                   # RH/Fedora
                    "boot/boot.iso",                     # Suse
.

virt-install ... --location=/srv/software/Debian/debian-10.0.0-amd64-netinst.iso --extra-args='console=tty0 console=ttyS0,115200n8'

0

มันน่าเกลียดโดยเฉพาะถ้าคุณต้องการใช้ไฟล์ kickstart แต่นี่คือสิ่งที่ฉันทำเพื่อให้กระบวนการนี้ดำเนินต่อไป:

root@kvm:~# virt-install -n rhce2 -r 2048 --vcpus=1 --os-variant=rhel6 --accelerate -v --disk path=/var/lib/libvirt/images/RHCE2.img,size=100 -l /root/centos6.7.iso -x "ks=./ks1.cfg" --nographics

ความแตกต่างพื้นฐานระหว่างสิ่งที่ฉันทำและสิ่งที่คุณทำคือฉันใช้--locationแท็ก ( -lสั้น ๆ ) เพื่อชี้ไปที่ iso ของฉัน


นี่มันผิดมาก ความแตกต่างคือว่าเขาติดตั้งจากเดเบียนไฟล์ ISO NetInstall RHCE2และคุณกำลังติดตั้ง
carandraug

0

เมื่อเร็ว ๆ นี้พบปัญหานี้ เพียงแค่ใช้ตัวติดตั้งระยะไกลที่มี --location ฉันต้องเน้นว่าขึ้นอยู่กับรุ่นของคุณ virsh ลิงค์สำหรับการติดตั้งระยะไกลอาจล้าสมัยในหน้าคน

ฉันเพิ่งติดตามตัวอย่างนี้และทุกอย่างทำงานได้อย่างราบรื่น: https://www.packet.com/developers/guides/kvm-and-libvirt/

ในกรณีของฉันฉันเปลี่ยน 'xenial' เป็น 'bionic' ในhttp://us.archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/และการติดตั้งก็ผ่านไป จะใช้วิธีนี้ทุกครั้งจากนี้เป็นต้นไป

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