기존 설치에서 QEMU 부팅 가능 커널 생성

기존 설치에서 QEMU 부팅 가능 커널 생성

콘솔 출력만 제공하도록 QEMU를 설정하려고 했습니다. 지금까지 나는 다음 매개변수를 성공적으로 사용했습니다: qemu-system -curses -hda debian.img여기서 debian.img는 유효한 데비안 설치입니다. 다른 시작 관련 매개변수는 사용되지 않습니다. 그러나 (N)Curses는 적어도 macOS 호스트에서는 버그가 많고 느린 것 같습니다.

-serial stdio -append "console=ttyAMA0"대신 를 사용하여 qemu가 시작되는 터미널에 대한 비 GUI 출력을 콘솔로 얻는 더 좋은 방법이 있다는 것을 발견했습니다 -curses. -kernel그러나 이 옵션을 사용하려면 인수를 사용하여 커널을 지정해야 합니다. 기존 데비안 설치에서 부팅 가능한 커널을 추출하여 qemu에 제공할 수 있는 방법이 있나요? 나는 vmlinux를 복사하려고 시도했고 /boot또한 따랐습니다.이 가이드커널은 운영 체제에서 추출되지만 기존 debian.img 파일을 사용하여 QEMU에서 부팅하지 못합니다. 내 OS에서 qemu로 initrd.img를 제공해야 할 수도 있다고 생각합니다.

-kernel이제 해당 매개변수를 사용하여 해당 이미지(또는 필요한 경우 다른 곳)에서 (추출된) 커널을 qemu에 전달하면서 완벽하게 작동하는 운영 체제와 함께 기존 debian.img 파일을 계속 사용할 수 있습니까 ? (initrd.img 파일에서도 같은 문제) debian.img 파일의 게스트 OS는 Debian Jessy입니다.

답변1

직접 커널 부팅(QEMU 옵션을 통해)을 사용하는 경우 거의 확실하게 -kernel이 기능도 제공하고 싶을 것입니다. 실행 중인 에뮬레이트된 시스템의 디렉터리에서 복사할 수 있습니다 -initrd. 또는 이미지 파일의 파티션을 사용하여 마운트 가능하게 만들 수 있습니다(그리고 에뮬레이트된 시스템을 다시 시작하기 전에 반드시 마운트 해제해야 합니다). 일반적으로 당신도 마찬가지이거나 유사해야 합니다./bootlosetupkpartx-append "root=/dev/sda2 console=ttyAMA0"

또 다른 접근 방식은 필요한 커널 매개변수를 이미지의 부트로더 구성에 추가하는 것입니다. 유연성은 떨어지지만 실제로는 필요하지 않을 수도 있습니다 . 매개변수를 실제 부팅 메뉴에 포함시키 려면 -append실행해야 할 수도 있습니다 . 부팅된 시스템에서 실행하여 실제로 적용되는지 확인하세요.update-grubconsolecat /proc/cmdline

두 경우 모두 필요하지만 -serial stdio더 이상 필요하지 않으면 그래픽 창을 교체하십시오.-nographic

관련 정보