Linux 커널 GRUB/부팅 문제가 있습니까?

Linux 커널 GRUB/부팅 문제가 있습니까?

이전 Linux 커널 버전과만 호환되는 특정 패키지를 사용하고 있습니다. 다음 명령을 통해 이전 버전을 설치한 후

$ sudo apt-get install linux-image-3.19.0-49-generic \
    linux-headers-3.19.0-49 linux-headers-3.19.0-49-generic

재부팅했지만 GRUB GUI 화면을 열 수 없습니다. 온라인으로 확인한 후 다음을 발견했습니다.

숫자를 사용하여 선택하는 대신 GRUB_DEFAULT다음 제안을 사용했습니다.

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 3.19.0-49-generic"

편집하기 전에 백업을 생성했다는 점을 참고하세요 /etc/default/grub. 부팅 시 이번에는 머신이 올바른 커널로 부팅되지만 터미널처럼 보이지만 키보드가 응답하지 않습니다. 이것을 보고 원래 커널로 되돌리기로 결정했지만 GRUB GUI에 나열되지 않았습니다(어떤 이유로 지금은 작동하거나 키를 충분히 빨리 누르지 않을 수도 있습니다).

대신 GUI에는 Ubuntu와 고급 옵션만 있습니다. 그래서 나는 다음과 같은 grub 프롬프트에 들어갈 수 있었습니다.

grub>

나는 이것이 이전 커널을 올바르게 부팅하도록 하거나 원래 커널을 부팅하는 매우 간단한 수정이 되어야 한다고 생각합니다. 둘 중 하나가 작동합니다.

그러나 저는 GRUB 명령줄에 대한 경험이나 지식이 전혀 없습니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변1

개인적으로 grub.cfg 파일 편집을 시작하기 전에 GRUB 명령줄에서 실행해 봅니다. CLI에서 실행하면 파일에 어떤 올바른 설정을 넣어야 할지 알 수 있습니다 ;-)

GRUB 명령줄에 먼저 입력하여 insmod ext2ext2 파일 시스템 모듈을 설치합니다. 그런 다음 를 입력하면 ls사용 가능한 파티션과 GRUB이 해당 파티션에 사용하는 이름(Linux와는 다름)이 표시됩니다.

이 정보가 있으면 다음을 입력하십시오.

root=<insert GRUB path to /boot partition>
linux <insert path to relevant vmlinuz file> root=<insert Linux path to root partition> ro <insert any other kernel boot parameters you want>
initrd <insert path to initrd file>
boot

이 커널을 사용하여 부팅해야 합니다. 예를 들어, 내 노트북에서는 다음과 같이 입력합니다.

root=(ahci0,gpt2)
linux /vmlinuz-4.13.1 root=/dev/sda4 ro
initrd /initrd.img-4.13.1
boot

그런 다음 GRUB 부팅 메뉴에 추가하려면 grub.cfg 파일에 다음 명령을 추가하면 됩니다.

(우분투를 사용하고 있으므로 initrd를 사용한다고 가정합니다.)

관련 정보