단일 부팅 하드웨어에서 부팅 복구없이 Ubuntu BIOS 설치를 EFI / UEFI로 변환하는 명령은 무엇입니까?


35

실수로 BIOS 모드 설치

UEFI 설정 유틸리티가있는 Intel 64 비트 하드웨어가 있습니다. Ubuntu 14.04.1 LTS는 연결된 유일한 드라이브에 유일한 운영 체제로 설치되었습니다. 실수로 Ubuntu가 BIOS / CSM / 레거시 모드로 설치되었습니다.

UEFI로 변환

나중에 UEFI에 대해 배우는 동안 목표는 기존 Ubuntu 설치를 EFI / UEFI를 통한 (빠른) 부팅으로 변경하는 것입니다. UEFI 설정 유틸리티에 들어갈 수있는 부팅 메뉴를 2 초간 표시하고 싶습니다. 따라서 Grub (EFI 부팅 스텁을 사용할 수 없음)을 사용해야하며 GOP 지원에는 Grub 버전 1.99 이상이 필요합니다 . 이미 Live CD를 사용하여 드라이브를 다시 분할하고 드라이브 시작 부분에 200 MiB EFI 파티션을 삽입하고 fat16 형식의 파티션을 유형 ID 0xEF로 표시했습니다.

전에:

# fdisk -l /dev/sda
...
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   108478463    54238208   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

후:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *      411648   108478463    54033408   83  Linux
/dev/sda2       108480510   125044735     8282113    5  Extended
/dev/sda3            2048      411647      204800   ef  EFI (FAT-12/16/32)
/dev/sda5       108480512   125044735     8282112   82  Linux swap / Solaris

Partition table entries are not in disk order

부팅 수리가 필요 없습니다

Ubuntu 커뮤니티 위키는 부팅 복구를 사용하여 Ubuntu를 EFI 모드로 변환 하도록 제안 합니다 . GUI를 사용하거나 추가 패키지를 설치하고 싶지 않으며 실수로 pastebin.com으로 데이터를 전송하고 싶지 않으며 정확하게 무엇이 변경되는지 알고 싶기 때문에 원하지 않습니다. 사용 부팅 수리 .

후드

부팅 복구가 실제로 무엇을하는지 알아 내려고 노력 하면서이 스 니펫을 발견했습니다.

Boot-Repair는 gpt-pc를 제거하고 gpt가 파티션 된 경우 grub-efi를 설치하여 BIOS 설치를 UEFI로 변환합니다.

출처 : http://ubuntuforums.org/showthread.php?t=2147295&p=12657352#post12657352

UEFI 모드 설치 비교

UEFI 모드에서 Ubuntu 14.04.1을 새로 설치하면 512 MiB Fat32 형식의 EFI 파티션이 생성됩니다. 그 파티션은 하나의 디렉토리를 포함 /EFI/ubuntu4 개 파일을 포함, : grub.cfg, grubx64.efi, MokManager.efishimx64.efi. grub.cfg는 다음을 포함합니다 :

search.fs_uuid 7d843e47-3917-4114-8725-55dfa1fbe002 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg

Search.fs_uuid는 Linux 설치 파티션의 UUID를 가리 킵니다.이 비교에서 UEFI 설치 Linux는 파티션 / dev / sda2 (BIOS 모드 설치의 sda1과 비교)로 설치됩니다 .

잠재적 인 Asrock 펌웨어 문제가 없습니다.

펌웨어에서 CSM을 여전히 비활성화하고 클린 UEFI 모드 Ubuntu 설치를 사용합니다. Live CD를 사용하여 512 MiB EFI 파티션의 크기를 200MiB로 조정하면 gparted포맷이 FAT32에서 FAT16으로 변경됩니다. Asrock 펌웨어 P1.50 (부팅 메시지 "BIOS 날짜"에서 AMI에 의해 BIOS로 잘못 불림) 은 여전히 ​​UEFI 모드로 부팅 할 수 있습니다. Ubuntu : UEFI + FAT16 = ok . 동일한 Live CD 터미널 명령 과 해당 명령을 사용하여
파티션 테이블을 GPT에서 MBR (msdos) 로 변환하면 MBR 파티션 된 드라이브에서 UEFI 부팅 가능한 Ubuntu가 생성됩니다 ( UEFI + MBR = ok) .gdiskr g p w

의문

이것은 레거시 우분투 설치 에서이 순서로 실행 해야하는 유일한 명령은 다음과 같습니다.

# apt-get install grub-efi
# apt-get remove grub-pc

? 아니면 더해야합니까?


1
여전히 부팅 복구를 사용합니다. 당신은 당신이 패키지를 설치해야한다고 가정 ... 당신이 잘못 생각합니다. 참조 : askubuntu.com/questions/226061/…
Rinzwind

@Rinzwind 현재 Ubuntu 설치에 GUI가 없기 때문에 부팅 복구를 사용할 수 없습니다 (콘솔 전용). H81 Pro BTC P1.50 UEFI 설정 유틸리티.
프로 백업

1
Boot-Repair는 GUI가 아니지만 추가 기능 중 하나를 사용하여 GUI를 더 좋아합니다. 최신 버전의 Ubuntu 패키지 이름이 약간 변경되었으므로 이제 grub-efi-amd64 또는 grub-efi-amd64로 서명되었습니다. 이름이 변경된 32 비트 UEFI 부트 로더를 릴리스하려고하기 때문일 수 있습니다. Chroot 버전은 grub을 설치하고 grub.cfg를 생성합니다. askubuntu.com/questions/53578/…
oldfred

@oldfred Boot-Repair는 gui에 따라 다릅니다. apt-get install boot-repair이 Ubuntu 서버 설치에서 실행 하면 boot-repair가 설치하려는 종속성과 같은 245MB의 GTK가 발생합니다. 그리고 boot-repair나중에 명령을 실행하는 데 실패합니다. 최신 grub-efi 이름 업데이트가 정말 도움이되었습니다.
프로 백업

Asrock 인 경우 Asmedia 포트에 연결된 드라이브 또는 DVD 드라이브가 없는지 확인하십시오. 그들은 드라이버가 없습니다. UEFI에서 부팅하는 경우 gpt 파티션 된 드라이브 만있는 것이 좋습니다. rodsbooks.com/gdisk/hybrid.html
oldfred

답변:


40

UEFI 모드에서 Ubuntu Linux (14.04) Live CD를 시작하십시오. USB 부팅 장치 인 경우 UEFI에서 "Fast Boot"를 비활성화하십시오.

터미널 창을 엽니 다 ( Ctrl+ Alt+ T)

실제로 UEFI 모드에서 실행 중인지 확인하려면 다음 bash 명령을 사용하십시오.

$ [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

결과 출력은 다음과 같아야합니다.

UEFI

이라고 표시 BIOS되면 펌웨어로 재부팅하고 부팅 장치 기본 설정을 수정하십시오.

BIOS에서 EFI / UEFI 로의 변환을 수행하려면 다음 명령을 입력하십시오.

$ sudo mount /dev/sda1 /mnt
$ sudo mkdir -p /mnt/boot/efi
$ sudo mount /dev/sda3 /mnt/boot/efi
$ sudo mount --bind /dev /mnt/dev
$ sudo mount --bind /proc /mnt/proc
$ sudo mount --bind /sys /mnt/sys
$ sudo mount --bind /run /mnt/run
$ modprobe efivars
$ sudo chroot /mnt
# apt-get install grub-efi-amd64

The following extra packages will be installed:
  efibootmgr grub-efi-amd64-bin
The following packages will be removed:
  grub-gfxpayload-lists grub-pc
...
After this operation, 2,399 kB of additional disk space will be used.

# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

오류 메시지로 끝나더라도 :

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

다음 재부팅시 펌웨어의 부팅 옵션 메뉴에 이미 " ubuntu "가 표시 되고 efi 모드로 부팅하는 경우를 제외하고 이전과 같이 콘솔로 부팅됩니다.

$ dmesg | grep EFI
efi: EFI v2.31 by American Megatrends
fb0: EFI VGA frame buffer device
EFI Variables Facility v0.08 2004-May-17
fb: switching to inteldrmfb from EFI VGA

문제가 발생하면 https://superuser.com/questions/376470/how-to-reinstall-grub2-efi 가 도움이 될 수 있습니다.


이를 통해 하드 드라이브를 업그레이드하고 다시 설치하지 않고 GPT / UEFI / SecureBoot로 변환 할 수있었습니다. 고맙습니다. 참고 사항 : grub-efi-amd64-signedUEFI BIOS에서 SecureBoot를 비활성화하지 않아도 되는 패키지가 필요했습니다 .
Robie Basak 1

이제는 2018이며 EFI i 의이 문제는 여전히 영구적입니다. 심지어 efi 부팅이 설치되었지만 grub cli로 끝납니다. 우분투를 포기합니다.
Abhishek Dujari

이것은 우분투 19.10에서 나를 위해 일했습니다. EFI로 라이브 USB를 부팅했으며 디스크 끝에 EFI 용 FAT32 유형의 200MB 파티션을 추가했습니다.
Joey Adams

1

이것은 하나의 작은 변경으로도 저에게 효과적이었습니다. 네트워크가 작동하고 있지만 패키지 서버를 찾기 위해 "apt-get install grub-efi-amd64"를 얻을 수 없었습니다.

마지막으로 BIOS 모드로 부팅하고 grub-efi-amd64를 설치하여이 문제를 해결했습니다.

그런 다음 "apt-get install grub-efi-amd64"를 제외하고 여기의 절차를 따를 수 있습니다.


1

작은 수정 :

sudo apt-get install -y grub-efi-amd64
sudo mount /dev/sda1 /mnt
sudo mkdir -p /mnt/boot/efi
sudo mount /dev/sda3 /mnt/boot/efi
for d in dev sys proc usr run; do sudo mount -B /$d /mnt/$d; done
sudo modprobe efivars
sudo chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --no-floppy --debug

끝난.


OP의 답변에서 이러한 변경을 제안하는 이유를 설명 할 수 있습니까? ……… 의견에 응답하지 마십시오.  명확하고 완전하게 답변을 편집 하십시오.
G-Man, 'Reinstate Monica'7
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.