나는 리눅스 자체를 부팅하려고합니다. 주로 학습 경험을 위해. 작은 하드 드라이브가 있어요ext4 파티션은 하나만 있습니다다음과 같습니다.
/bin/bash
/dev/console
/boot/vmlinuz
/boot/grub/grub.cfg
/boot/grub/i386-pc/*.mod
bash
버전 3.0은 정적으로 링크되어 있으며 vmlinuz
버전 3.16.2, grub
버전 2.00rc1입니다. grub.cfg
다음과 같습니다.
insmod linux
insmod search
insmod ext2
insmod part_msdos
set timeout=5
menuentry 'Linux' {
set the_root_uuid=a0225737-71c9-4d60-81e2-275dc078c3c1
search --fs-uuid $the_root_uuid --set=root
linux /boot/vmlinuz root=$root ro init=/bin/bash
}
시작하면 다음을 얻습니다.
kernel panic: VFS could not open device root (hd0,msdos1), or unknown block(0,0) error -6
내가 무엇을 놓치고 있나요?
답변1
커널에는 루트 파일 시스템(예: ahci sata 모듈 및 ext4 모듈)에 액세스하는 데 필요한 드라이버가 포함되어 있지 않습니다.
적절한 모듈을 로드하는 initrd/initramfs를 제공하거나 (모듈이 아닌) 필요한 드라이버를 정적으로 포함하는 커널을 컴파일해야 합니다.
어쨌든 rootfs에는 모듈을 로드하는 도구가 포함되어 있지 않으므로 비모듈식 커널을 구축하는 것이 좋습니다.