grub2-install: “bu GPT bölüm etiketi, BIOS Önyükleme Bölümü içermiyor”


41

Bu konuda oldukça tartışma var gibi gözüküyor ama basit bir cevap bulamıyorum.

Grub2'yi yüklemeye çalıştığımda şu hatayı alıyorum:

# 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.

İşte / dev / sda dizilimi:

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)

Bu sorunu çözmenin basit bir yolu var mı? Diskin başında "BIOS Önyükleme Bölümü" olarak küçük bir bölüm oluşturmam gerektiğini anladım. Sanırım bir seçenek takas alanını mantıksal bir birim olarak / dev / sda4'e taşımak ve / dev / sda2'yi / boot olarak kullanmak olacaktır.

Alternatif olarak grubun mirasına geri dönebilirim ve bunun için endişelenmeyin ( bu kadar sorun çıkarırsa grub2'ye yükseltme yapmak gerçekten bir avantaj mıdır?).

Düşünceler?

Yanıtlar:


23

İlk önce BIOS / CSM / eski mod önyüklemesi mi yoksa EFI / UEFI mod önyüklemesi mi kullanmak istediğinizi belirlemelisiniz. Bunlardan birincisi, PC'lerin 1980'lerden bu yana başlattıkları yol, ancak çok uzun zaman önce dodo yoluna girecek çirkin ve çirkin bir sistem. Windows, BIOS modunu önyüklemeyi kullanmadığınız MBR bölüm tablosuna bağlar (ancak diskiniz GPT gerektirecek kadar büyük değildir). Linux, FreeBSD ve diğer birçok modern işletim sistemi daha esnektir ve GPT'den BIOS modu önyüklemesini destekler; ancak bazen yazılım tarafından oluşturulan komplikasyonlar olabilir ve tabii ki daha sonra Windows'u bir çift önyükleme kurulumuna kurmaya karar verirseniz, değişiklik veya uzlaşma yapmanız gerekecektir.

EFI / UEFI modu önyüklemesi daha az kesmek; ancak EFI uygulamaları kalite bakımından büyük farklılıklar gösterir ve EFI için Web'deki genel uzmanlık ve destek seviyesi BIOS için olduğundan daha düşüktür. Windows GPT kullanımını EFI modu önyüklemesine bağlar; bu nedenle, bilgisayarınıza Windows yüklemeyi bekliyorsanız, EFI kesinlikle devam etmenin yoludur. Eski bilgisayarlar sadece BIOS içindir. EFI, 2011'in ortasında piyasaya girmeye başladı, bu nedenle bilgisayarınız bundan daha eskiyse, EFI'yi kullanamayabilirsiniz.

BIOS modu önyüklemeye devam ederseniz , diskte bir BIOS Önyükleme Bölümü oluşturmalısınız . Bu bölüm için diskinizin başında yeterli alan var, ancak bunun için sektör hizalama değerinizi 1'e (normal 2048'den) ayarlamanız gerekir. Bunun yapılıp yapılmadığını önceden bilmiyorum parted, ama sen de yapabilirsin gdisk. (Diskinizin başlangıcındaki boşluğun bir BIOS Önyükleme Bölümü için önerilen 1MiB boyutunun biraz altında olduğunu, ancak yalnızca birkaç sektörde olduğunu unutmayın. Muhtemelen iyi çalışacak, ancak gelecekte bir noktada akla gelmeyebilir.) Alternatif olarak , BIOS Önyükleme Bölümüne yer açmak için bölümlerinizden birini 1-2MiB kadar daraltabilirsiniz. Bu bölüm yok değil o geleneksel konumu rağmen, diskin ilk bölümü olması gerekir.

EFI / UEFI modu önyüklemesine geçerseniz, bir EFI Sistem Bölümü (ESP) oluşturmanız gerekir . Bu bölüm FAT biçiminde olmalı ve bir BIOS Önyükleme Bölümünden önemli ölçüde daha büyük olmalıdır, bu nedenle oluşturmak için bir şeyi yeniden boyutlandırmanız gerekir. 550MiB bir boyut tavsiye ederim, ancak onda biri bir tutamda işe yarayabilir.

GRUB'u kurmak için önce doğru GRUB paketini kurduğunuzdan emin olmalısınız. Tüm dağıtımlarda adlandırmadan emin değilim, ancak Ubuntu'da, grub-pcBIOS / CSM / eski mod ve grub-efi-amd64EFI / UEFI modu için olurdu . Bir EFI modu kurulumunda ayrıca GRUB'yu EFI modunda kurmak için ne kullanıyorsanız kullanın. Bunu yapmak için, genellikle bir işlev tuşu ile erişilen, bilgisayarınızın dahili önyükleme yöneticisinin kullanılması gerekebilir, ancak ayrıntılar bir bilgisayardan diğerine değişebilir.


Çok yararlı cevabınız için teşekkürler. Sanal bir makinede çalışan bir sürü işim var. Bunu "üretim" makinemde yapmaya çalıştığımda (iki sabit diski var) bir takım problemlerim var: grub2-install grub-setup=/bin/true /dev/sdaverir grub2-install: error: More than one install device?.. Çalışan VM'mde başlangıç ​​sektörü 32, ancak üretim makinesinde 2048 olarak işaretlendi. Bunun uygun olup olmadığını bilmiyorum.
Robert S,

Flow'un cevabında önerdiği gibi, BIOS Önyükleme Bölümünün bölüm tipi "BIOS önyüklemesi" olan 0x04 olarak ayarlanmalıdır, aksi takdirde grub yüklenemez. Bu, örneğin fdisk'in "t" komutuyla ayarlanabilir.
user1225999

Grub 2'yi bir bios boot bölümü olmadan kurmanın bir yolu var mı ? Sadece UEFI kullanmak istiyorum.
CMCDragonkai

1
EFI modu kurulumunda, GRUB 2 bir BIOS Önyükleme Bölümü kullanmaz. GRUB birini istiyorsa, şansınızı EFI modunda değil, BIOS modunda başlatmış olursunuz. Konuyla ilgili Web sayfamda açıklandığı gibi CSM'nin
Rod Smith

6

GPT bölümlerini eski stil BIOS önyükleme modu ile kullanmak istiyorsanız, grubunu kurmak istediğiniz cihazda birkaç megabaytlık (16MiB iyi ve geleceğe hazır olmalıdır) bir BIOS bölümü oluşturmanız gerekir grub-install.

Örneğin fdisk, diskinizde bir yerde "BIOS önyüklemesi" türünün bir bölümünü oluşturmak için kullanın . Örnek çıktı:

# 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

Önyükleme bölümü çalışması için fat32 olarak biçimlendirilmelidir.

mkfs.vfat -F32 /dev/sdXY

Senin için tamir etmeli

Ayrıca boot bayrağı da bölümlenmiş olmalı:

set 1 boot on
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.