Zastrzeżenie:
Teraz używam virt-manager
do tworzenia i zarządzania moją maszyną wirtualną i jest to naprawdę ratowanie życia. Można go używać zdalnie (z trzeciego komputera, zazwyczaj ze stacji roboczej), jeśli host nie ma wyświetlacza graficznego.
Występowanie vnc
samouczków instalacyjnych, które znalazłem, sprawiło, że pomyślałem, że „zalecana” procedura wymagała X-ów na hoście, gościu lub w obu przypadkach. Absolutnie nie. Mój błąd. Jeśli jesteś w tej samej sytuacji, pomyśl dwa razy, zanim spróbujesz zainstalować maszynę wirtualną z wiersza polecenia.
Próbuję zainstalować maszynę Wirtualną Debiana na hoście Debiana przy użyciu virt-install
i nie wiem, jak przekazać jej obraz .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#
Rozwiązania, które widziałem, wydają się dość pokręcone, jak użycie apache do lokalnego wyświetlania obrazu .iso, jakby był z odległego miejsca.
- Linux Mint 14: zainstaluj Ubuntu 12.10 Server w KVM przez CLI (bez GUI)
- [Użytkownicy Xen] instalują vm z virt-install (to Xen, ale wygląda na to, że i tak jest z tym samym problemem).
Nie mogę uwierzyć, że to takie skomplikowane. Czy to jest
man virt-install
mówi:
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
Czy to nie to, co robię?
Ktoś powiedział, że przeniósł plik .iso do / cdrom i zadziałało, ale nie rozumiałem dokładnie, co on zrobił i nie mogłem się rozmnażać.
Nie mogę użyć --cdrom
zamiast --location
jak w tym pytaniu, ponieważ --extra-args
działa tylko wtedy, gdy jest określone za pomocą --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
Edytować:
Zaloguj się za pomocą --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.
Działa z, --location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/
ale czy nie jest to wstyd, gdy obraz .iso jest dostępny lokalnie?
Utrata identyfikowalności: nie można później odtworzyć, mając pewność, że otrzymujesz dokładnie to samo źródło.
Wielokrotne wykorzystanie przepustowości z serwerów / serwerów lustrzanych.
Potrzebujesz dostępu do Internetu.
Wolniej
Odpowiedzi:
virt-install
próbuje wyodrębnić pliki jądra i initrd z obrazu ISO. Dzięki temu--debug
możesz zobaczyć całą jego aktywność, w tym montowanie w pętli, wyszukiwanie tych plików itp.Przypuszczam,
virt-install
że nie obsługuje obrazów ISO Netinst Debiana--location
(ale jakoś obsługiwany przez Ubuntu?).Aby uruchomić jądro
--extra-args
,virt-install
trzeba mieć jądro i odpowiednie pliki initrd.--cdrom
po prostu dołącza ISO do napędu CD gościa, co jest niewystarczające do pracy--extra-args
.Jeśli chcesz użyć
--extra-args
, polecam użyć plików jądra / initrd „netboot”, podając adres URL instalatora Debiana najbliższego serwera lustrzanego, jak--location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/
opisano w instrukcji.źródło
Ta metoda działała dla mnie:
źródło
Różnica polega na wykorzystywanych plikach ISO .
Nie jest to związane ze sposobem
virt-install
użycia (--location
używane z adresem URL http w porównaniu--location
ze ścieżką do lokalnego pliku ISO).Oto polecenie, które działa, gdy używa się internetowych repozytoriów Debiana jako
--location
(w tym pobieranie danych wyjściowych w celu ukończenia instalacji do pierwszego uruchomienia (następnie konieczne są dwa inne kroki, aby w końcu dostać się do nowej maszyny wirtualnej, ale to inna historia):Możesz wykonać dokładnie to samo polecenie, ale używając wyżej wspomnianego pliku ISO Centos as
--location
i to również działa (z wyjątkiem tego, że połączenie z konsolą szeregową początkowo nie działa, ale w zasadzie instalacja zaczyna się od --lokalizacji i plik ISO):Dane wyjściowe to:
Ale jeśli używasz pliku ISO Debian dla
--location
, to pojawia się błąd:IMHO to dowodzi, że czegoś brakuje / jest coś „nie tak” z ISO Debiana (nie jestem pewien, skąd go mam, ale może ktoś może pobrać nowy i powtórzyć testy ...)
źródło
virt-install
można „chodzić” po strukturze katalogów w poszukiwaniuinitrd.img
ikernel.img
. Z lokalnym ISO,virst-install
najpierwmount
ISO musi chodzić po strukturze katalogów, i oczywiściemount
wymaga dostępu do konta root, aby zamontować dowolne (niefstab
) lokalizacje.--location
dla wszystkich 3. Centos-6virt-install
nie rozpoznaje struktury katalogów Ubuntu i--debug
mówi ci to. Najwyższy poziom Centos-7 zawiera jeden.treeinfo
, który jest jedną z rzeczy, którevirt-install
szukają, więc próbuje go uruchomić. Ale i tak później się nie powiedzie. Jestem zdumiony tym, jak wiele jest tego oprogramowania.Poniższe działało dla mnie, instalując Debian 10 z systemu hosta Ubuntu 16.04:
źródło
To brzydkie, szczególnie jeśli chcesz używać plików kickstart, ale oto, co zrobiłem, aby uruchomić ten proces:
Podstawową różnicą między tym, co zrobiłem, a tym, co zrobiłeś, jest to, że użyłem
--location
tagu (-l
w skrócie), aby wskazać moje iso.źródło
RHCE2
.ostatnio natknąłem się na ten problem. Wystarczy użyć zdalnego instalatora z opcją --location. Muszę podkreślić, że w zależności od twojej wersji virsh, linki do zdalnych instalatorów mogą być nieaktualne na stronie man.
Po prostu podążyłem za tym przykładem i wszystko poszło gładko: https://www.packet.com/developers/guides/kvm-and-libvirt/
W moim przypadku zmieniłem „xenial” na „bionic” w http://us.archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/ i instalacja się zakończyła. Będziesz używać tej metody za każdym razem od teraz.
źródło