Я боролся с qemu и virt-install безрезультатно, и я полностью застрял с бесполезным сообщением об ошибке, которое меня абсолютно никуда не ведет.
ВО-ПЕРВЫХ, некоторая необходимая конфигурация системы:
Базовой операционной системой является Ubuntu Server 20.04 LTS. Нет среды рабочего стола. Операционная система ВМ будет Ubuntu Server 18.04 LTS. Нет среды рабочего стола.
У меня есть LVM на 60 ГБ в /драгонод
который я намерен использовать в качестве основного тома хранилища для этой виртуальной машины:
calyodelphi@dragonweyr:~$ lsblk
НАИМЕНОВАНИЕ MAJ:MIN RM РАЗМЕР RO ТИП ТОЧКА КРЕПЛЕНИЯ
[разделы цикла опущены]
nvme0n1 259:0 0 477G 0 диск
âânvme0n1p1 259:1 0 512M 0 часть /boot/efi
âânvme0n1p2 259:2 0 1G 0 часть /boot
ââ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:~$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00
2: eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 состояние UP режим DEFAULT group 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 DORMANT группа по умолчанию 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 state Режим UP DEFAULT group 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 --graphics none --сетевой мост: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:none"
ОШИБКА Ошибка при проверке места установки: не удалось найти устанавливаемый дистрибутив на «http://archive.ubuntu.com/ubuntu/dists/bionic/main/binary-amd64/»
Местоположение должно быть корневым каталогом дерева установки.
См. справочную страницу virt-install для различных примеров дистрибутивов.
Большую часть этой команды я собрал в основном с помощью это руководство с небольшой дополнительной ссылкой из этот сборник примеров (в частности, связанный раздел) и эта полезная документация RedHat, а также обменялись сообщениями напрямую с автором первой статьи.
Однако после запуска вышеуказанной команды вы можете увидеть бесполезную общую ошибку.
Разочаровывающая часть этого заключается в том, что этот URL-адрес приходит прямо из справочной страницы для виртуальная установка
в --место расположения
определение аргумента:
-l, --location ОПЦИИ
Источник установки дерева распространения. virt-install может распознавать определенные деревья дистрибутива и извлекает загрузочную пару ядро/initrd для
запустить установку.
--location позволяет использовать такие вещи, как --extra-args для аргументов ядра и использование --initrd-inject. Если вы хотите использовать эти параметры с носителем CDROM,
вы также можете передать ISO в --location, что работает для некоторых, но не для всех, носителей CDROM.
«МЕСТОПОЛОЖЕНИЕ» может принимать одну из следующих форм:
https://хост/путь
Местоположение HTTP-сервера, содержащего устанавливаемый образ дистрибутива.
FTP://хост/путь
Местоположение сервера FTP, содержащее устанавливаемый образ дистрибутива.
ISO Изучите ISO и извлеките файлы с помощью «isoinfo»
СПРАВОЧНИК
Путь к локальному каталогу, содержащему образ устанавливаемого дистрибутива. Обратите внимание, что каталог не будет доступен гостю после
начальная загрузка, поэтому установщику ОС потребуется другой способ доступа к остальной части установочного носителя.
Некоторые примеры URL-адресов для конкретных дистрибутивов:
На основе 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-образ my-unknown.iso, о котором libosinfo не знает, с ядром в 'kernel/fookernel' и initrd в
'kernel/fooinitrd', вы можете сделать это с помощью:
--location my-unknown.iso,kernel=kernel/fookernel,initrd=kernel/fooinitrd
Я пробовал несколько вариантов проблемной команды:
Все предложения от друга, который уже сталкивался с такой же ошибкой и не мог вспомнить, как он ее решил.
Попытка ISO привела к этим последним нескольким строкам, после чего казалось как первоначальный успех:
mount: сбой монтирования /root/cdrom/casper/extras/modules.squashfs-generic на /root/lib/modules: такого файла или каталога нет
mount: сбой монтирования /dev в /root/dev: нет такого файла или каталога
[еще несколько таких]
run-init: текущий каталог в той же файловой системе, что и корень: ошибка 0
Целевая файловая система не запросила /sbin/init.
[больше ошибок запуска при инициализации]
Инициализация не найдена. Попробуйте передать init=bootarg.
BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.3) встроенная оболочка (ясень)
Введите «help», чтобы получить список встроенных команд.
(инитрамфс)
Я так далеко за пределами своих возможностей решить эту проблему и отчаянно нуждаюсь в помощи, чтобы запустить виртуальную машину.
Настройка виртуальной машины, которую я собираюсь выполнить:
- ВМ на пути
/dragonode/dragonode.qcow2
- ОС ВМ: Ubuntu 18.04 LTS, без графики
- Привяжите виртуальный сетевой интерфейс виртуальной машины к
бр0
- Предоставление IP-адреса 192.168.1.144, поэтому я могу сразу подключиться к нему по ssh.
- Остальное должно быть понятно в исходной команде.