나는주의를 기울여 왔습니다.처음부터 최소한의 Linux 시스템 구축작은 설치 공간(10MB 이하)으로 Linux를 구축합니다.
마지막 지점까지 오류가 없다고 확신합니다. 실제로 명령을 사용하여 이미지를 테스트하고 있습니다.qemu-system-i386 -L . -hda minux.img
#
실제로 튜토리얼에서 보여주는 것과 같은 프롬프트로 부팅하는 대신 Grub Rescue 프롬프트를 보았습니다. 시작하려고 시도하기 위해 kernel /boot/kernel_name
then을 사용했지만 boot
결국 다음과 같이 실패했습니다.
내 것은 grub.conf
다음과 같습니다. 튜토리얼과 동일합니다.
default 0
timeout 30
title Minux
root (hd0,0)
kernel /boot/vmlinux-2.6.21-1 root=/dev/hda1 rw
지금까지 제가 찾은 유일한 차이점은 에서 fdisk
시작 섹터가 2048이라는 것입니다. 이는 fdisk를 사용하여 설정할 수 있는 가장 작은 섹터이기 때문에 오프셋이 더 큽니다. 또 다른 차이점은 x86_64-pc grub을 사용하고 있고 일부 busybox 라이브러리의 이름이 다르게 지정되어 있다는 점입니다. 하지만 이것이 부팅을 방해해서는 안 됩니다.
내 Linux가 작동하도록 하려면 이 프로그램을 어떻게 수정해야 합니까? 아니면 Linux 배포판을 10MB 미만으로 만드는 더 좋은 방법이 있습니까?
답변1
작은 시스템을 만드는 것에 관한 두 번째 질문에 답해 보겠습니다. 우리는 x86을 기반으로 구축하고 있기 때문에 우리의 의도는 임베디드 칩에 구워지는 것이 아니라 플래시 드라이브에서 시스템을 부팅하는 것인데 이는 매우 다른 이야기입니다.
디스크 이미지를 제거하고 cpio initramfs를 사용해 보세요. 그럼 이렇게 시작해 보세요.
qemu-system-i386 -kernel vmlinuz -initrd root.cpio.gz
나는 더 많은 유연성을 갖고 디스크 위치를 망칠 필요가 없기 때문에 이것을 좋아합니다.
나는 또한 추천한다grub4dos부트로더. 이름에 "dos"가 있음에도 불구하고 Linux에서 Linux 커널을 설치하고 부팅할 수 있습니다. 설치는 간단합니다. mbr을 작성하고 213k 파일을모든 파티션. grub4dos는 많은 파일 시스템을 인식합니다.
또한 귀하의 구성에는 grub이 올바르게 설정되지 않은 것 같습니다.구조하다콘솔에는 kernel /boot/kernel_name
"root="를 입력 했어도 표시됩니다 boot
.
내 컴퓨터에서 qemu 게스트 커널은 디스크 이미지를 "/dev/hda" 대신 "/dev/sda"로 인식합니다.