grub2-install: "label partisi GPT ini tidak mengandung Partisi Boot BIOS"

41

Tampaknya ada sedikit diskusi tentang ini, tetapi saya tidak dapat menemukan jawaban yang sederhana.

Ketika saya mencoba menginstal grub2 saya mendapatkan kesalahan ini:

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

Berikut adalah tata letak dari / 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)

Apakah ada cara sederhana yang bisa saya lakukan untuk mengatasi masalah ini? Saya mengerti bahwa saya perlu membuat partisi kecil di awal disk sebagai "BIOS Boot Partition". Saya kira satu pilihan adalah memindahkan swap ke / dev / sda4 sebagai volume logis, dan menggunakan / dev / sda2 sebagai / boot.

Atau saya bisa saja kembali ke grub-legacy dan tidak khawatir tentang itu (apakah benar - benar ada keuntungan untuk memutakhirkan ke grub2 jika itu menyebabkan banyak masalah?).

Pikiran?

Robert S
sumber

Jawaban:

23

Anda harus terlebih dahulu menentukan apakah Anda ingin menggunakan booting BIOS / CSM / legacy-mode atau booting EFI / UEFI-mode. Yang pertama adalah cara PC melakukan booting sejak 1980-an, tetapi ini adalah sistem yang jelek dan meretas yang akan berjalan seperti dodo sebelum terlalu lama. Windows mengikat booting mode-BIOS ke tabel partisi MBR, yang tidak Anda gunakan (tetapi bisa; disk Anda tidak cukup besar untuk membutuhkan GPT). Linux, FreeBSD, dan kebanyakan OS modern lainnya lebih fleksibel, dan mendukung booting mode-BIOS dari GPT; tetapi terkadang ada komplikasi yang dibuat oleh firmware, dan tentu saja jika nanti Anda memutuskan untuk menginstal Windows dalam pengaturan dual-boot, Anda harus membuat perubahan atau kompromi.

Boot mode EFI / UEFI lebih sedikit dari hack; tetapi implementasi EFI sangat bervariasi dalam kualitas dan tingkat keseluruhan keahlian dan dukungan di Web untuk EFI lebih rendah dari itu untuk BIOS. Windows mengaitkan penggunaan GPT ke booting mode EFI, jadi jika Anda berharap untuk menginstal Windows di komputer Anda, EFI pasti cara yang harus dilakukan. Komputer lama hanya BIOS. EFI mulai lepas landas di pasar pada pertengahan 2011, jadi jika komputer Anda lebih tua dari itu, Anda mungkin tidak dapat menggunakan EFI.

Jika Anda menggunakan booting mode-BIOS, Anda harus membuat Partisi Boot BIOS pada disk. Ada cukup ruang di awal disk Anda untuk partisi ini, tetapi Anda harus mengatur nilai penyelarasan sektor Anda ke 1 (dari biasanya 2048) agar ini berfungsi. Saya tidak tahu begitu saja apakah ini bisa dilakukan dengan parted, tetapi Anda bisa melakukannya dengan gdisk. (Perhatikan bahwa ruang di awal disk Anda sedikit di bawah ukuran 1MiB yang disarankan untuk Partisi Boot BIOS, tetapi hanya oleh beberapa sektor. Mungkin akan berfungsi dengan baik, tetapi mungkin gagal di beberapa titik di masa depan.) Atau , Anda dapat menyusutkan salah satu partisi Anda dengan 1-2MiB untuk memberikan ruang bagi BIOS Boot Partition. Partisi ini tidak perlu menjadi partisi pertama pada disk, meskipun itu adalah lokasi konvensional.

Jika Anda menggunakan booting mode EFI / UEFI, Anda harus membuat Partisi Sistem EFI (ESP). Partisi ini harus berformat FAT dan harus jauh lebih besar daripada Partisi Boot BIOS, jadi Anda harus mengubah ukuran sesuatu untuk membuatnya. Saya merekomendasikan ukuran 550MiB, meskipun sepersepuluh dari itu mungkin bekerja dalam keadaan darurat.

Untuk menginstal GRUB, Anda harus terlebih dahulu memastikan bahwa Anda telah menginstal paket GRUB yang benar. Saya tidak yakin menyebutkan nama di semua distribusi, tetapi di Ubuntu, itu akan grub-pcuntuk mode BIOS / CSM / legacy dan grub-efi-amd64untuk mode EFI / UEFI. Instalasi mode EFI juga akan membutuhkan boot apa pun yang Anda gunakan untuk menginstal GRUB (CD / USB langsung, mungkin) dalam mode EFI. Untuk melakukan ini, Anda mungkin perlu menggunakan boot manager internal komputer Anda, yang biasanya diakses melalui tombol fungsi, tetapi detailnya berbeda dari satu komputer ke komputer lainnya.

Rod Smith
sumber
Terima kasih atas jawaban Anda yang sangat membantu. Saya mendapatkan sesuatu yang bekerja pada mesin virtual dengan sedikit main-main. Ketika saya mencoba melakukan ini pada mesin "produksi" saya (yang memiliki dua hard drive) saya memiliki sejumlah masalah: grub2-install grub-setup=/bin/true /dev/sdamemberi grub2-install: error: More than one install device?.. Pada VM saya yang bekerja, sektor awal ditandai sebagai 32, tetapi pada mesin produksi 2048. Tidak tahu apakah ini relevan.
Robert S
Seperti yang disarankan Flow dalam jawabannya, tipe partisi BIOS Boot Partition harus diatur ke 0x04 yaitu "BIOS boot" jika tidak grub gagal diinstal. Ini dapat diatur misalnya dengan perintah "t" fdisk.
user1225999
Apakah ada cara untuk membuat instalasi grub 2 tanpa partisi boot bios? Saya hanya ingin menggunakan UEFI.
CMCDragonkai
1
Dalam instalasi mode EFI, GRUB 2 tidak menggunakan Partisi Boot BIOS. Jika GRUB meminta satu, maka kemungkinan Anda telah boot dalam mode BIOS, bukan dalam mode EFI. Periksa opsi boot Anda untuk memastikan CSM Anda dinonaktifkan, seperti yang dijelaskan pada halaman Web saya pada subjek: rodsbooks.com/efi- boot booters
Rod Smith
6

Jika Anda ingin menggunakan partisi GPT dengan mode boot BIOS gaya lama, maka Anda perlu membuat partisi BIOS beberapa megabyte (16MiB harus bagus dan bukti di masa depan) pada perangkat tempat Anda ingin menginstal grub grub-install.

Gunakan, misalnya fdiskuntuk membuat partisi tipe "BIOS boot" di suatu tempat di disk Anda. Contoh output:

# 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
Mengalir
sumber
3

Partisi boot harus diformat FAT32, agar bisa berfungsi

mkfs.vfat -F32 /dev/sdXY

Harus memperbaikinya untuk Anda

Bendera boot juga harus di parted:

set 1 boot on
Kevin Huntly
sumber