Grub2 및 rootfs 설치

Grub2 및 rootfs 설치

나는 컴파일하고 설치한 작은 루트 파일 시스템의 커널 버전(linux-2.6.32.68 - 패치되지 않음)을 사용하여 시스템을 부팅하려고 합니다.

다음 명령을 사용하여 작은 ext2 파일 시스템을 만들었습니다.

dd if=/dev/zero of=rootfs.img bs=1k count=8000
mkfs.ext2 -i 1024 -F rootfs.img

나는 그것을 채우기 위해 다음 가이드를 따랐습니다.http://blog.braslavsky.org/2010/01/embedded-linux-from-scratch-in-90.html 따라서 실행하는 데 필요한 비지박스 바이너리와 초기화 스크립트가 있습니다.

QEMU를 사용하여 실제 머신을 에뮬레이션할 때 이 모든 것이 잘 작동합니다. 즉, 커널이 로드되고 rootfs가 마운트됩니다. 예를 들면 다음과 같습니다.

qemu-system-x86_64 -m 64 -hda ./rootfs.img -kernel linux-2.6.32.68/arch/x86/boot/bzImage -append "root=/dev/sda init=/sbin/init"

그러나 Fedora 22를 실행하는 가상 머신에 커널 바이너리(bzImage)와 rootfs(rootfs.img)를 추가하여 부팅하는 데 사용할 수 있도록 시도해 보았습니다. 커널을 /boot에 추가하고 필요에 따라 이름을 바꿨습니다. 그런 다음 grub update 또는 다시 빌드 /boot/grub2/grub.cfg와 유사한 것을 실행했고 성공적으로 새 커널을 선택했습니다. 모든 것이 잘 진행되고 있는 것 같으며 이제 가상 머신에 대한 부트로더 메뉴가 표시됩니다.

파일 시스템을 마운트하기 위해 grub.cfg 파일을 수동으로 편집해 보았습니다(예: root=/rootfs.img).

그러나 커널을 부팅하려고 하면 로드는 되지만 멈춰서 특정 VFS를 마운트할 수 없다고 불평하고 커널 패닉이 발생합니다.

어떤 아이디어가 있나요? 루트 파일 시스템을 잘못 지정했나요? rootfs를 ext3로 변환해 보았지만 별 차이가 없었습니다.

내 접근 방식은 실패할 운명인가?

관련 정보