Вопрос или проблема
Система: 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. Убедитесь, что все файлы находятся в корректном состоянии, а параметры командной строки указаны правильно. Если возникнут дополнительные вопросы или трудности, не стесняйтесь задавать их.