Cài đặt VM từ dòng lệnh với virt-install


16

Tuyên bố từ chối trách nhiệm:

Bây giờ tôi sử dụng virt-managerđể tạo và quản lý VM của mình và nó thực sự là một trình bảo vệ cuộc sống. Nó có thể được sử dụng từ xa (từ máy thứ ba, điển hình là máy trạm của bạn) nếu máy chủ không có màn hình đồ họa.

Sự xuất hiện của vnccác hướng dẫn cài đặt mà tôi tìm thấy khiến tôi nghĩ rằng quy trình "được đề xuất" yêu cầu công cụ X trên máy chủ, khách hoặc cả hai. Tuyệt đối không. Lỗi của tôi. Nếu bạn ở trong hoàn cảnh tương tự, hãy suy nghĩ kỹ trước khi thử cài đặt VM từ dòng lệnh.


Tôi đang cố gắng cài đặt máy ảo Debian trong máy chủ Debian bằng cách sử dụng virt-installvà tôi không biết làm cách nào để truyền hình ảnh .iso.

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# 

Các giải pháp tôi đã thấy có vẻ khá xoắn, như sử dụng apache để phục vụ hình ảnh .iso cục bộ như thể nó đến từ một nơi xa.

Tôi không thể tin rằng nó phức tạp. Là nó?

man virt-install nói:

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

Đây không phải là những gì tôi đang làm sao?

Ai đó nói rằng anh ấy đã chuyển .iso sang / cdrom và nó đã hoạt động nhưng tôi không hiểu chính xác những gì anh ấy đã làm và tôi không thể sao chép.

Tôi không thể sử dụng --cdromthay vì --locationnhư trong câu hỏi này--extra-argschỉ hoạt động nếu được chỉ định với --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

Biên tập:

Đăng nhập với --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.

Nó hoạt động với --location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/nhưng không phải là một chút xấu hổ khi làm điều này khi một hình ảnh .iso có sẵn tại địa phương?

  • Mất khả năng truy xuất nguồn gốc: bạn không thể sao chép sau này để chắc chắn rằng bạn có được cùng một nguồn chính xác.

  • Nhân rộng sử dụng băng thông từ máy chủ / máy nhân bản.

  • Cần truy cập internet.

  • Chậm hơn.


Bạn đã đúng, nhưng bạn có thể giảm thiểu một số nhược điểm đó bằng cách xây dựng máy chủ bộ đệm gói cục bộ bằng apt-cacher-ng hoặc nhân bản đầy đủ bằng cách sử dụng apt-mirror hoặc ftpsync . Trên thực tế, phân phối CD / DVD / BD chỉ là một tập hợp con nhỏ của bộ sưu tập gói Debian tuyệt vời, nó vô tình làm hỏng lợi ích của nó và chỉ gây khó chịu cho chúng tôi. Do đó, nhiều người có xu hướng duy trì gương cục bộ của họ và tận hưởng sự hoàn thiện của nó từ khi bắt đầu cài đặt.
yaegashi

Điều này đã được sửa trong virt-manager 1.4.3 ( cam kết ).
tom

Câu trả lời:


6

virt-installcố gắng trích xuất các tập tin kernel và initrd từ hình ảnh ISO. Với --debugbạn có thể thấy toàn bộ hoạt động của nó bao gồm lắp vòng lặp, tìm kiếm các tệp đó, v.v.

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'

Tôi cho rằng virt-installkhông hỗ trợ hình ảnh ISO netinst với --location(nhưng bằng cách nào đó Ubuntu hỗ trợ?).

Để khởi động kernel --extra-args, virt-installcần phải có các kernel và các tệp initrd tương ứng. --cdromchỉ cần gắn ISO vào ổ đĩa CD của khách, điều đó không đủ để làm việc --extra-args.

Nếu bạn muốn sử dụng --extra-args, tôi khuyên bạn nên sử dụng các tệp kernel / initrd "netboot" bằng cách chỉ định URL trình cài đặt Debian của máy nhân bản gần nhất của bạn, như --location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/được mô tả trong hướng dẫn.


Cảm ơn. Chấp nhận câu trả lời của bạn vì có vẻ như không có cách nào đơn giản nhưng tôi nghĩ phương pháp này có vấn đề (câu hỏi được cập nhật tương ứng).
Jérôme

Điều đó chắc chắn sẽ hoạt động, nhưng tôi không nghĩ nó trả lời câu hỏi làm thế nào để cài đặt từ một iso cục bộ, điều mà bạn có thể cần phải làm nếu bạn không có quyền truy cập internet.
Rick Chatham

Lưu ý rằng đây không phải là một liên kết đến ISO, nó là một liên kết đến ... một cấu trúc thư mục có chứa các ISO. Đã cho tôi một vài cố gắng để tìm ra điều này. Tại sao điều này hoạt động khác nhau trên KVM-Debian so với KVM-CentOS (mà tôi mới chuyển đến) Tôi không biết, nhưng điều này hoạt động (vẫn, vào năm 2019).
Chaim Eliyah

8

Phương pháp này hiệu quả với tôi:

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
Câu trả lời yêu thích cá nhân. Trình bày rất dễ dàng cho tôi hiểu. Cảm ơn!
bitofagoob

Điều này hoạt động rất tốt với Centos, nhưng nó không hoạt động với các tệp Debian Debian hoặc Ubuntu. Bạn sẽ nhận được cùng một vấn đề như được mô tả trong câu hỏi ban đầu. Giải pháp là chỉ định URL tới vị trí của trình cài đặt --location ftp.us.debian.org/debian/dists/urdy/main/installer-amd64
GeraldScott

1

Sự khác biệt là trong các tập tin iso được sử dụng.

Nó không liên quan đến cách virt-installđược sử dụng ( --locationđược sử dụng với URL http so với --locationđược sử dụng với đường dẫn đến tệp iso cục bộ).

Đây là một lệnh hoạt động khi sử dụng kho lưu trữ trực tuyến Debian như --location(bao gồm nhận đầu ra để hoàn tất cài đặt cho đến khi khởi động lần đầu (sau đó cần hai bước khác để cuối cùng vào VM mới, nhưng đó là một câu chuyện khác):

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'

Bạn có thể lấy các lệnh tương tự chính xác, nhưng sử dụng nêu trên tập tin Centos ISO như --location, và nó hoạt động cũng như (ngoại trừ việc kết nối đến giao diện điều khiển nối tiếp dường như không làm việc lúc đầu, nhưng về nguyên tắc bắt đầu cài đặt bằng --location và tệp 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'

Đầu ra là:

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 ^]

Nhưng nếu bạn sử dụng tệp Debian Debian cho --location, bạn sẽ gặp lỗi:

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 điều này chứng tỏ rằng thiếu một cái gì đó / bất cứ điều gì "sai" với Debian ISO (không chắc chắn tại thời điểm tôi nhận được nó, nhưng có lẽ ai đó có thể tải xuống một bản mới và lặp lại các bài kiểm tra ...)


Tôi nghĩ bạn đang ... sai rất nhiều. Trong ví dụ đầu tiên của bạn, bạn đang chỉ định vị trí FTP và trong ví dụ thứ hai, bạn đang chỉ định tệp ISO cục bộ. Hai cách tiếp cận này khác nhau vì với URL FTP và HTTP, virt-installcó thể "đi" cấu trúc thư mục tìm kiếm initrd.imgkernel.img. Với ISO cục bộ, virst-installtrước tiên mount, ISO phải đi theo cấu trúc thư mục và tất nhiên, mountyêu cầu quyền truy cập root để gắn kết các fstabvị trí tùy ý (không phải ).
Dejay Clayton

@DejayClayton: anh ấy đúng. Tôi đã dành cả ngày để cố gắng cài đặt Ubuntu 16.04 và 18.04 và Centos 7.1, trên máy chủ Centos 6, sử dụng chính xác cùng một quy trình gắn kết và xuất khẩu, và --locationcho tất cả 3. Centos-6 virt-installkhông nhận ra cấu trúc thư mục Ubuntu , và --debugnói với bạn rằng. Cấp cao nhất của Centos-7 bao gồm a .treeinfo, một trong những thứ cần virt-installtìm, vì vậy nó cố gắng khởi động nó. Nhưng dù sao cũng thất bại. Tôi ngạc nhiên về một đống **** phần mềm này.
EML

1

Cách sau đây giúp tôi cài đặt Debian 10 từ hệ thống máy chủ 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

Thật là xấu, đặc biệt là nếu bạn muốn sử dụng các tệp khởi động, nhưng đây là những gì tôi đã làm để thực hiện quá trình này:

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

Sự khác biệt cơ bản giữa những gì tôi đã làm và những gì bạn đã làm là tôi đã sử dụng --locationthẻ ( -lviết tắt) để chỉ vào iso của tôi.


Điều này là rất nhiều sai. Sự khác biệt là anh ấy đang cài đặt từ tập tin iso cài đặt netian và bạn đang cài đặt RHCE2.
carandraug

0

Gần đây gặp vấn đề này. Đơn giản chỉ cần sử dụng một trình cài đặt từ xa với --location. Tôi phải nhấn mạnh rằng tùy thuộc vào phiên bản virsh của bạn, các liên kết cho trình cài đặt từ xa có thể bị lỗi thời trong trang man.

Tôi chỉ làm theo ví dụ này và mọi thứ đều trôi chảy: https://www.pquet.com/developers/guides/kvm-and-libvirt/

Trong trường hợp của tôi, tôi đã thay đổi 'xenial' thành 'bionic' trong http://us.archive.ubfox.com/ubfox/dists/xenial/main/installer-amd64/ và quá trình cài đặt đã hoàn tất. Sẽ sử dụng phương pháp này mọi lúc từ bây giờ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.