관련된 질문과 답변을 많이 겪었 grub rescue
는데 도저히 알 수 없는 또 다른 문제에 봉착했습니다.
몇 가지 답변을 바탕으로 이 문제를 해결하기 위해 아래 단계를 수행해 보았습니다.
먼저
ls
명령을 사용하여 모든 파티션을 가져옵니다. 제 경우에는(hd0)
,(hd0,msdos5)
,(hdo,msdos1)
,(hd1)
&(hd1,msdos1)
위의 5개 파티션 중에서
Filesystem is ext2
메시지를 남겨주세요(hd0,msdos1)
운전하다.제공된 답변 중 일부를 기반으로아쿠분투&스택 교환설정하려고 하는데
root
&prefix
사용(hd0,msdos1)
드라이브(ls
명령어를 사용하여 찾았습니다)설정하는 동안 선택한 드라이브에 해당 디렉토리가 존재하지 않는다는
prefix
것을 깨달았습니다 ./boot/grub
(hd0,msdos1)
결과적으로 내가 발사하려고 할 때
insmod normal
명령을 실행하면 Grub Rescue에서 다음과 같은 오류가 발생합니다./boot/grub/i386-pc/normal.mod
찾을 수 없음그 외에도 ubuntu 14, 16, 17, 18 및 Windows OS에서 부팅 가능한 USB 드라이브를 사용해 보았지만 항상 grub 복구 창에 들어갑니다.
이로 인해 다음과 같은 질문이 남습니다.
잘못된 드라이브를 루트 드라이브로 설정하고 있습니까(등록된 드라이브 5개 중 유일한 ext2 드라이브라고 가정)?
포함시키는 방법이 있나요?
/boot/grub
내가 실행할 수 있도록 루트 디렉토리의 폴더`insmod 정상주문하다?
답변1
/boot
시스템이 부팅될 때 부팅 파티션이 마운트되기 때문에 거기에서 찾을 수 없습니다 /boot/grub
.
검색하려는 디렉터리는 /grub
이 boot
파티션에 있습니다.
전체 시스템을 설치하려면 첫 번째 시스템을 설치 /
한 다음 /boot
그 위에 설치해야 합니다.
실제로 동일한 아키텍처의 Live DVD에 있는 경우 다음을 마운트하는 경우가 많습니다.
/mnt -> root partition
/mnt/boot -> boot partition
/mnt/proc /proc
/mnt/sys /sys
/mnt/dev /dev
그런 다음chroot /mnt
커널 모듈을 로드하는 경우 라이브 부팅 시스템에서 로드합니다.
답변2
ls (hdo,msdos1)
여기에 제공된 파일 시스템이 ext2라고 말씀하셨습니다.
set boot=(hdo,msdos1)
set prefix=(hdo,msdos1)/boot/grub
insmod normal
normal
그런 다음 kali를 시작하고 터미널을 열고 다음을 입력하십시오.
sudo apt-get update
sudo apt-get install --reinstall grub-pc
sudo grub-install /dev/sda
sudo update-initramfs -u
sudo update-grub