Как запустить образ ext4 в QEMU?

Вопрос или проблема

Система: Ubuntu 20.04 на WSL2 (Windows Subsystem for Linux)

Я могу запустить образ ext4 с помощью инструмента ‘runqemu’, если я соберу образ с помощью yocto. Но я не собрал образ локально, я установил qemu. Если я попытаюсь запустить с помощью этой команды

qemu-system-x86_64 -drive format=raw,file=core-image-qemux86-64.ext4

я получаю эту ошибку

Не удалось инициализировать сервер: Не удалось подключиться: Подключение отклонено
ПРЕДУПРЕЖДЕНИЕ: Формат изображения не был указан для ‘core-image-qemux86-64.ext4’, и пробная проверка угадала raw.
Автоматическое определение формата опасно для сырых изображений, операции записи на блок 0 будут ограничены.
Укажите формат ‘raw’ явно, чтобы убрать ограничения.
qemu-system-x86_64: ext4: диск с bus=0, unit=0 (index=0) существует

Буду признателен, если кто-то сможет помочь, спасибо!

qemu-system-x86_64 -kernel bzImage -drive file=core-image-qemux86-64.ext4 -append "root=/dev/hda console=ttyS0" -nographic
  • bzImage это образ ядра
  • core-image-qemux86-64.ext4 это образ файловой системы
  • nographic я запускаю Linux на WSL2, поэтому у меня нет GUI, и я хочу, чтобы qemu запускался только в текстовом режиме.

Ответ или решение

Чтобы запустить образ ext4 в QEMU на системе Ubuntu 20.04 через WSL2 (Windows Subsystem for Linux), выполните следующие шаги. Это руководство поможет устранить ошибки и корректно настроить запуск образа.

Шаг 1: Установка необходимых компонентов

Перед началом убедитесь, что QEMU установлен и его зависимости выполнены. Вы можете установить QEMU с помощью следующей команды:

sudo apt update
sudo apt install qemu qemu-system-x86

Шаг 2: Подготовка образа

Убедитесь, что у вас есть необходимые файлы:

  • bzImage — это образ ядра.
  • core-image-qemux86-64.ext4 — это файловая система, которую вы хотите запустить.

Эти файлы должны находиться в одной директории для упрощения работы.

Шаг 3: Проверка образа

Перед запуском стоит проверить, корректно ли сформирован ваш образ ext4. Выполните команду:

file core-image-qemux86-64.ext4

Это должно вернуть информацию о формате файла и подтвердить, что образ подходит для QEMU.

Шаг 4: Запуск QEMU

Вы можете использовать следующую команду для запуска QEMU с использованием вашего ядра и образа файловой системы:

qemu-system-x86_64 -kernel bzImage -drive file=core-image-qemux86-64.ext4,format=raw -append "root=/dev/hda console=ttyS0" -nographic

Объяснение параметров:

  • -kernel bzImage: указывает ядро, которое будет загружено.
  • -drive file=core-image-qemux86-64.ext4,format=raw: указывает файл образа и формат (raw).
  • -append "root=/dev/hda console=ttyS0": передает параметры загрузки в ядро, указывая корневую файловую систему и консоль.
  • -nographic: запускает QEMU в режиме без графического интерфейса, что идеально подходит для работы в WSL2.

Шаг 5: Устранение ошибок

Если вы видите сообщения об ошибках, такие как:

  • Unable to init server: Could not connect: Connection refused
  • WARNING: Image format was not specified…

Возможно, это связано с тем, что QEMU не может запустить графический интерфейс в вашем окружении WSL2. Используйте -nographic, чтобы предотвратить попытку запустить GUI. Убедитесь, что формат образа указан явно, чтобы избежать потенциальных проблем с записью.

Заключение

Следуя данным шагам, вы сможете успешно запустить образ ext4 в QEMU на Ubuntu 20.04, используя WSL2. Убедитесь, что все файлы находятся в корректном состоянии, а параметры командной строки указаны правильно. Если возникнут дополнительные вопросы или трудности, не стесняйтесь задавать их.

Оцените материал
Добавить комментарий

Капча загружается...