grub2-install :“이 GPT 파티션 레이블에는 BIOS 부팅 파티션이 없습니다”


41

이것에 대해 약간의 토론이있는 것 같지만 간단한 대답을 찾을 수 없습니다.

grub2를 설치하려고하면이 오류가 발생합니다.

# grub2-install /dev/sda
Installing for i386-pc platform.
grub2-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub2-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub2-install: error: will not proceed with blocklists.

/ dev / sda의 레이아웃은 다음과 같습니다.

Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 7ECE06D0-9F0C-44FF-BCFB-142283172CCA

Device        Start       End   Sectors  Size Type
/dev/sda1      2048    411647    409600  200M Linux filesystem (/boot)
/dev/sda2    411648   4605951   4194304    2G Linux swap
/dev/sda3   4605952  46548991  41943040   20G Linux filesystem (/)
/dev/sda4  46548992 234441614 187892623 89.6G Linux LVM (/var)

이 문제를 해결할 수있는 간단한 방법이 있습니까? 디스크 시작 부분에 "BIOS 부팅 파티션"으로 작은 파티션을 만들어야한다는 것을 알고 있습니다. 스왑을 논리 볼륨으로 / dev / sda4로 옮기고 / dev / sda2를 / boot로 사용하는 옵션이 있다고 가정합니다.

또는 grub-legacy로 돌아가서 걱정할 필요가 없습니다 ( 많은 문제가 발생할 경우 grub2로 업그레이드하면 실제로 이점이 있습니까?).

생각?

답변:


23

먼저 BIOS / CSM / 레거시 모드 부팅을 사용할지 EFI / UEFI 모드 부팅을 사용할지 결정해야합니다. 전자는 1980 년대 이래로 PC가 부팅되는 방식이지만 너무 오래 전에 도도를 방해 할 추악하고 해킹적인 시스템입니다. Windows는 사용하지 않는 MBR 파티션 테이블에 BIOS 모드 부팅을 연결합니다 (하지만 디스크는 GPT를 요구할만큼 크지 않습니다). Linux, FreeBSD 및 대부분의 다른 최신 OS는 더 유연하며 GPT에서 BIOS 모드 부팅을 지원합니다. 그러나 펌웨어로 생성 된 복잡한 문제가있을 수 있으며, 나중에 듀얼 부팅 설치에 Windows를 설치하기로 결정한 경우 변경하거나 타협해야합니다.

EFI / UEFI 모드 부팅은 해킹이 적습니다. 그러나 EFI 구현은 품질면에서 매우 다양하며 웹에서 EFI에 대한 전반적인 전문 지식 및 지원 수준은 BIOS보다 낮습니다. Windows는 GPT 사용을 EFI 모드 부팅에 연결하므로 컴퓨터에 Windows를 설치하려는 경우 EFI를 사용하는 것이 좋습니다. 오래된 컴퓨터는 BIOS 전용입니다. EFI는 2011 년 중반 시장에서 시작되었으므로 컴퓨터가 그보다 오래된 경우 EFI를 사용하지 못할 수 있습니다.

BIOS 모드 부팅 을하는 경우 디스크에 BIOS 부팅 파티션 을 만들어야합니다 . 이 파티션을 위해 디스크 시작 부분에 충분한 공간이 있지만이 작업을 수행하려면 섹터 정렬 값을 1 (일반 2048에서)로 설정해야합니다. 이 작업을 수행 할 수 있는지 여부를 알지 parted못하지만으로 할 수 있습니다 gdisk. 디스크를 시작할 때의 공간은 BIOS 부트 파티션에 권장되는 1MiB 크기보다 약간 작지만 몇 개의 섹터 만 있습니다. 제대로 작동하지만 나중에는 실패 할 수 있습니다. BIOS 부팅 파티션을위한 공간을 만들기 위해 파티션을 1-2MiB 씩 줄일 수 있습니다. 이 파티션은 디스크의 첫 번째 파티션 일 필요 는 없지만 일반적인 위치입니다.

EFI / UEFI 모드 부팅을 사용하는 경우 EFI 시스템 파티션 (ESP)을 작성해야합니다 . 이 파티션은 FAT 형식이어야하며 BIOS 부트 파티션보다 훨씬 커야하므로 만들려면 크기를 조정해야합니다. 550MiB의 크기를 권장하지만 그 중 10 분의 1이 핀치에서 작동 할 수 있습니다.

GRUB을 설치하려면 먼저 올바른 GRUB 패키지를 설치했는지 확인해야합니다. 모든 배포판에서 이름을 지정할지는 확실하지 않지만 Ubuntu에서는 grub-pcBIOS / CSM / 레거시 모드 및 grub-efi-amd64EFI / UEFI 모드입니다. EFI 모드 설치는 또한 EFI 모드에서 GRUB (실제 CD / USB)을 설치하는 데 사용하는 모든 부팅이 필요합니다. 이렇게하려면 일반적으로 기능 키를 통해 액세스하는 컴퓨터의 내장 부팅 관리자를 사용해야하지만 세부 정보는 컴퓨터마다 다릅니다.


매우 유용한 답변에 감사드립니다. 가상 머신에서 작업하는 것이 약간 혼란 스러웠습니다. 내 "프로덕션"컴퓨터 (두 개의 하드 드라이브가 있음)에서이 작업을 수행하려고하면 여러 가지 문제가 있습니다. grub2-install grub-setup=/bin/true /dev/sdagives grub2-install: error: More than one install device?.. 작업중인 VM에서 시작 섹터는 32로 표시되지만 프로덕션 시스템에서는 2048로 표시됩니다. 이것이 관련이 있는지 모릅니다.
Robert S

Flow가 자신의 답변에서 BIOS 부트 파티션의 파티션 유형을 "BIOS 부팅"인 0x04로 설정해야하며, 그렇지 않으면 grub을 설치할 수 없습니다. 예를 들어 fdisk의 "t"명령으로 설정할 수 있습니다.
user1225999

BIOS 부팅 파티션 없이 GRUB 2를 설치하는 방법이 있습니까? UEFI 만 사용하고 싶습니다.
CMCDragonkai

1
EFI 모드 설치에서 GRUB 2는 BIOS 부트 파티션을 사용하지 않습니다. GRUB이 요청하는 경우 EFI 모드가 아닌 BIOS 모드에서 부팅되었을 가능성이 있습니다. 내 웹 페이지 주제에 설명 된대로 rodsbooks.com/efi-bootloaders/csm-good-bad-ugly.html
Rod Smith

6

구식 BIOS 부팅 모드로 GPT 파티션을 사용하려면를 사용하여 grub을 설치하려는 장치에서 몇 메가 바이트 (16MiB는 괜찮고 향후 증거 임)의 BIOS 파티션을 만들어야합니다 grub-install.

fdisk를 들어, 디스크 어딘가에 "BIOS 부팅"유형의 파티션을 만들 때 사용하십시오 . 출력 예 :

# fdisk -l /dev/sda
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 57E16A16-36B4-4445-A216-031EF6501415

Device        Start        End    Sectors   Size Type
/dev/sda1      2048    4196351    4194304     2G Linux RAID
/dev/sda2   4196352   35653631   31457280    15G Linux RAID
/dev/sda3  35653632   37750783    2097152     1G Linux swap
/dev/sda4  37750784   37816319      65536    32M BIOS boot
/dev/sda5  37816320 1953525134 1915708815 913.5G Linux LVM

3

부팅 파티션을 포맷하려면 fat32로 포맷해야합니다.

mkfs.vfat -F32 /dev/sdXY

당신을 위해 고쳐야합니다

또한 부트 플래그는 부분적으로 켜져 있어야합니다.

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