Отказ от ответственности:
Теперь я использую virt-manager
для создания и управления моей виртуальной машиной, и это действительно спасение жизни. Его можно использовать удаленно (с третьего компьютера, обычно с вашей рабочей станции), если на хосте нет графического дисплея.
Вхождения vnc
в учебниках по установке я нашел заставил меня думать , что «рекомендуется» процедура требует X вещи либо на хосте, гостя или обоих. Точно нет. Моя ошибка. Если вы находитесь в той же ситуации, подумайте дважды, прежде чем пытаться установить виртуальную машину из командной строки.
Я пытаюсь установить виртуальную машину Debian на хост Debian с использованием virt-install
и не знаю, как передать ей образ .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#
Решения, которые я видел, выглядят довольно извращенными, как использование apache для локального обслуживания изображения .iso, как будто оно из далекого места.
- Linux Mint 14: установите Ubuntu 12.10 Server в KVM через CLI (без графического интерфейса)
- [Пользователи Xen] устанавливают виртуальную машину с помощью virt-install (Это Xen, но, похоже, это все та же проблема.
Я не могу поверить, что это так сложно. Это?
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 доступно локально?
Потеря прослеживаемости: вы не сможете воспроизвести позже, будучи уверенным, что получите точно такой же источник.
Многократное использование пропускной способности от серверов / зеркал.
Необходим доступ в интернет.
Помедленнее.
Ответы:
virt-install
пытается извлечь файлы ядра и initrd из образа ISO. С--debug
его помощью вы сможете увидеть все действия, включая монтирование петель, поиск этих файлов и т. Д.Я полагаю
virt-install
, не поддерживает образы Debian netinst ISO--location
(но каким-то образом поддерживается Ubuntu?).Чтобы загрузить ядро с
--extra-args
,virt-install
должны иметь то ядро и соответствующие INITRD файлы.--cdrom
просто подключите ISO к CD-приводу гостя, этого недостаточно для работы--extra-args
.Если вы хотите использовать
--extra-args
, я рекомендую вам использовать файлы ядра / initrd "netboot", указав URL установщика Debian вашего ближайшего зеркала,--location http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/
как описано в руководстве.источник
Этот метод работал для меня:
источник
Разница в используемых iso-файлах .
Это не связано с тем, как
virt-install
используется (--location
используется с URL-адресом http, а не--location
с путем к локальному файлу iso).Вот команда, которая работает при использовании онлайн-репозиториев Debian как
--location
(включая получение выходных данных для завершения установки до первой загрузки (затем, чтобы наконец войти в новую ВМ, необходимы два других шага, но это уже другая история):Вы можете взять точно такую же команду, но с использованием указанного выше файла Centos ISO как
--location
и он работает , а также ( за исключением , что подключение к последовательной консоли , кажется , не работать на первом, но в принципе запускает установку с помощью --location и файл ISO):Выход:
Но если вы используете файл Debian ISO для
--location
, вы получите сообщение об ошибке:ИМХО, это доказывает, что что-то не хватает / что-то «не так» в Debian ISO (не уверен в момент, когда я его получил, но, возможно, кто-то может скачать свежую версию и повторить тесты ...)
источник
virt-install
можно «ходить» по структуре каталогов в поискахinitrd.img
иkernel.img
. При локальном ISO,virst-install
сначала необходимо,mount
чтобы ISO прошел структуру каталогов, и, конечно,mount
требуется root-доступ для монтирования произвольных (неfstab
) мест.--location
для всех 3. Centos-6virt-install
не распознает структуру каталогов Ubuntu и--debug
говорит вам, что. В верхний уровень Centos-7 входит a.treeinfo
, которыйvirt-install
ищет одну из вещей , поэтому он пытается ее загрузить. Но позже все равно терпит неудачу. Я удивлен тем, что куча **** это программное обеспечение.Следующее помогло мне установить Debian 10 с хост-системы Ubuntu 16.04:
источник
Это уродливо, особенно если вы хотите использовать файлы кикстарта, но вот что я сделал, чтобы запустить этот процесс:
Основное различие между тем, что я сделал, и тем, что вы сделали, заключается в том, что я использовал
--location
тег (-l
для краткости), чтобы указать на свою iso.источник
RHCE2
.недавно столкнулся с этим вопросом. Просто использовал удаленный установщик с --location. Я должен подчеркнуть, что в зависимости от вашей версии virsh ссылки для удаленных инсталляторов могут быть устаревшими на странице руководства.
Я просто последовал этому примеру, и все прошло гладко: https://www.packet.com/developers/guides/kvm-and-libvirt/
В моем случае я изменил «xenial» на «bionic» в http://us.archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/, и установка прошла. Собираюсь использовать этот метод каждый раз с этого момента.
источник