Хорошо, вот руководство, которое я нашел, которое сработало после двух дней проб и ошибок. Ubuntu не помешало бы их сообществу опубликовать некоторые инструкции для локальных пользователей. https://www.agiliq.com/blog/2012/07/using-ubuntu-cloud-images-in-kvm/
Мне удалось найти ядро версии «vmlinuz-virtual-generic» в скрытой «распакованной» папке в ссылке на выпуски облачных образов сверху. https://cloud-images.ubuntu.com/focal/current/unpacked/. На главной странице другие версии, чем для Focal https://cloud-images.ubuntu.com. Это самая важная часть, потому что initrd-userve.img не распознает корневой диск. Вы также можете использовать нормальный ядро убунту.
суть в том использовать qemu-img create -b ubuntu-*-server-cloudimg-amd64.img -f qcow2 тот же имя.img.qcow2
для создания виртуальной машины (или просто используйте графический интерфейс create в virt-mgr). Это даст возможность настроить перед установкой, а затем запустить виртуальную машину. Вы захотите добавить ядро и initrd из «распакованных» загрузок в раздел «Прямая загрузка» в разделе «Параметры загрузки», а также следующие аргументы загрузки: ro init=/usr/lib/cloud-init/uncloud-init root=/dev/vda ds=nocloud ubuntu-pass=initialpassword
. Вы должны загрузиться дважды, чтобы пароль сработал. На самом деле, просто rw root=/dev/vda1 init=/bin/bash
будет работать, чтобы создать нового пользователя и пароль.
Обратите внимание, что в этих инструкциях говорится вда
. я должен был использовать vda1
потому что есть два загрузочных раздела vda14 для GPT/bios_boot и vda15 для раздела EFI/ESP/boot-flaged. В исходном необработанном файле .img используется sdaX, к вашему сведению... преобразование в qcow2 или просто использование qemu-img - вот что, по-видимому, меняет.
Еще пара деталей:
На старых справочных страницах говорится, что файлы ядра и гибкий диск объединены в tar-файл. Очевидно, это уже не так, и это привело меня к большему количеству проб и ошибок. Общие ошибки зависают на «GRUB_FORCE_PARTUUID при попытке загрузки без initrd», «Ошибка неизвестной команды hwmatch» и «random: быстрая инициализация выполнена». На самом деле, первые два — это когда не используется прямая загрузка. Импорт Ova в VirtualBox загружается сам по себе, поэтому он каким-то образом выясняет внутренние файлы ядра. Я хотел бы знать, как это сделать в KVM. Я просмотрел XML-файлы, но не увидел очевидной подсказки, кроме настройки дискеты, что привело меня к поиску дискеты, которая привела меня к главной странице руководства выше. Третья ошибка, которую я указал, это когда эти внутренние файлы ядра не найдены, хотя в fstab есть правильные метки для загрузочных дисков. Он даже не попадает в grub, поэтому я не могу указать там UUID диска, хотя они совпадают в файле grub (очевидно, потому что использование прямой загрузки ничего из этого не меняет).
Вот ответ на мой первоначальный вопрос. Опять же, основываясь на старом содержимом tar с дискеты и т. Д. Это заставило меня глубже искать файлы «vmlinuz-virtual»: Где задокументировано использование облачного гостевого образа Ubuntu в OpenStack?
Другие источники:
- Информация о
-квм
версия. Хотелось бы знать, улучшает ли это другие вещи, кроме немного меньшего размера: В чем разница между amd64-disk-kvm.img Ubuntu и обычными облачными образами amd64.img?, особенно если есть отдельная вмлинуз-виртуальная версия.
- Способ импорта .ova с помощью virt-v2v (у меня не сработал): https://www.redhat.com/en/blog/importing-vms-kvm-virt-v2v
- Один из способов установить пароль: Имя пользователя/пароль по умолчанию для образа Ubuntu Cloud?
- Фактическая страница документов cloud-init: https://cloudinit.readthedocs.io/en/latest/topics/network-config.html
- Два метода удаления cloud-init: https://blog.rylander.io/2020/12/23/how-to-remove-cloud-init-from-ubuntu-server-20-04/
коснитесь /etc/cloud/cloud-init.disabled
- Официальный способ удалить cloud-init, у меня сработал только устаревший: https://blog.wikichoon.com/2020/09/virt-install-cloud-init.html `virt-customize -a MY-CLOUD-IMAGE.qcow2 --root-password password:SUPER-SECRET-PASSWORD --uninstall cloud-init'
- Как исправить «Ошибка неизвестной команды hwmatch: Ошибка неизвестная команда hwmatch
- Старая попытка загрузиться с помощью extlinux, которая не работала в новых образах: Как настроить облачный образ в VirtualBox?
- Как настроить для использования EFI, который ничего не изменил и не был нужен, потому что рабочий метод загружается с использованием Bios/SeaBios: https://unix.stackexchange.com/questions/612813/virt-manager-change-firmware-after-installation
- Способ запуска cloud-init вручную, который не помог отобразить пароль: https://stackoverflow.com/questions/23151425/how-to-run-cloud-init-manually
- Страница с объяснением пароля по умолчанию создается cloud-init: Учетные данные Ubuntu 18.04 OVA по умолчанию
- Официальная справочная страница GH для параметров cloud-init: https://github.com/virt-manager/virt-manager/blob/master/man/virt-install.rst#--cloud-init
- Информация об ошибке GRUB_FORCE_PARTUUID: https://unix.stackexchange.com/questions/450946/grub2-using-wrong-boot-partition
- Вопрос со ссылкой на устаревшую инструкцию от Ubuntu: Как загрузить образы Ubuntu Cloud в KVM?
- Страница справки от сообщества Ubuntu с инструкциями по использованию на крупных облачных провайдерах, но не на локальном гипервизоре: https://help.ubuntu.com/community/CloudInit
- Метод для Ovf (vdmk), который может помочь решить проблему с непрямой загрузкой. qemu-img создает меню grub с 5-секундным тайм-аутом?: https://askubuntu.com/a/334546/795299
Аргументы ядра uncloud-init
скажите cloud-init, что это локальная виртуальная машина, а безоблачный
arg настраивает локальную сеть (вместо того, чтобы зайти и изменить /etc/netplan/*yaml, чтобы удалить фиксированный MAC-адрес, и использовать применить сетевой план
а потом systemctl перезапустить сеть
)
Вот еще информация, которую я узнал:
Попытка установить файлы yaml cloud-init простым способом с помощью локального файла привела меня к этому решению для использования cloud-init с ISO-образом сервера Ubuntu: https://discourse.ubuntu.com/t/automated-server-install-quickstart/16614. Он имеет несколько простых команд для создания файлов, а затем запускает аккуратный небольшой однострочный сервер для создания семян из сетевого местоположения. Он устанавливается и загружается с Kvm. К сожалению, после использования необработанного образа для создания виртуальной машины в Virtmanager он не загружался, потому что по какой-то причине не мог найти файл /stillmounted/casper/initrd. Поэтому я скопировал файлы ядра из смонтированного iso и попытался их использовать (потому что я подозреваю, что в ядре приведенного выше облачного образа нет аудиодрайверов), но он также зависал на файлах casper/initrd.
Поэтому я вернулся к VirtualBox ova. My-seed.iso работал над изменением имени сервера.После долгих поисков того, как передать параметры ядра (вы не можете рядом с парой, использующей vboxmanage setextradata), я заново обнаружил, что вы можете нажать Shift во время загрузки, чтобы изменить аргументы Grub. После использования init=/bin/bash для окончательной установки пароля и vga=792 для увеличения размера экрана я обнаружил ошибку в изображении в файле visudo, которая #включать..
отсутствует пробел, который убивает sudo. После получения обновления я обнаружил, что в VirtualBox есть ошибка, которая не разрешает двунаправленный буфер обмена в последних версиях: https://superuser.com/questions/1293042/bidirectional-clipboard-not-working-in-virtualbox. Но по крайней мере, у меня наконец-то есть способ создать базовую виртуальную машину Ubuntu без необходимости проходить весь процесс установки. Этот метод должен работать для многих других дистрибутивов. (О также, коснитесь /etc/cloud/cloud-init.disabled
команда выше работает).
Последующие мелочи:
- my-config.iso работает только при первом запуске. (если нет способа запустить cloud-init).
- Удерживайте Shift, чтобы войти в Grub. Используйте аргумент ядра
вга=792
для большего терминала. Установите время ожидания grub в /etc/default/grub и запустите update-grub.
- Звук не работает на этих облачных образах без установки
apt установить linux-generic
(около 800 Мб). И включите аудиовыход в Vbox.
Последнее обновление: Наконец-то я нашел ключ к загрузке облачного образа без использования файлов прямой загрузки.. По сути, либо установите универсальную версию ядра без kvm, используя apt install linux-image-$(uname -r)
и измените kvm на универсальный (~ 90 МБ) или используйте ядро kvm и ssh для виртуальной машины, используя systemctl enable [email protected] && systemctl start [email protected]
, тогда виртуальная консоль <vm-name>
. Чтобы сначала войти, чтобы пользователь использовал root=/dev/vda1 init=/bin/bash rw
для аргументов ядра. Затем удалите или переместите два файла /etc/grub.d/01.. и /etc/default/grub.d/50.. и закомментируйте первую строку /etc/default/grub.d/40-force- частьuid.cfg. Изменить /etc/default/grub скрытый
к меню
, отрегулируйте время ожидания и т. д., если хотите. затем обновление-личность
и это должно работать.