GRUB은 자동으로 커널을 부팅하지 않거나 부팅 메뉴를 표시하지 않습니다. 왜 안 돼?
내 /boot/grub/grub.conf에는 다음이 포함되어 있습니다.
default 0
timeout 5
root (hd0,0)
kernel /boot/3.8.13
시작하는 대신 프롬프트가 표시되면 다음을 수행할 수 있습니다.
> kernel /boot/3.8.13
> boot
커널이 시작됩니다. 나는 이것이 자동으로 일어나기를 원합니다.
아마도 커널을 언급해야 할 것 같습니다실패하다부팅, 하지만 그건 다른 주제이고 그것이 어떻게 관련되는지 모르겠습니다. (호환되지 않는 아키텍처와 같은 사소한 것이 아니라면 GRUB가 이것을 알 방법이 없다고 가정하지만 그렇게 사소하지는 않습니다.)
나가지다가이드를 따르세요http://www.gentoo.org/doc/en/grub-error-guide.xml섹션 11 “Grub은 Grub 프롬프트만 표시합니다”
특히, grub.conf 파일이 /boot/grub 아래에 존재하고 동일한 디렉토리에 있는 menu.lst가 grub.conf에 대한 심볼릭 링크임을 확인했습니다. 또한 grub-install 명령을 실행했습니다.
grub-install에 대해 다음 매개변수를 시도했습니다.
grub-install --no-floppy /dev/sda
grub-install --root-directory=/boot /dev/sda
내 시스템에는 하나의 물리적 하드 드라이브인 /dev/sda가 있습니다. 암호화된 /dev/sda1에 /boot가 있고 /dev/sda2에 루트가 있습니다. 나는 grub에서 일부 initrd를 로드하도록 시도한 적도 없습니다. 먼저 GRUB에서 initrd를 사용하기 전에 적어도 커널을 부팅할 수 있기를 바랍니다.
답변1
구성이 너무 복잡하면 안 됩니다. root=
루트가 끝나는 곳(암호화된 드라이브)으로 루트를 변경했습니다 . 별도의 파티션으로 부팅하는 것도 문제의 일부입니다.
그럼 모든 것을 하나로 모아서 어떻게 끝나야 하는지 살펴보겠습니다. 먼저, /dev/sda2
암호를 해독할 수 있게 되면 실제 루트가 설치됩니다 . /dev/sda2/boot
부팅 파티션을 마운트할 수 있는 빈 디렉토리가 됩니다 /dev/sda1
.
이는 부팅 파티션이 되기 때문에 /dev/sda1
부팅 디렉터리 자체가 있어서는 안 됩니다. 그렇지 않은 경우 일단 설치하면 /boot/boot/[grub/, 3.8.13, initrd.img, etc]
.
설치 테이블회의다음과 같습니다.
/dev/sda2 /
/dev/sda1 /boot
커널을 로 이동하고 /dev/sda1/3.8.13
, initrd.img를 으로 이동 /dev/sda1/initrd.img
하고, grub 디렉토리를 /dev/sda1/grub
.
/dev/sda
다음으로 파티션이 아닌 mbr에 grub을 설치하므로 /dev/sda1
설치는 다음과 같습니다 grub-install /dev/sda
. grub 구성 테이블에 기록될 구성 파일을 찾을 수 있는 위치를 알려주어야 하며, 이것이 --boot-directory
표시되어야 하는 위치입니다.
라이브 CD에서 이 문제를 해결할 때 as를 설치했고 grub /dev/sda1
구성 /boot
이 에 있다고 가정해 보겠습니다 /boot/grub
.grub-install --boot-directory=/boot /dev/sda
livecd에 /dev/sda1
설치 한 경우 /mnt/fixboot
구성은 변경되지 않으며 설치 명령은 으로 변경됩니다 grub-install --boot-directory=/mnt/fixboot
.
구성:
default 0
timeout 5
root (hd0,0)
kernel /3.8.13 root=/dev/sda2
initrd /initrd.img
실제로 암호를 해독하는 방법을 파악하면 구성이 변경될 수 /dev/sda2
있습니다 /dev/mapper
.