저는 64비트 커널을 사용하고 있으며 QEMU에서 32비트 커널을 실행하고 싶습니다. 압축된 커널 이미지가 있으면 를 사용하여 initramfs 이미지를 생성하려고 시도했지만 mkinitcpio
이는 64비트 코드의 이미지만 생성했습니다( mkinitcpio
사용된 busybox는 다른 실행 파일과 마찬가지로 64비트였습니다).
프로그램(커널의 일부임) 을 사용 gen_init_cpio
하고 그렇지 않으면 32비트 실행 파일을 얻을 수 있지만, 이를 피하고 프로그램이 rootfs에서 커널에 필요한 것을 결정하도록 하는 것을 선호합니다.
64비트 커널을 실행하는 동안 32비트 initramfs 이미지를 얻을 수 있는 방법이 있습니까?
답변1
64비트 시스템에서는 32비트 initramfs가 필요하지 않기 때문에 이를 생성하지 않습니다. 따라서 chroot에 32비트 배포판을 설치해야 합니다.
그러나 대부분의 initramfs 생성기(포함 mkinitcpio
)가 모듈 자동 감지를 수행하므로 이 방법도 작동하지 않을 수 있습니다. initramfs에는 특정 하드웨어 및 설정에 필요한 모듈만 포함되며 다른 곳에서는 작동하지 않습니다. 마지막으로 대부분의 initramfs 생성기는 부팅된 VM 자체 내에서 실행해야 합니다.
모듈 자동 감지를 비활성화할 수 있지만 그렇게 하면 initramfs가 매우 커집니다. 절충안은 구성 파일에 필요한 모듈을 수동으로 지정하는 것입니다.