태그 보관물: grub

grub

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

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

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로 업그레이드하면 실제로 이점이 있습니까?).

생각?



답변

먼저 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)을 설치하는 데 사용하는 모든 부팅이 필요합니다. 이렇게하려면 일반적으로 기능 키를 통해 액세스하는 컴퓨터의 내장 부팅 관리자를 사용해야하지만 세부 정보는 컴퓨터마다 다릅니다.


답변

구식 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


답변

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

mkfs.vfat -F32 /dev/sdXY

당신을 위해 고쳐야합니다

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

set 1 boot on


답변