Centos 7 및 Windows 10 이중 부팅 Grub은 마지막 선택 사항을 저장하지 않습니다

Centos 7 및 Windows 10 이중 부팅 Grub은 마지막 선택 사항을 저장하지 않습니다

CentOS 7 및 Win10 듀얼 부팅 시스템이 있습니다. 내 설치는 완전히 바닐라(처음에는 CentOS, 다음에는 Win10)였으며 모든 것이 원활하게 진행되었습니다. grub이 부트로더 메뉴에서 "마지막" 선택 항목을 저장하지 않는 것 외에는 모든 것이 괜찮습니다.

모든 grub 구성 파일(예: )을 살펴보았는데 /boot/efi/EFI/centos/grub.cfg모든 코드가 마지막 선택을 기록하는 것 같습니다.

/etc/default/grub쇼:

GRUB_TIMEOUT=5
...
GRUB_DEFAULT=saved
...
GRUB_SAVEDEFAULT=true

내가 놓치고 있거나 이것을 달성하기 위해해야 ​​​​할 일이 있습니까?

나는 /etc/efi/EFI/centos/grubenv최신 선택을 녹음하지 않습니다. 항상 다음과 같습니다.

saved_entry=CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)
##########[...snip...padding to 1k]

Windows 부팅에서 파일을 볼 수 없지만 "Rescue Centos Entry"를 통해 테스트했습니다.

수동으로 값을 (Windows 항목) grubenv으로 설정했는데 Windows Boot Manager (on /dev/sda2)제대로 작동합니다. 그러나 CentOS를 다시 시작해도 변경할 수 없습니다.

이 "마지막 선택 저장" 동작을 활성화하는 데 뭔가 빠진 것 같습니다. 어떤 아이디어가 있나요?

답변1

또는 기본값으로 설정하려는 운영 체제에 대한 GRUB_DEFAULT 번호를 간단히 지정할 수도 있습니다. 다음 위치에 있는 grub 구성 파일로 이동합니다./boot/grub2/grub.cfg그리고 검색 키워드메뉴 아이템. 그러면 부팅 화면에 운영 체제 목록이 표시됩니다.

CentOS 항목을 먼저 가정한 다음 Windows 항목을 가정하고 기본 운영 체제를 CentOS로 부팅하려면 GRUB_DEFAULT 값을 편집하면 됩니다./etc/default/grub다음과 같이

GRUB_DEFAULT=0

Windows 10을 기본적으로 시작하려면 다음을 설정하세요.

GRUB_DEFAULT=1

저장하고 다시 시작하세요. 선택한 운영 체제를 기본 운영 체제로 설정해야 합니다.

답변2

이 파일은 실제로 grub의 동작을 제어하는 ​​최종 파일을 /etc/default/grub생성하는 데 사용됩니다 . grub.cfggrub 파일을 편집한 후 실행해야 합니다.

sudo update-grub

새 항목 /boot/grub/grub.cfg(일반적으로 위치)을 생성합니다.

답변3

이 문제를 인지한 지 거의 1년이 지났으며 다음과 같은 방법이 효과가 있음을 확인할 수 있습니다.

$ su
Password:
# vim /boot/grub/grub.conf

해당 파일에는 다음이 있습니다.

default=saved
timeout=5
...
title CentOS (2.6.32-642.13.1.el6.x86_64)
    root ...
    ...
    savedefault
    initrd ...
title CentOS (<old kernel>...)
    ...
    savedefault
title Windows (10)
    ...
    savedefault

각 시작 항목에 키워드(?)가 누락된 것 같습니다. savedefault귀하는 CentOS 7을 사용하고 저는 CentOS 6을 사용하고 있는 것처럼 보이지만. IIRC, CentOS 6은 GRUB(GRUB v1.97)를 사용하는 반면 CentOS 7은 GRUB2(GRUB 2.01)를 사용합니다.

나는 미래의 사용자/검색자가 이것이 문제를 해결했음을 확인/거부할 수 있는 모든 사람에게 감사할 것이라고 확신합니다.

답변4

~에 따르면이 오류문제는 grubenv에 대한 링크가 /boot/grub2/grubenv를 가리키지만 /boot가 grub 메뉴 환경에 설치되지 않는다는 것입니다. 위의 오류는 fedora에서 발생한 오류인데 centos에서도 마찬가지라고 생각합니다. CentOS 7과 grub2를 실행하는 데 이 문제가 있습니다.

시스템은 정상적으로 부팅되지만 키를 누른 후에만 grubenv가 존재하지 않는다는 메시지가 나타납니다. 위의 버그에는 수정 사항도 포함되어 있습니다. 심볼릭 링크

/boot/grub2/grubenv -> ../efi/EFI/centos/grubenv

이 문제는 해결되어야 합니다.

  • 편집* 이를 통해 Linux 커널 4.20.0.1을 실행하는 CentOS 7.1의 문제가 해결되었음을 확인했습니다.

어떻게?

sudo rm /boot/grub2/grubenv
sudo ln -s ../efi/EFI/centos/grubenv /boot/grub2/grubenv

grub2-efi가 필요하지 않은 경우 이 문제를 일으키는 것처럼 보이도록 제거하십시오.

sudo yum remove grub2-efi

관련 정보