- Вопрос или проблема
- Краткое описание проблемы
- Ожидаемый результат
- Фактический результат
- Метод 1 (Успешно)
- 1. Получите файл EFI.
- 2. Загрузите img.
- 3. Загрузка.
- Метод 2 (Неудавшийся)
- Ответ или решение
- Проблема запуска Ubuntu Server 22.04 LTS ARM 64-бит ISO в QEMU на Windows 11
- Шаг 1: Верificaция окружения
- Шаг 2: Поддержка UEFI
- Шаг 3: Загрузка с образа диска
- Шаг 4: Альтернативное решение
- Шаг 5: Решение проблем с сетью
- Заключение
Вопрос или проблема
Краткое описание проблемы
Я использую Windows 11 и установил QEMU с помощью менеджера пакетов Scoop.
scoop install qemu
После этого я попытался запустить виртуальную машину QEMU, используя архитектуру процессора ARM 64-бит. Я хочу загрузить виртуальную машину с ISO с Ubuntu 22.04 LTS ARM 64-бит.
qemu-system-aarch64 -cpu cortex-a15 -m 4096 -machine virt -drive if=virtio,format=raw,file=ubuntu-22.04.1-live-server-arm64.iso -boot d
- Используя эмуляцию процессора ARM Cortex A15
- Выдал виртуальной машине 4 ГБ памяти
- Используя общий тип машины
virt
- Подмонтировал ISO-файл с драйвером virtio
- Проинструктировал виртуальную машину загрузиться с CD-ROM с помощью
-boot d
Ожидаемый результат
Виртуальная машина QEMU запускается с ISO сервера Ubuntu.
Фактический результат
Окно монитора QEMU появляется, но ISO на самом деле не загружается.
Метод 1 (Успешно)
1. Получите файл EFI.
Я получил его из своего WSL Ubuntu.
sudo apt-get install qemu-efi
cp /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ./
2. Загрузите img.
Скачайте img QEMU вместо установки из ISO файла.
Ссылка для загрузки: https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-arm64.img
Главная страница: https://cloud-images.ubuntu.com
3. Загрузка.
Лучше сделать копию img для резервного копирования перед загрузкой:
cp ubuntu-22.04-server-cloudimg-arm64.img ubuntu-arm.img
Загрузка:
qemu-system-aarch64 -M virt -cpu cortex-a72 -nographic \
-net nic -net user \
-bios QEMU_EFI.fd -hda ubuntu-arm.img
Если все работает нормально, вы увидите сообщения о загрузке и в конечном итоге попадете на экран входа в систему.
Метод 2 (Неудавшийся)
Я попытался установить ISO файл с файлом EFI, он загрузился и показал начальный экран установки, но в конце концов это не сработало. Через несколько минут после нажатия Enter, он выдал мне Не удалось запустить Snap Daemon
, возможно, потому что не удалось подключиться к сети.
qemu-img create -f qcow2 ubuntu-arm.img 16G
qemu-system-aarch64 -M virt -cpu cortex-a72 -nographic \
-net nic -net user \
-bios QEMU_EFI.fd -hda ubuntu-arm.img \
-cdrom ubuntu-22.04.2-live-server-arm64.iso -boot d
Мне удалось на ubuntu22.04, возможно, это даст вам какое-то направление.
(Программа qemu была установлена)
-
Создайте файл qcow2:
qemu-img create -f qcow2 ubuntu22-server-arm64.img 50G
. -
Выполните следующую команду:
sudo /usr/local/bin/qemu-system-aarch64 -nographic \ -m 8G -cpu cortex-a72 \ -machine virt -smp 4 \ -bios /usr/share/qemu-efi-aarch64/QEMU_EFI.fd \ -device virtio-gpu-pci \ -netdev user,id=net0 -device virtio-net-device,netdev=net0 \ -device nec-usb-xhci,id=xhci,addr=0x1b \ -device usb-tablet,id=tablet,bus=xhci.0,port=1 \ -device usb-kbd,id=keyboard,bus=xhci.0,port=2 \ -hda ubuntu22-server-arm64.img \ -drive file=ubuntu-22.04.2-live-server-arm64.iso,if=none,id=cdrom,cache=writeback \ -device virtio-blk,drive=cdrom,bootindex=0 \ -vnc 0.0.0.0:60
-
Получите доступ к
127.0.0.1:5960
через VNCViewer, и на командной строке также появится некоторая информация. После ожидания некоторое время, командная строка выведет следующие сообщения об ошибках. Игнорируйте их и продолжайте ожидать некоторое время, затем интерфейс установки появится в окне VNC.[ TIME ] Время ожидания устройства /dev/ttyAMA0 истекло. [DEPEND] Неудовлетворимая зависимость для Subi…ler для Ubuntu Server ttyAMA0. [FAILED] Не удалось запустить Snap Daemon.
-
После установки зеркального адреса установка может зависнуть и автоматически перезагрузиться. Игнорируйте сообщения об ошибках и продолжайте ожидать.
-
В всплывающем окне на интерфейсе переустановки выберите “Попробовать установить снова” и продолжайте установку.
.
Ответ или решение
Проблема запуска Ubuntu Server 22.04 LTS ARM 64-бит ISO в QEMU на Windows 11
Запуск виртуальных машин с операционной системой Linux в среде Windows может стать настоящим испытанием, особенно когда речь идет о специфических архитектурах, таких как ARM 64-бит. Давайте рассмотрим решение этой проблемы по шагам, основываясь на вашем опыте и предоставленных данных.
Шаг 1: Верificaция окружения
Первое, что следует сделать, это убедиться, что у вас правильно установлены все компоненты. Вы можете использовать пакетный менеджер Scoop для установки QEMU, но проверьте, что у вас есть все необходимые зависимости и разрешения, чтобы QEMU могла работать должным образом с виртуальными машинами на архитектуре ARM.
Шаг 2: Поддержка UEFI
Ваш первоначальный подход включает запуск виртуальной машины с использованием BIOS по умолчанию, что может быть причиной проблемы. Для поддержки UEFI, необходимого для современных дистрибутивов, таких как Ubuntu Server, необходимо загрузить файл прошивки UEFI:
-
Установите
qemu-efi
на WSL Ubuntu:sudo apt-get install qemu-efi cp /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ./
-
Скопируйте файл
QEMU_EFI.fd
в ту папку, где находится ваш ISO-образ.
Шаг 3: Загрузка с образа диска
Попробуйте загрузиться не с ISO-образа, а с образа виртуального диска (например, .img
). Это может помочь избежать проблем, связанных с совместимостью ISO и BIOS.
-
Скачайте облачный образ Ubuntu:
-
Создайте резервную копию образа:
cp ubuntu-22.04-server-cloudimg-arm64.img ubuntu-arm.img
-
Запустите QEMU с EFI и образом:
qemu-system-aarch64 -M virt -cpu cortex-a72 -nographic \ -net nic -net user \ -bios QEMU_EFI.fd -hda ubuntu-arm.img
Шаг 4: Альтернативное решение
Если вы все же хотите работать с ISO-файлом, рекомендую использовать следующий набор параметров, чтобы устранить возможные ошибки подключения к сети:
-
Создайте новый образ диска:
qemu-img create -f qcow2 ubuntu-arm.img 16G
-
Запустите виртуальную машину с ISO-образом:
qemu-system-aarch64 -M virt -cpu cortex-a72 -nographic \ -net nic -net user \ -bios QEMU_EFI.fd -hda ubuntu-arm.img \ -cdrom ubuntu-22.04.2-live-server-arm64.iso -boot d
Шаг 5: Решение проблем с сетью
Если в процессе установки возникает ошибка "Failed to start Snap Daemon", это может быть связано с тем, что система не может получить доступ к интернету. Попробуйте следующие действия:
-
Убедитесь, что у вас установлен драйвер сети:
- Используйте параметры сети
-net nic -net user
. - Проверьте доступность сети в вашей виртуальной машине.
- Используйте параметры сети
-
Вы можете также попробовать подключить отдельный сетевой интерфейс, если у вас есть такая возможность.
Заключение
Работа с QEMU и Ubuntu на архитектуре ARM требует тщательной настройки и отладки. Следование указанным шагам поможет вам преодолеть затруднения и успешно запустить вашу виртуальную машину. Не забывайте, что иногда процессы, не связанные именно с виртуализацией, могут влиять на стабильность и производительность вашего окружения. Удачи в ваших экспериментах с виртуализацией!