Fedora Linux에서 grub-efi 부트 로더를 어떻게 다시 설치합니까?


12

최근에 EFI 부팅을 사용하여 Fedora 18을 설치했습니다. 다른 현재 리눅스 배포판과 마찬가지로 GRUB2도 설정되어 있습니다.

문제가 발생 했을 때 GRUB 의 BIOS 버전을 다시 설치 한 경험이 있습니다 . 예를 들어 복구 디스크를 부팅하고 설치된 시스템에 chroot를 실행 grub-install하고 update-grub/ grubby/ 가능한 방법을 알고 grub-mkconfig있습니다.

문제가 발생했을 때 GRUB 의 EFI 버전을 어떻게 다시 설치 합니까? (일이 잘못 될 것이라는 것을 알고 있습니다.


왜 모호한 질문을 한 다음 즉시 대답 했습니까? 대답은 유용한 정보를 제공하지만 질문은 실제로 설명이 필요합니다. 변경 한 것을 아는 것만으로 는 충분하지 않습니다. 질문에 대한 올바른 응답을 제공하기 위해 변경된 내용을 정확하게 이해해야합니다.
로드 스미스

@RodSmith : EFI에 대한 이메일에 회신 해 주셔서 감사합니다. :) 그리고 downvotes에 귀하의 의견을 추가합니다. 내가 시작한 질문은 말 그대로 이것입니다. grub-pc를 다시 설치 한 경험이 있습니다. EFI 시스템을 복구하는 방법을 알고 있다는 동일한 수준의 신뢰를 원합니다. grub을 다시 설치하는 것이 중요하다는 점을 강조하기 위해 질문을 한 번 편집했습니다. 다시 시도하고 내 동기에 대해 더 명확해야한다고 생각합니다.
sourcejedi

UEFI가있는 경우 왜 grub을 사용하고 있습니까? 두 부트 로더를 체인으로 연결하면 어떤 이점이 있습니까?
Marco

@Marco UEFI는 내가 알고있는 리눅스 배포판에서 지원하는 부트 로더가 아닙니다! Fedora는 새 커널을 설치할 때 GRUB을 자동으로 업데이트하고 root =와 같은 필요한 부팅 옵션을 설치합니다. EFI에서는 그렇게하지 않습니다. 내가 할 수 유통 지원 및 사용 포기 refind.conf에서 / 커널 옵션 w REFind 함수의 자동 스캔을 하지만 여전히 부트 로더 / 관리자를 체인이 될 것입니다! 그리고 Microsoft는 GPL 드라이버에 서명하지 않으므로 Secure Boot SHIM-> boot loader-> Linux로 이동해야하며 UEFI-> SHIM 부분 다음에 부팅 메뉴를 원합니다.
sourcejedi

새 커널을 설치 한 후에 efibootmgr는 UEFI 메뉴의 항목을 업데이트 하기위한 단일 호출로 충분합니다. rEFInd 또는 SHIM에 대해 모르겠습니다. 나는 개인적으로 여러 부트 로더를 체인으로 연결하지 않습니다. 모든 운영 체제가 UEFI 부팅 메뉴에 추가되었으며 완벽하게 작동합니다.
Marco

답변:


9

먼저, EFI 부팅 리눅스 시스템 이 필요합니다 . 여전히 원래 설치 미디어 (CD / DVD / USB 스틱)가있는 경우 일반적으로 적절한 복구 시스템이 포함되어야합니다. 한 번의 클릭으로 복구 옵션이있을 수도 있습니다. :).

또는 Ubuntu 커뮤니티는 자동 부팅 복구 이미지를 제공합니다 . Fedora를 지원한다고 주장합니다. 실제로 무엇을하는지 알고 싶다면 이 타사 설명 을 미리 읽어보십시오 .

그러나 콘솔 도구와 함께 범용 구조 시스템을 사용했습니다. EFI 부팅을 지원할뿐만 아니라 efibootmgr패키지 목록에 있는지 확인 했습니다 . GRML 이라고 불리는 데비안을 기반으로했습니다. Fedora 시스템을 복구하는 동안 발견 한 콘솔 도구 및 grub-efi에 대한 정보는 다음과 같습니다.

  1. EFI로 부팅 된 Fedora 18 시스템을 실행할 때는 실행 하지 마십시오grub2-install . 성공을 주장하지만 Fedora grub-efi 부팅 시스템을 손상시킵니다.

    • 파일 /boot/EFI/fedora/grub.efi은 grub-efi 패키지로 설치됩니다. 당신이 경우 않는 , 사용을 다시 설치합니다 yum reinstall grub-efi. (일반적인 구조 시스템에서이 작업을 수행하려면, 당신은 후에이 작업을 수행 할 수 있습니다 mount보내고 및 chroot설치된 페도라 시스템에 보내고). Fedora grub-efi는 구성 파일 /boot/EFI/fedora/grub.cfg(아마도 grubby에 의해 생성됨)을 사용합니다. EFI의 Fedora는에 파일을 생성하지 않습니다 /boot/grub2/grub.cfg. 실행 grub2-install하면 grub.efi가를 읽으려고 시도하는 이미지로 바뀌 /boot/grub2/grub.cfg므로 실패합니다.

    • grub2-install에 대한 EFI 부팅 항목을 설치합니다 grub.efi. 그러나 Windows 8 인증 펌웨어에서 보안 부팅을 비활성화하지 않으면이 항목이 부팅되지 않습니다. shim.efi대신 부팅해야합니다 (무시 shim-fedora.efi하십시오, 정확히 무엇인지 잘 모르겠습니다). 아래를 참조하십시오.

  2. 펌웨어 설정이 재설정되면 Fedora의 EFI 부팅 항목이 손실 될 수 있습니다. (수동으로 또는 펌웨어 업그레이드에 의해 또는 펌웨어가 버그이기 때문에 후자는 야생으로보고되었습니다). 보안 부팅을 사용하여 Fedora 용 EFI 부팅 항목을 수동으로 생성하는 방법은 다음과 같습니다.

    $ sudo efibootmgr -c -L Fedora -d /dev/sda -p 100 -l \\EFI\\fedora\\shim.efi
    

    이 예는 Linux에서 인식하는 첫 번째 표준 디스크에서 파티션 번호 100을 사용합니다. 당신은 옵션을 조정해야 -d /dev/sda하고 -p 100어떤 페도라 마운트에서 파일 시스템을 식별합니다 /boot/efi. 이것은 EFI 시스템 파티션입니다. Fedora 설치 프로그램은 다른 운영 체제에서 사용하는 ESP와 별도로 Fedora 설치를위한 전용 ESP를 작성했습니다 . ( 이것은 Ubuntu 및 OpenSUSE와 다릅니다 ).

    efibootmgr명령을 수행하려면 EFI 부팅 시스템에서 명령을 실행해야합니다.


"efibootmgr 명령을 사용하려면 EFI 부팅 시스템에서 명령을 실행해야합니다." -이 경우 EFI 부팅 시스템을 어떻게 "부트 스트랩"합니까? (내 현재 USB됩니다 UEFI 옵션을 선택하지 부팅)
jozxyqk

1
매체를 설치하면 시스템을 부트 스트랩 할 수 있습니다. EFI 펌웨어 변수를 설치하지 않고 EFI 시스템을 부팅 할 수 있어야한다고 생각합니다 /EFI/boot/bootx64.efi(64 비트 UEFI 가정). 이것이 바로 USB 설치 미디어의 작동 방식입니다 (CD / DVD 이외의 것). shim.efi를 복사하면 충분할 수 있지만 작동하도록 설정되어 있는지 확실하지 않습니다.
sourcejedi

5

UEFI Windows로 이중 부팅하는 경우 다른 가능성이 있습니다. 복구 디스크가 필요하지 않습니다.

Windows로 부팅하고 관리자 권한으로 명령 줄을 열고 다음 명령을 실행할 수 있습니다.

bcdedit /set {bootmgr} path \EFI\fedora\shim.efi

UEFI의 Windows 부팅 항목이 GRUB으로 부팅되는 항목으로 바뀝니다. GRUB 메뉴에 Windows 용 작업 항목이 포함되어 있다고 가정하면 이제 이중 부팅 :-)을 사용하고 있습니다. 보안 부팅을 비활성화하지 않고 모든 기능을 사용할 수 있기를 바랍니다.

Windows 업데이트 후 방금 직접 수행해야했으며 트릭을 수행 한 것 같습니다.

출처 및 추가 정보 : http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/ .


또는 askubuntu.com/a/799734/462004에 설명 된 두 가지 솔루션 ( EasyUEFI 사용 또는 bcdedit.exe명령과 같이 Windows 항목 대신 사용하여 부팅 순서를 변경하는 방법 )을 참조하십시오.
phk

1

https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems :

dnf reinstall grub2-efi grub2-efi-modules shim

(패키지가 이미 설치되어 있고 이전 구성이 존재한다고 가정)


감사! "부트 메뉴 항목 작성 : TL; DR : 자동으로 발생합니다"-yay.
sourcejedi

아, grub2-mkconfig -o /boot/grub2/grub.cfggrub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

죄송합니다. 위키에서 grub 패키지를 다시 설치하면 GRUB을 부팅하는 데 필요한 EFI 변수가 다시 만들어집니다 (예 : "BIOS"설정을 재설정하는 경우 다시 만들어야 할 수도 있음). 나는 시도하지 않았다고 생각 dnf reinstall하며, 사실이라면 꽤 훌륭하게 들립니다.
sourcejedi

0

여기서 간단하게 유지하기 만하면됩니다.

yum reinstall grub2-efi

grub2-install을 실행하지 마십시오. 빈 grub 부팅 메뉴가 표시되어 시스템이 손상 될 수 있습니다. 이는 grub2-install이 잘못된 위치에서 grub.cfg를로드하려고 시도하는 잘못된 / 일반 .efi 파일을 제공하기 때문입니다.

또한 새 디스크로 마이그레이션했거나 파티션 / 레이아웃이 다음과 같이 변경된 경우 grub-config를 업데이트 할 수 있습니다.

grub2-mkconfig -o /boot/EFI/fedora/grub.cfg

확인을 읽는 것이 좋습니다 :). grub2-mkconfig와 함께 사용하는 방법을 보여주는 편집을 제안했습니다 -o. 간단한 대답이 얼마나 유용한 지 확실하지 않습니다. 내 것이 더 유용하다는 것은 아니지만 이것은 여전히 ​​Fedora 시스템을 부팅 할 수 있다고 가정하거나 종료 하기 전에 실수를 한 것으로 나타났습니다 . (제 대답은 일반적인 복구 디스크에 관한 것입니다.하지만 AFAIK는 설치에 chroot해야합니다. 필요한 파일 시스템을 마운트해야합니다 ... 데비안 설치 프로그램과 같은 특수 구조 시스템에 대한 좋은 점은 mount + chroot입니다. 당신을 위해).
sourcejedi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.