GRUB2 EFI를 다시 설치하는 방법?


56

바이오스를 성공적으로 업데이트 한 후 문제 가 발생하여 검은 화면의 왼쪽 상단에 커서가 깜박입니다. 오류도없고 아무것도 없습니다. BIOS는 이제 SATA: <disc name>일반적인 UEFI 대신 부팅 옵션 만 나열했습니다 ubuntu. GPT 파티션 구성표를 사용하고 있습니다.

결국 작업 솔루션이 제대로 다시 설치되어야한다는 것을 알았습니다 grub-efi-amd64. 그래서 어떻게해야합니까?

추신 : 실제로, 나는 GRUB2 EFI를 스스로 재설치하는 데 성공했으며 이것에 대한 완전한 방법을 찾을 수 없으므로 여기에 대답을 게시 할 것입니다.


듀얼 부팅에 문제가있었습니다 : Windows 10 / PCLinuxOS 노트북. 나는 grub2 로더 또는 기능을 잃어 버렸습니다. 위의 많은 왜곡을 시도한 후 Grub2 Boot Rescue iso를 우연히 발견하여 CD에 구워 드라이브에 남겨 두었습니다. 매번 부팅 프로세스를 수행하는 것은 약간 지루했지만 적어도 작동했습니다. 그런 다음 Boot Repair Disk iso를 찾아 DVD에 구운 것입니다. 이 시점에서 내 드라이브는 정말 힘들었고 그래서 이번에는 Windows 10 및 Mint Sonya를 다시 포맷하고 다시 설치했습니다. 그런 다음 Boot Repair Disk를 부팅하고 Grub2 ov
Keith Krehbiel을

답변:


87
  • UEFI 모드에서 라이브 USB / CD 컴퓨터를 부팅하십시오 . 나는이 부팅 옵션을 가지고 <flash_drive>UEFI: <flash_drive>두 번째가에서 EFI 변수를 노출하는 데 필요한, /sys/firmware/efi/그래서 efibootmgr나중에 실패하지 않는합니다. 첫 번째 옵션으로 부팅하면 다음과 같은 오류가 발생합니다.

    Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
    Try 'modprobe efivars' as root.
    

    modprobe efivars 나를 위해 일하지 않았다.

  • 깨진 시스템에 chroot ( ubuntu grub2 도움말 과 유사 하지만 efi 특이성) :

    sudo mount /dev/sda2 /mnt #sda2 is the root partition
    sudo mount /dev/sda1 /mnt/boot/efi #sda1 is the efi partition
    for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
    sudo cp /etc/resolv.conf /mnt/etc/ #makes the network available after chrooting
    modprobe efivars # make sure this is loaded
    sudo chroot /mnt
    
  • Linux 배포판에 따라 이제 다른 작업을 수행합니다.

    • 를 들어 우분투 / 데비안 :

      apt-get install --reinstall grub-efi-amd64
      

      또는 대안 적으로 :

      apt-get install --reinstall grub-efi
      update-grub
      

      위의 내용으로 부팅 할 수는 없습니다.

    • 들어 페도라 (16까지, 다른 사람을 위해 일 수 있음) :

      yum reinstall grub-efi
      

      다음 명령에서 sdX를 부팅 할 EFI 파티션이있는 장치로 교체해야합니다. 에서 --part Y당신은을 교체해야 Y (에서와 같이 EFI 파티션의 수 /dev/sdXY).

      efibootmgr -c --disk /dev/sdX --part Y
      efibootmgr -v # verify a new record called Linux is there
      
  • 이제 Ctrl + D 를 입력 하여 chroot를 종료하고 모든 것을 마운트 해제하고 재부팅하십시오.

    for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done
    sudo umount /mnt/boot/efi #please do this. Corrupted efi partitions are not nice
    sudo umount /mnt
    sudo reboot
    

이것을 당신의 필요 (다른 파티션 테이블, 별도의 / boot 파티션 등)에 적용해야 할 수도 있으며 유일한 옵션은 아니지만 이것이 나에게 잘 작동했습니다.

물건을 고정하는 데 적합한 라이브 시스템은 grml 입니다. 부팅 가능한 USB 장치를 설정하는 방법에 대한 광범위한 가이드 가 있으며 Mac 섹션이 실제로 가장 유용합니다 (FAT32 파티션 생성, 파일 복사, 재부팅, 완료).


4
친구! 대단히 감사합니다! Lenovo X220이 재설정 후 더 이상 부팅하고 싶지 않은 경우 저를 구했습니다. 최신 패키지 업데이트가 활성화되었으며 동시에 3G 카드의 연결 문제를 해결하기 때문에 BIOS 재설정을 수행하는 것을 보았습니다. 어떤 이유로 든 부팅이 불가능 해졌습니다. 내가 당신의 가이드를 사용할 때까지. BTW, resolv.conf가 복사되지 않은 부분은 /run/resolvconf...(Ubuntu 12.04의) 심볼릭 링크이기 때문에 대신 chroot 환경에 mount --bind /run /mnt/run전체 /run디렉토리 를 마운트하는 데 사용 되었기 때문입니다 .
nem75

Fedora 16에 대한 경험과 grml에 대한 답변으로 답변을 확장했습니다. 수정 사항을 검토하고 수락 할 수 있다면 기쁠 것입니다.
Jonas Schäfer

1
Ubuntu (최소 12.04 이상) update-grub에서 최신 grub2 이미지를 EFI 파티션으로 복사하지 않으면 grub.cfg 만 업데이트됩니다. 따라서 더 좋은 방법은 apt-get install --reinstall grub-efi(또는 grub-efi-amd64) 마지막에 update-grub을 호출하는 것입니다.

3
어제 미디어 플레이어를 저장했습니다. 당신에게 300 인터넷 포인트.
스테파노 보리 니

2
실행 한 후 update-grub/boot/efi폴더 (나는이 새로운 파티션을 생성했다) 여전히 비어 있었다. grub-install실제 파일 을 실행 한 후에 만 작성되었습니다. 이 가이드 (독일어) 저를 도와 : wiki.ubuntuusers.de/EFI_Problembehebung
필립 거버

8

첫 번째 방법의 단순화로 라이브 CD의 grub 만 사용하여 하드 디스크의 시스템으로 직접 부팅 할 수 있습니다. xubuntu 13.10 라이브 CD로 xubuntu 13.10에서 테스트되었습니다.

BIOS에서 보안 부팅이 비활성화되어 있는지 확인하십시오. 라이브 CD를 넣고 UEFI를 통해 부팅하십시오. CD의 GRUB 메뉴가 나타납니다. "c"를 눌러 명령 행으로 이동하십시오.

configfile (hd0,gpt1)/EFI/ubuntu/grub.cfg

다른 EFI 시스템 파티션이있는 경우 위의 grub 명령을 조정하십시오.

시스템이 하드 디스크에서 부팅 된 후 EFI 시스템 파티션에 GRUB을 다시 설치하고 grub-install을 통해 펌웨어로 등록하기에 충분해야합니다.

sudo grub-install

작동하지 않습니다. configfile (hd0,gpt1)/EFI/ubuntu/grub.cfg아무것도하지 않습니다. 이 명령을 실행 한 후 어떻게 부팅합니까?
Autodidact

3
와. 나는 그것이 그렇게 쉬운 것이라고 기대하지 않았다! 이것은 대답의 지옥입니다! 나는 도망 sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi위의 제안 명령보다는 (하지만 하나는 위의 단지뿐만 아니라 작동 할 수 있습니다 - 나도 몰라). 그리고 나서 리눅스 OS에 다시 액세스 할 수 있습니다. 그런 다음 실행하면 sudo update-grub모든 것이 부팅 가능해야합니다.
Zorawar 2016 년

@SandeepDatta : efi 디렉토리가 다른 디스크 / 파티션에있을 수 있습니다. 광산은 / dev / sdb1에 있었으므로 다음을 실행했습니다 configfile (hd1,gpt1)/EFI/ubuntu/grub.cfg. LiveCD를 부팅하고 sudo gpartedefi 파티션을 찾기 위해 실행 하십시오.
Zorawar

5

Maxine과 마찬가지로 BIOS의 UEFI 설정이 손상되어 시스템이 부팅되지 않는 것을 발견했습니다.

필자의 경우 Linux Mint Debian이 설치된 Lenovo ThinkServer RD430이며 서버에서 하드 드라이브를 업데이트하거나 삭제하는 것과 관련하여 내가 부팅하지 않는 것처럼 보입니다 . 필자의 경우 OS는 USB를 통해 설치된 linuxmint-201403-mate-dvd-64bit입니다. (UEFI가 작동하지 않는 이벤트에 대한 자세한 설명은 아래를 참조하십시오)

ThinkServer TS140에서 정확히 동일한 단계를 거치더라도 UEFI가 한 번이라도 마음을 잃지 않았습니다. RD430 드라이버 페이지를보고 내 BIOS는 두 가지 버전이 있습니다. 이전에 마더 보드에서 바이오스를 업데이트 할 필요가 없었으므로 사용 가능한 새 버전이있을 때 자동으로 업데이트 할 사람이 아닙니다. 바이오스를 업데이트 한 후, 위의 Maxine의 대답은 비틀기만으로 작동했습니다 ...

# efibootmgr -c --disk /dev/sdX --part Y
# efibootmgr -v
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0002,0000,0003,0001,0004
Boot0000* linuxmint HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\EFI\linuxmint\grubx64.efi)
Boot0001* LMDE Linux Mint Debian    HD(1,800,15d505800,934c598c-fe3c-fd43-84a1-fa38e4f72552)File(\EFI\linuxmint\grubx64.efi)
Boot0002* Linux HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\elilo.efi)
Boot0003* UEFI: Built-in EFI Shell  Vendor(5023b95c-db26-429b-a648-bd47664c8012,)AMBO
Boot0004* UEFI: VerbatimSTORE N GO 1.00 ACPI(a0341d0,0)PCI(1a,0)USB(1,0)USB(4,0)HD(1,80,1d70780,00000000)AMBO
mint / # 

efibootmgr -c명령은 두 개의 항목 00000002! 부팅 순서의 첫 번째 항목이 올바르지 않습니다 . 항목은 올바른 것입니다.
Boot0002* Linux HD
0000

이것을 테스트하기 위해 중단없이 부팅을 시도했습니다 0002. 이 항목입니다. 예상대로 작동하지 않았습니다. 그래서 서버를 다시 시작하고 F12를 누르고을 선택했습니다 linuxmint. 원하는대로 내 LMDE 설치로 부팅했습니다.

efibootmgr을 통해 원치 않는 항목을 제거하는 방법은 다음과 같습니다.

# efibootmgr -b 2 -B

나는 항목을 제거하려면이 명령을 사용 0001하고 0002. 옵션 0001은 OS 복구 시도 중 마지막 시도였습니다.


UEFI 노트

이 글을 읽고 있고 UEFI에 실망한 경우 다음과 같은 참고 사항과 리소스가 있습니다.
»UEFI 셸로 부팅하는 것은 DOS 셸을 사용하는 것과 유사합니다.
»인텔은 efi 셸 명령에 대한 PDF 참조 설명서를 만들었습니다 .
»Lenovo의 UEFI_on_TS430 문서 는 efi 셸 사용법을 설명하는 유일한 리소스입니다.
» 또 다른 UEFI 쉘 기준 에서 nPartition 관리 설명서를 .
»로더로 이동하여 실행하여 efi 셸에서 파티션으로 부팅을 시도 할 수 있습니다.
»UEFI는 디스크에 msdos 부품 테이블이 아닌 GPT 파티션 테이블을 갖기를 원합니다.
»UEFI는 디스크의 첫 번째 파티션을 fat32 또는 vfat로 포맷하려고합니다.
» "일반"부트의 경우 /EFI/boot루트에 디렉토리 가 있어야 bootx64.efi합니다.
»어떤 사람들은 자신 grubx64.efi이 설치된 곳에서 자신의 사본을 복사 /EFI/boot/bootx64.efi했으며이 치트는 그들을 위해 일했습니다.
»grub 변경을 할 때마다 efibootmgr -v전후에 사용하여 재부팅이 제대로 되었는지 확인하십시오.


내 RD430 경험

지난 주에 OS를 10 번 이상 다시 설치하여이를 정리하고 서버를 설정했습니다. 내 구성은 LMDE가 설치된 PCIe 2.0 슬롯 에서이 RAID 컨트롤러 의 SSD입니다 . 6x 3TB 드라이브가있는 두 번째 PCIe 3.0 슬롯의 AOC-S3008L-L8i RAID 컨트롤러 ( IT 모드로 다시 플래시 ). RAM : 12GB ECC (3x 4GB).

시스템을 부팅하지 못하게하는 변경 사항은 다음과 같습니다.
»S3008L-L8i pci 슬롯을 변경합니다 (SSD + 카드 만 남김).
» 온보드 컨트롤러에 대한 LSi 소프트웨어 RAID 바이오스 프롬프트 를 비활성화합니다 .
»기존 HighPoint RocketRaid 카드를 열린 PCIe 슬롯에 추가하십시오.
»로 변경 /etc/default/grub한 다음 실행하십시오 update-grub.
( 아마도 grub-install실행해야합니까? )


UEFi에 매우 불만이 있습니다. Linux를 BIOS와 함께 설치했지만 UEFi와 함께 작동하고 수정하기가 매우 어렵습니다
Suici Doga

3

나는 이것을 투표로 표명하지만 분명히 SuperUser에 대한 충분한 담당자가 없습니다. 나는 일했지만 부팅하지 않을 클론과 싸우는 날 후에 이것에 대한 답을 마침내 찾았습니다. 모든 것이 UEFI 및 일종의 "보안 부팅"메커니즘 또는 그와 관련이 있다고 생각합니다.

나는 오프라인으로 일하고 있기 때문에 apt-get은 옵션이 아니었다. 내가 한 일은 USB 스틱에 Ubuntu Desktop을 넣고 USB 스틱 의 루트에 패키지 grub-efigrub-efi-amd64패키지를 추가하는 것입니다 (grub-efi_1.99 ~ rc1-13ubuntu3_amd64.deb 및 grub-efi-amd64_1.99 ~ rc1-13ubuntu3_amd64.deb 우분투 11.04-배포 및 아키텍처에 맞게 변경) USB 스틱의 스크립트에 다음을 넣습니다.

#! /bin/bash
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
dir=`dirname $0`
sudo cp $dir/grub-efi*.deb /mnt/tmp
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt /bin/sh -c "dpkg -i /tmp/grub-efi*.deb"
sudo shutdown -r now

Live USB 스틱을 부팅하고, 터미널을 열고, 명령을 실행하면 작업이 잘 풀립니다! 유일하게 가끔 발생하는 문제는 UEFI가 때때로 부팅 우선 순위를 HDD 아래로 이동했다는 것입니다. 이때 BIOS로 이동하여 부팅 순서를 변경하여 시도 (및 실패)를 중지해야합니다 SATA: drive.

dpkg-reconfigure대신에 사용할 수도 dpkg -i있지만 몇 가지 부트 로더 질문이 있습니다.

[편집] 또한 의견을 남길 충분한 답변이 없기 때문에 답글에 대한 의견이라고 생각한 것은 답변으로 판명되었습니다.


보드에 오신 것을 환영합니다! 실제로 투표하려면 15 점, 의견으로 50 점 ( superuser.com/privileges 참조 )이 필요하며, 쉽게 답변 할 수있는 질문을 찾아보십시오. 고맙습니다. 감사합니다. 종료하기 전에 아무것도 마운트 해제하지 마십시오. 도움이되어 다행입니다.
Maxime R.

다른 관련 사이트에 대한 계정을 가지고 있기 때문에 혼란 스러웠습니다. 내가 이쪽에 새로운 것을 잊었다. Linux는 일반적으로 종료시 마운트 해제되며, 명령이 완료된 후 chroot가 반환되면 문제가 발생하지 않는다고 생각합니다. UEFI를 라이브 배포판으로 부팅하지 않으면 중단되지 않지만 sudo chroot /mnt /bin/sh -c "dpkg -i /tmp/grub-efi*.deb" && sudo shutdown -r now올바른 동작을 했는지 여부를 테스트하는 것은 우선 순위가 아닙니다 .
IBBoard 2014 년

1

Lenovo Yoga 2 Pro의 32 비트 Ubuntu 14.10에서 다음과 같이 UEFI 부팅으로 변경했습니다.

  • 폴더 만들기

    sudo su
    mkdir /boot/efi
    
  • "EFI 시스템"파티션을 마운트하십시오 /etc/fstab

    fdisk -l|grep EFI
    

    이것은 보여 주었다 : /dev/sda2 2050048 2582527 532480 260M EFI System

    echo "/dev/sda2 /boot/efi   vfat    defaults,sync   0   0">>/etc/fstab
    

    그 파티션을 마운트

    mount /boot/efi
    
  • 설치 grub-efi-amd64-bin및 제거grub-efi-ia32-bin

    aptitude install grub-efi-amd64-bin grub-efi-ia32-bin_
    
    grub-install --target=x86_64-efi
    
  • efi 모드에서 우분투 재부팅

    update-grub
    
  • 그것을 잘 부팅 테스트 있다면, 내가 설치 grub-efi-amd64및 제거 grub-pc grub-gfxpayload-lists와 함께

    aptitude install grub-efi-amd64 grub-pc_ grub-gfxpayload-lists_
    

요청시 / boot를 제거하지 않기로 선택합니다.


어쩌면 나는 그것을 복잡하게 만들었고 이것이 잘 작동했을 것입니다 :

apt-get install --reinstall grub-efi
update-grub

0

이 항목은 efi 항목을 다시 설치하기 위해 컴퓨터를 준비하는 단계에 있습니다. 내부 미디어 (SSD, HDD)에 시스템을 설치 한 후 복구 디스크를 작성하는 효과적이고 간단한 방법이기도합니다.

Linux Mint Tara (Ubuntu Bionic Beaver와 밀접한 관련이있는 Linux 변형)를 사용하면이 방법으로 설치를 중단하고 나중에 저장할 수있었습니다. 지속성이있는 라이브 USB를 원했기 때문에 생겨 났으며 영구 설치를 위해 Unetbootin과 같은 유틸리티를 설치하는 시간은 새로 설치와 거의 동일하기 때문에 동일한 라이브 배포를 사용하여 USB에 설치를 수행했습니다. 내부 SSD에 OS를 설치하는 데 사용되었습니다.

물론 이것은 RAID 또는 다른 특수 설정은 아니지만 USB 드라이브에 준비된 볼륨 파티션이 필요하고 배포판의 사용 가능한 방법을 사용하여 해당 USB에 설치하여 단일 드라이브에 대한 설치를 위해 내부 드라이브를 우회했습니다. 파티션의 루트 (/) 마운트

새 그럽 설치가 내장 드라이브와 엉킨 곳입니다. USB로 재부팅하면 내부 UEFI grub 항목이 사라져 BIOS 메뉴의 항목을 사용하여 드라이브를 선택하려고 할 때 grub 메뉴 만 남습니다.

대신, USB에서 부팅하면 배포판의 방법으로 / boot / efi 마운트가 포함 된 파티션 인 / dev / sda2에 대한 목록이있는 기성품 그럽 메뉴가 생성 된 것으로 나타났습니다. 대부분의 기본 내장 드라이브 설치에서 파티션의 grub 이름은 hd0, gpt1입니다.

'고급'으로 들어가면서 둘 이상의 커널 구조가 가능했습니다. 여기에서 grub 유틸리티를 실행 한 다음 정상적으로 부팅하십시오.

이 시점에서 이전에는 액세스 할 수 없었던 내부 드라이브에서 OS를 실행하고 USB를 분리 한 다음 실행하십시오 sudo grub-install.

USB없이 재부팅하면 다시 들어갈 수 있어야합니다.이 시점에서 USB는 내장 드라이브를 일반 또는 복구 모드로 시작하도록 구성되어 있으며 드라이브에는 자체 메뉴가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.