Eu tenho uma imagem de disco qemu bruta do Debian 10 ("buster") sem ambiente de desktop e estou tentando executá-lo no terminal da minha máquina host (também Debian 10) com o -curses
sinalizador. Se eu executar qemu-system-x86_64
apenas com o -curses
sinalizador, recebo uma tela em branco, então, seguindo esta pergunta , adicionei a -vga std
opção. Infelizmente, isso me causa um kernel panic no console e nunca chego à tela de login do convidado. A saída fica assim:
[ 3.021788] xwrite+0x29/0x5a
[ 3.021845] do_copy+0x9b/0xc8
[ 3.021878] write_buffer+0x27/0x37
[ 3.021912] flush_buffer+0x34/0x8b
[ 3.021947] __gunzip+0x26e/0x315
[ 3.021982] ? bunzip2+0x397/0x397
[ 3.022016] ? initrd_load+0x5e/0x5e
[ 3.022048] ? __gunzip+0x315/0x315
[ 3.022080] gunzip+0xe/0x11
[ 3.022112] ? initrd_load+0x5e/0x5e
[ 3.022143] unpack_to_rootfs+0x182/0x2c6
[ 3.022177] ? initrd_load+0x5e/0x5e
[ 3.022210] ? unpack_to_rootfs+0x2c6/0x2c6
[ 3.022243] ? do_early_param+0x8e/0x8e
[ 3.022275] populate_rootfs+0x59/0x106
[ 3.022311] do_one_initcall+0x46/0x1c3
[ 3.022350] ? do_early_param+0x8e/0x8e
[ 3.022382] kernel_init_freeable+0x189/0x218
[ 3.022419] ? rest_init+0xaa/0xaa
[ 3.022453] kernel_init+0xa/0x10d
[ 3.022487] ret_from_fork+0x35/0x40
[ 3.023243] ---[ end Kernel panic - not syncing: System is deadlocked on memo
ry
[ 3.023243] ]---
Estou usando o emulador QEMU versão 3.1.0 (Debian 1:3.1+dfsg-8+deb10u3). Meu terminal é st 0.8.2 e meu ambiente de desktop/gerenciador de janelas é dwm, se esses detalhes forem relevantes. Eu recebo o mesmo pânico do kernel se eu usar o xterm, no entanto.
Estou inicializando a imagem com este comando qemu:
qemu-system-x86_64 -curses -vga std -m 1024 -drive format=raw,file=disk.img
Eu tentei outras várias combinações de sinalizadores qemu desta pergunta , mas eles não existem para minha versão do qemu (por exemplo, a -noframe
opção), lançam outros erros (por exemplo , -append
requer uma -kernel
opção) ou apenas me dão uma tela em branco ( -curses
por si próprio).
O objetivo disso é evitar o lançamento de um visualizador VNC para acessar um convidado que seja apenas linha de comando de qualquer maneira.
De acordo com os comentários de mosvy , adicionei as
nomodeset systemd.unit=multi-user.target
opções à linha de comando do kernel e, em seguida, o qemu inicializou tudo corretamente. Como estou configurando essas imagens iso inicializáveis com um arquivo preseed , adicionei esta linha apreseed.cfg
: