Iš šio straipsnio sužinosite apie EFI sistemos skaidinį
Įvadas
EFI sistemos skaidinys (arba ESP) yra OS nepriklausomas skaidinys, suformatuotas FAT12, FAT16 arba FAT32, kuris veikia kaip saugykla EFI pakrovėjams ir tvarkytojams, kurie bus paleisti UEFI firmwaroje, ir jis yra privalomas UEFI paleidimui.
EFI sistemos skaidinio sudarymas
Linux (naudojant GRUB)
Pirmiausia turite pakeisti skaidinių lentelę. Įsitikinkite, kad kiekviename diske yra bent 200 MB neužimtos vietos. Norėdami sukurti ESP, turite nurodyti skaidinį skaidinių lentelėje. Tai galite padaryti naudodami gdisk
.
$ gdisk /dev/nvme0n1
GPT fdisk (gdisk) versija 1.0.3
Skaidinių lentelės nuskaitymas:
MBR: apsauginė
BSD: nėra
APM: nėra
GPT: yra
Rasta galiojanti GPT su apsaugine MBR; naudojama GPT.
Komanda (? pagalba):
Pasirinktame diske yra GPT skaidinių lentelė. Įveskite p
, kad spausdintumėte dabartinę skaidinių lentelę.
Komanda (? pagalba): p
Diskas /dev/nvme0n1: 1000215216 sektoriai, 476.9 GiB
Modelis: SAMSUNG MZVLB512HAJQ-00000
Sektorių dydis (loginis/fizinis): 512/512 baitai
Disko identifikatorius (GUID): 81C8DFEB-06A0-4164-84BC-B5F5D696B519
Skaidinių lentelė laiko iki 128 įrašų
Pagrindinė skaidinių lentelė prasideda nuo 2 sektoriaus ir baigiasi 33 sektoriuje
Pirmasis naudojamas sektorius yra 34, paskutinis naudojamas sektorius yra 1000215182
Skaidiniai bus lygiuojami pagal 2048-sektorių ribas
Viso laisvo vietos yra 411614 sektorių (201.0 MiB)
Numeris Pradžios (sektorius) Pabaiga (sektorius) Dydžio Kodas Pavadinimas
1 2048 999805582 476.7 GiB 8300 Linux failų sistema
Komanda (? pagalba):
Šiuo atveju yra tik vienas skaidinys, kurio dydis yra 476.7 GiB
, kur įdiegta OS. Taip pat yra viso laisvo vietos 201.0 MiB
, kuri yra neužimta. Šias 200 MiB
naudosite ESP. Norėdami sukurti naują skaidinį, įveskite n
.
Komanda (? pagalba): n
Skaidinio numeris (2-128, numatytoji 2):
Pirmasis sektorius (34-1000215182, numatytasis = 999806976) arba {+-}dydį{KMGTP}:
Paskutinis sektorius (999806976-1000215182, numatytasis = 1000215182) arba {+-}dydį{KMGTP}:
Dabartinis tipas yra „Linux failų sistema“
Hex kodas arba GUID (L, kad pamatytumėte kodą, Enter = 8300): EF00
Skaidinio tipas pakeistas į „EFI System“
Pastaba: ESP neturi būti skaidinių lentelės pradžioje. Jums tiesiog reikia nustatyti Hex kodą kaip EF00
ir naudoti mažiausią dydį 200MiB
.
Kai baigsite, galite įrašyti skaidinių lentelę naudodami w
.
Komanda (? pagalba): w
Baigti galutiniai patikrinimai. Apie tai, kad bus įrašyti GPT duomenys. TAI PERRAŠYS EGZISTUOJANČIUS
SKAIDINIUS!!
Ar norite tęsti? (T/N): y
GERAI; nauja GUID skaidinių lentelė (GPT) rašoma į /dev/nvme0n1.
Operacija baigta sėkmingai.
Jei norite užtikrinti, kad skaidinių lentelė būtų perkrauta, paleiskite partprobe
.
lsblk
komandos išvestis turėtų atrodyti panašiai į šią:
$ lsblk
VARD
AS MAJ:MIN RM DYDIS RO TIPAS PRIJUNGIMO VIETA
loop0 7:0 0 4G 1 kilpa
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:4 0 512M 0 part
├─nvme0n1p2 259:5 0 476.2G 0 part
└─nvme0n1p3 259:6 0 256M 0 part
PASTABA
Jeigu serveryje yra daugiau nei vienas diskas, tuomet rekomenduojama sukurti ESP naudojant RAID 1. Svarbu šiuo atveju yra nustatyti --metadata=1.0
MD. Tai įrašys MD metaduomenis į skaidinio pabaigą, o ne į skaidinio pradžią. Šiuo atveju tai būtina, kad UEFI firmwara galėtų aptikti ESP.
First, check the state of MD with cat /proc/mdstat
. The output should look similar to this:
Personalities : [raid1] [raid10] [linear] [multipath] [raid0] [raid6] [raid5] [raid4]
md0 : active raid1 nvme0n1p1[1] nvme1n1p1[0]
523712 blocks super 1.2 [2/2] [UU]
md1 : active raid1 nvme0n1p2[1] nvme1n1p2[0]
1874716672 blocks super 1.2 [2/2] [UU]
bitmap: 1/14 pages [4KB], 65536KB chunk
In this case, the next available “md-device” would be md2
. You will use this for the ESP. Create the partition on every device as already described above.
Create the MD device like this. (You need to adapt the amount of raid-devices
and the logical devices):
mdadm --create --verbose --level=1 --raid-devices=2 --metadata=1.0 /dev/md/2 /dev/nvme0n1p3 /dev/nvme1n1p3
After creating the MD device, generate the mdadm.conf
.
mdadm --detail --scan /dev/md/2 >> /etc/mdadm/mdadm.conf
Format the freshly created partition with FAT32:
$ mkfs.vfat -F 32 /dev/nvme0n1p3 # or the md device
mkfs.fat 4.1 (2017-01-24)
Create the directory /boot/efi
with mkdir /boot/efi
.
Mount the ESP partition to /boot/efi
with mount
.
Get the UUID of the partition with blkid -o value -s UUID /dev/your_esp_partition_or_md_device
and create a new fstab entry:
UUID=the_uuid_of_the_esp /boot/efi vfat umask=0077 0 1
To install the EFI boot binaries, you need to first install the EFI-GRUB bootloader.
On Debian/Ubuntu, it is grub-efi-amd64-bin
; on CentOS, it is grub2-efi-x64
.
Now you can install the EFI-GRUB bootloader:
$ # Ubuntu/Debian
$ grub-install --target=x86_64-efi --efi-directory=/boot/efi --no-floppy --no-nvram --removable
$ # CentOS
$ grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
Windows
Since Windows Server 2012, Microsoft has provided a tool called mbr2gpt
which automatically converts the partition table to GPT and also creates an ESP.
It is recommended you do this in a WinPE environment, but you can also do it in a running system.
Open an elevated command prompt (cmd
) and run mbr2gpt /validate /allowFullOS
. Note: /allowFullOS
is only required when doing the conversion in the running system (no WinPE). The output should look similar to this:
C:\Windows\System32> mbr2gpt /validate /allowFullOS
MBR2GPT: Attempting to validate disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Validation completed successfully
Important: If the validation fails, then please abort here and check why it failed. If the disk is dynamic, then it is not possible to do this using this method.
If the validation succeeded, then continue with the conversion. You can do this with mbr2gpt /convert /allowFullOS
. The output should look similar to this:
C:\Windows\System32> mbr2gpt /convert /allowFullOS
MBR2GPT will now attempt to convert the default book disk.
If conversion is successful the disk can only be booted in GPT mode.
These changes cannot be undone!
MBR2GPT: Attempting to convert disk 0
MBR2GPT: Retrieving layout of disk
MBR2GPT: Validating layout, disk sector size is: 512 bytes
MBR2GPT: Trying to shrink the OS partition
MBR2GPT: Creating the EFI system partition
MBR2GPT: Installing the new boot files
MBR2GPT: Performing the layout conversion
MBR2GPT: Migrating default boot entry
MBR2GPT: Adding recovery boot entry
MBR2GPT: Fixing drive letter mapping
MBR2GPT: Conversion completed successfully
MBR2GPT: Before the new system can boot properly you need to switch the firmware to boot to UEFI mode!
Now you can change the boot firmware to UEFI.