GNU/Linux >> Znalost Linux >  >> Linux

Přesuňte svůj Linux ze staršího BIOSu do UEFI s minimálními prostoji

Nevím jak vy, ale já nerad přeinstalovávám svůj operační systém. Považuji to za úplnou ztrátu času na něco, co by se mělo aktualizovat. Někteří lidé, kteří často používají jiné platformy, dávají přednost dobrému vymazání a přeinstalaci jednou za rok, aby získali původní rychlost svých systémů. K tomuto pohledu se prostě nepřipojuji. Existuje mnoho způsobů, jak udržovat systém, a já obvykle dávám přednost investigativnímu ladění než mazání a doufání v to nejlepší.

Z tohoto důvodu mohly systémy, jako je můj pracovní notebook, začít svůj život již dávno (Fedora 22 na notebooku 4. generace založeném na i7) a nyní zaznamenaly tři aktualizace hardwaru, několik upgradů SSD (solid state drive) a mnoho Aktualizace Fedory (momentálně používám Fedoru 32).

Když přepínám systémy, rád si vezmu operační systém s sebou a očekávám, že se spustí na novém počítači. Ale ukázalo se, že je to katastrofa, která se teprve stane kvůli hardwarovým rozdílům mezi novými a starými systémy. Problém je v tom, že to není tak jednoduché, jako vytáhnout váš pevný disk ze starého systému a vložit jej do nového a očekávat, že vše bude fungovat, jak chcete. Tento článek popisuje, jak přesunout instalaci Linuxu z jednoho kusu hardwaru, v tomto případě ze staršího notebooku, na novější.

Velké varování nebo deset let pokročilého varování, které nám UEFI poskytlo

Když bylo na počátku 21. století představeno Unified Extensible Firmware Interface (UEFI), bylo navrženo tak, aby nahradilo BIOS počítače (Basic Input/Output System) a poskytlo uživatelům x86 něco technologicky vyspělejšího. Lidé se systémy SPARC nebo PowerPC Mac s OpenBoot PROM (OBP)/OpenFirmware už zažili budoucnost před mnoha lety. UEFI chtělo vypudit BIOS, aby jeho předchůdci už nedělali ostudu PC.

Aby byla technologie UEFI široce přijata, rozhodli se výrobci, aby byla volitelná/volitelná z firmwaru počítače:Chcete zavést systém v režimu Legacy BIOS nebo UEFI? V průběhu následujících deseti let UEFI pomalu vytlačilo starší BIOS a stalo se výchozím režimem pro počítače dodávané výrobci.

Abychom byli spravedliví, UEFI poskytuje několik výhod, včetně těchto:

  • Díky tomu je vícenásobné spouštění spolehlivější a flexibilnější.
  • Dává nám (uživatelům Linuxu) možnost spouštět fwupdmgr k flashování firmwaru v našich počítačích z Linuxu. To zahrnuje téměř jakýkoli firmware, dokonce i přídavné karty.

Na svých osobních systémech jsem jednoduše ignoroval problém UEFI a nadále jsem povoloval Legacy BIOS na každém novém počítači, který jsem získal, abych mohl spustit svůj operační systém Linux, aniž bych o tom přemýšlel.

Pak přišel rok 2020 a objevil se zcela nový notebook pouze s UEFI. Žádné starší bootování jakéhokoli druhu (kromě externích USB klíčů). O měsíce později se k nám domů dostala nová přenosná pracovní stanice založená na Xeonu a ta bestie by opět uměla pouze UEFI.

Uvízl jsem u hlavního spouštěcího záznamu (MBR) naformátovaného SSD (starší BIOS) a počítače, který by se spouštěl pouze v režimu UEFI. Jako kutil a uživatel Linuxu jsem se rozhodl tento problém prozkoumat a ukázalo se, že řešení není příliš obtížné a bude vyžadovat asi pět minut, jakmile se rozhodnete, co dělat.

Varování a několik upozornění

Při hledání "správného postupu" pro mé fyzické systémy jsem několikrát poškodil testovací virtuální stroj, který jsem používal. Jednou jsem také poškodil jeden ze svých notebookových systémů, ale díky CloneZilla jsem měl úplný obraz svého SSD. Zde je několik rad:

  • Než budete pokračovat, vytvořte úplnou zálohu systému na úrovni bitové kopie. Budete se dotýkat svých disků a nástrojů používaných ke snadnému odstranění něčeho bez potvrzení. Můžete použít CloneZilla, AOMEI Partition Assistant, dd , nebo dokonce Norton Ghost, aby to udělal. Existují desítky nástrojů, které tuto práci odvedou v pohodě.
  • Tento postup funguje i v případě, že máte počítač se dvěma spouštěcími systémy. Funguje se správcem logických svazků (LVM), prostými oddíly a také s Linux Unified Key Setup (LUKS) nebo jakoukoli jejich kombinací. Musíte být prostě opatrní a přizpůsobit pokyny vaší konfiguraci.
  • Provedení tohoto postupu vyžaduje, abyste svůj milovaný SSD vložili do počítače, který umí oba režimy spouštění:Legacy BIOS a UEFI. Pokud se o tento postup pokusíte na zařízení pouze s BIOSem, budete muset počkat, než přesunete svůj HDD nebo SSD do počítače UEFI, abyste věděli, že funguje.
  • Nemusíte fyzicky přesouvat SSD na jiný počítač. Můžete jednoduše naklonovat starý SSD ve formátu MBR na nový SSD v jiném počítači a pracovat odtud. Změníte strukturu oddílů na disku. Zda se jedná o dočasné zařízení nebo nový SSD v novém notebooku, je zcela na vás.
  • V nešťastném případě, že na disku SSD nemáte žádné místo, které můžete snadno uvolnit, stále existují způsoby, jak to provést. Posledních několik stovek MB vašeho LVM PV (Physical Volume) lze odebrat z jeho PE a velikost LVM PV změnit tak, aby uvolnilo místo pro oddíl EFI. Nebudu to zde popisovat, ale nějaké reference najdete na konci článku. Další možností je využít příležitosti koupit si o něco větší SSD a obnovit na něm svůj systém Linux, abyste měli volné místo.
  • Projděte procesem pomalu a pokud potřebujete pomoc, neváhejte se zeptat online. Existují desítky uživatelských skupin Linuxu, které vám pomohou, pokud se zaseknete.
  • Tento článek byl napsán na čerstvě přeinstalovaném přenosném systému s Fedorou 33, ale vztahuje se na mnoho různých konfigurací.
  • Nezkoušejte to, pokud používáte B-tree file system (BTRFS) s Fedorou 33. Po převodu mého disku na GUID Partition Table (GPT), když jsem používal BTRFS, se mi to nepodařilo zprovoznit.

Používám starší verzi systému BIOS?

Existují dva dobré indikátory toho, že počítač spouští systém Legacy BIOS.

1) Váš spouštěcí disk má rozdělení DOS/MBR:

[raistlin@localhost ~]$ sudo su -

[root@localhost ~]# df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       119G  7.1G  111G   6% /

[root@localhost ~]# file -s /dev/sda
/dev/sda: DOS/MBR boot sector

2) Vaše linuxové jádro není mají proměnné EFI:

[root@localhost ~]# ls /sys/firmware/efi
ls: cannot access '/sys/firmware/efi': No such file or directory

Na počítači v režimu UEFI poskytuje výše uvedený výstup podobný tomuto:

[root@localhost ~]# ls /sys/firmware/efi
config_table  efivars  esrt  [...]  runtime  runtime-map  systab  vars

Kontrola spouštěcího disku a rozhodnutí o strategii

Z výše uvedeného jsem zjistil, že můj spouštěcí disk je /dev/sda . Podívejte se blíže pomocí parted :

[root@localhost ~]# parted /dev/sda
GNU Parted 3.3
Using /dev/sda
Welcome to GNU Parted! Type' help' to view a list of commands.
(parted) p
Model: ATA LITEON L8H-128V2 (scsi)
Disk /dev/sda: 128GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary ext4 boot
2 1075MB 128GB 127GB primary lvm

Z výše uvedeného vidíte, že jsou přítomny pouze dva oddíly. První oddíl je malý oddíl o velikosti 1GiB, naformátovaný jako ext4 a obsahuje jádra. Druhý oddíl je jiné zvíře a používá LVM. I když jsem s LVM na svých linuxových systémech spokojený, prozatím se ho nedotknu.

V důsledku toho použiji prostor zabraný prvním oddílem, abych vytvořil místo pro GPT a UEFI.

Vezměte prosím na vědomí, že pokud používáte LUKS nebo LVM, může být postup převodu na UEFI také bezpečnější, pokud používáte spouštěcí oddíl a jeho prostor.

Pokud jste vyzvedli BTRFS (výchozí nastavení ve Fedoře 33), nemusí vám to fungovat a můj první pokus selhal hned po konverzi disku na GPT.

Pokud je váš spouštěcí oddíl menší než 1G a veškerý prostor je obsazen oddíly, nemusí být bezpečné vytvořit /boot menší než 512-600 Mib. Možná nemáte dostatek místa, abyste mohli pokračovat, a možná je nyní vhodná doba pořídit si o něco větší SSD, na který byste mohli naklonovat svůj systém.

Jmenuji se /dev/sda1

Zaváděcí oddíl na tomto počítači má velikost 1Gib a má dostatek volného místa, abychom mohli pokračovat:

[root@localhost ~]# df -h /boot
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       976M  238M  672M  21% /boot

Nejprve změňte velikost souborového systému na 512M:

[root@localhost ~]# resize2fs /dev/sda1 512M
resize2fs 1.45.6 (20-Mar-2020)
Filesystem at /dev/sda1 is mounted on /boot; on-line resizing required resize2fs: On-line shrinking not supported

Umount to první (Můžete, protože Linux připojuje pouze /boot jako pohodlí):

[root@localhost ~]# umount /boot

[root@localhost ~]# resize2fs /dev/sda1 512M
resize2fs 1.45.6 (20-Mar-2020)
Please run 'e2fsck -f /dev/sda1' first.

[root@localhost ~]# e2fsck -f /dev/sda1
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sda1: 414/65536 files (0.7% non-contiguous), 63590/262144 blocks

[root@localhost ~]# resize2fs /dev/sda1 512M
resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/sda1 to 131072 (4k) blocks.
The filesystem on /dev/sda1 is now 131072 (4k) blocks long.

[root@localhost ~]# mount /boot

[root@localhost ~]# df -h /boot
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       472M  200M  237M  46% /boot

ext4 velikost souborového systému byla změněna, ale oddíl má stále velikost 1Gib. Dále změníte jeho velikost. Oddíl zmenšíte na velikost mírně přes /boot souborový systém, aby byl v bezpečí před zaokrouhlovacími chybami. Zmenšete jej na 700 mib, takže vám zbyde asi 300 mib zdarma. Protože souborový systém uvnitř tohoto oddílu je nyní 512 Mib, je bezpečné oddíl zmenšit z 1024 Mib na 700 Mib.

[root@localhost ~]# fdisk  -l /dev/sda|grep sda1
/dev/sda1  *       2048   2099199   2097152     1G 83 Linux

[root@localhost ~]# parted /dev/sda
GNU Parted 3.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) resizepart 1 700M
Warning: Shrinking a partition can cause data loss, are you sure you want to continue? Yes/No? yes
(parted) p
Model: ATA LITEON L8H-128V2 (scsi)
Disk /dev/sda: 128GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Disk Flags:
Number  Start   End    Size   Type     File system  Flags
 1      1049kB  700MB  699MB  primary  ext4         boot
 2      1075MB  128GB  127GB  primary  btrfs
(parted) quit
Information: You may need to update /etc/fstab.

[root@localhost ~]#

Dále rozšiřte souborový systém zpět na plnou velikost oddílu (700 Mib):

[root@localhost ~]# partprobe

[root@localhost ~]# resize2fs /dev/sda1
resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/sda1 to 170642 (4k) blocks.
The filesystem on /dev/sda1 is now 170642 (4k) blocks long.

Operace změny velikosti končí zvětšením ext4 souborový systém z 512 Mib zpět na velikost základního oddílu, což je 700 Mib.

Mohl jsem také použít Gparted ke sledování průběhu předchozích kroků. Zde je snímek obrazovky výchozí situace:

Jakmile změníte velikost souborového systému, zobrazí se varování:

Poté, co se velikost samotného spouštěcího oddílu změní na 700 MB, nepřiděleno řádek se zobrazí v Gparted:

Jakmile se systém souborů rozšíří zpět na velikost oddílu, varování zmizí:

Také, jak je v Linuxu běžné, mohl jsem celou operaci provést jediným kliknutím pod GParted, ale nebylo by to tak zábavné:

Převod disku na GPT

S trochou volného místa nyní můžete disk převést na GPT. Nejprve musíte nainstalovat nějaké nástroje:

[root@localhost ~]# yum install gdisk grub2-efi-x64-modules efibootmgr grub2-tools-efi -y Last metadata expiration check: 1:32:33 ago on Wed 27 Jan 2021 05:01:42 PM EST.
Package gdisk-1.0.6-1.fc33.x86_64 is already installed.
Package efibootmgr-16-9.fc33.x86_64 is already installed.
Package grub2-tools-efi-1:2.04-31.fc33.x86_64 is already installed.
Dependencies resolved.[...]

Použijte gdisk převést tabulku oddílů na GPT a vytvořit spouštěcí oddíl systému BIOS, který GRUB potřebuje. Tento oddíl bude mít číslo 3 (první dostupný oddíl) a bude vyříznut z prvních sektorů disku (sektory 34 až 2047).

[root@localhost ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.6
Warning: The partition table header claims that the size of partition table entries is 12255407 bytes, but this program supports only 128-byte entries. Adjusting accordingly, but the partition table may be garbage.
Warning: Partition table header claims that the size of partition table entries is 0 bytes, but this program supports only 128-byte entries.
 
Adjusting accordingly, but the partition table may be garbage.
Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present
***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************
Command (? for help): p
Disk /dev/sda: 250069680 sectors, 119.2 GiB
Model: LITEON L8H-128V2
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 6681F0D6-F645-4F97-93A5-E7E5E3912C62
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 2048-sector boundaries
Total free space is 734681 sectors (358.7 MiB)
Number  Start (sector)
   1            2048
   2         2099200
End (sector)  Size       Code  Name
   1367187   666.6 MiB   8300  Linux filesystem
 250068991   118.2 GiB   8300  Linux filesystem
Command (? for help): n
Partition number (3-128, default 3): 3
First sector (34-250069646, default = 1368064) or {+-}size{KMGTP}: 34
Last sector (34-2047, default = 2047) or {+-}size{KMGTP}: [Press Enter to accept 2047] Current type is 8300 (Linux filesystem)
Hex code or GUID (L to sho codes, Enter = 8300): ef02
Changed type of partition to 'BIOS boot partition'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.

Takto disk nyní vypadá:

[root@localhost ~]# partprobe

[root@localhost ~]# fdisk -l /dev/sda|grep sda
Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 250069680 sectors
/dev/sda1     2048   1367187   1365140 666.6M Linux filesystem
/dev/sda2  2099200 250068991 247969792 118.2G Linux filesystem
/dev/sda3       34      2047      2014  1007K BIOS boot

Dále znovu nainstalujte zavaděč GRUB. Pokud používáte novější verzi grub, místo použití grub2-install.... použijte prosím dnf reinstall shim-* grub2-efi-* místo toho:

[root@localhost ~]# grub2-install /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

[root@localhost ~]#

Pokud jste chtěli pouze převést disk z MBR na GPT, tato část je nyní dokončena. V tomto okamžiku bych doporučil restartovat váš systém, abyste si ověřili, že váš počítač s BIOSem dokáže zavést čerstvě převedený disk GPT.

Disk nyní vypadá takto:

To lze také vidět z shellu:

[root@localhost ~]# fdisk  -l /dev/sda
Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 250069680 sectors
Disk model: LITEON L8H-128V2
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: 6681F0D6-F645-4F97-93A5-E7E5E3912C62
Device       Start       End   Sectors   Size Type
/dev/sda1     2048   1367187   1365140 666.6M Linux filesystem
/dev/sda2  2099200 250068991 247969792 118.2G Linux LVM
/dev/sda3       34      2047      2014  1007K BIOS boot
Partition table entries are not in disk order.

Přidání systémového oddílu EFI

Poté použijte dříve uvolněné místo k vytvoření čtvrtého oddílu:systémového oddílu EFI.

[root@localhost ~]# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.6
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk /dev/sda: 250069680 sectors, 119.2 GiB
Model: LITEON L8H-128V2
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 6681F0D6-F645-4F97-93A5-E7E5E3912C62
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 2-sector boundaries
Total free space is 732667 sectors (357.7 MiB)
Number  Start (sector)
End (sector)  Size       Code  Name
   1367187   666.6 MiB   8300  Linux filesystem
 250068991   118.2 GiB   8E00  Linux LVM
      2047   1007.0 KiB  EF02  BIOS boot partition
1 2 3
   2048
2099200
     34
Command (? for help): n
Partition number (4-128, default 4): [Press Enter to accept 4]
First sector (1367188-250069646, default = 1367188) or {+-}size{KMGTP}: [Press Enter to accept 1367188]
Last sector (1367188-2099199, default = 2099199) or {+-}size{KMGTP}: [Press Enter to accept 2099199]
Current type is 8300 (Linux filesystem)

Hex code or GUID (L to show codes, Enter = 8300): ef00
Changed type of partition to 'EFI system partition'
Command (? for help): p
Disk /dev/sda: 250069680 sectors, 119.2 GiB
Model: LITEON L8H-128V2
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 6681F0D6-F645-4F97-93A5-E7E5E3912C62
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 2-sector boundaries
Total free space is 655 sectors (327.5 KiB)
Number  Start (sector)
End (sector)  Size
   1367187   666.6 MiB
 250068991   118.2 GiB
Code  Name
8300  Linux filesystem
8E00  Linux LVM
1 2 3 4
   2048
2099200
     34
1367188
2047 1007.0 KiB EF02 BIOS boot partition 2099199 357.4 MiB EF00 EFI system partition

Dále přidejte k oddílu EFI štítek, abyste na něj později snadněji odkazovali. To se také provádí v gdisk :

Command (? for help): c
Partition number (1-4): 4
Enter name: EFI-system
Command (? for help): p
Disk /dev/sda: 250069680 sectors, 119.2 GiB
Model: LITEON L8H-128V2
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 6681F0D6-F645-4F97-93A5-E7E5E3912C62
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 250069646
Partitions will be aligned on 2-sector boundaries
Total free space is 655 sectors (327.5 KiB)
Number  Start (sector)
End (sector)  Size
   1367187   666.6 MiB
 250068991   118.2 GiB
Code  Name
8300  Linux filesystem
8E00  Linux LVM
1 2 3 4
   2048
2099200
     34
1367188
   2047   1007.0 KiB  EF02  BIOS boot partition
2099199   357.4 MiB   EF00  EFI-system
 Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.

Nyní byste měli vidět oddíl zobrazený pod /dev/disk/by-partlabel :

[root@localhost ~]# partprobe

[root@localhost ~]# ls -l /dev/disk/by-partlabel/
total 0
lrwxrwxrwx. 1 root root 10 Jan 27 21:57 'BIOS\x20boot\x20partition' -> ../../sda3 lrwxrwxrwx. 1 root root 10 Jan 27 21:57 EFI-system -> ../../sda4
lrwxrwxrwx. 1 root root 10 Jan 27 21:57 'Linux\x20filesystem' -> ../../sda1 lrwxrwxrwx. 1 root root 10 Jan 27 21:57 'Linux\x20LVM' -> ../../sda2

Spouštěcí oddíl EFI musí být naformátován jako vfat :

[root@localhost ~]# mkfs -t vfat -v /dev/disk/by-partlabel/EFI-system
mkfs.fat 4.1 (2017-01-24)
/dev/disk/by-partlabel/EFI-system has 255 heads and 63 sectors per track,
hidden sectors 0x14dc94;
logical sector size is 512,
using 0xf8 media descriptor, with 732012 sectors;
drive number 0x80;
filesystem has 2 16-bit FATs and 16 sectors per cluster.
FAT size is 192 sectors, and provides 45723 clusters.
There are 16 reserved sectors.
Root directory contains 512 slots and uses 32 sectors.
Volume ID is 855d115e, no volume label.

Nyní je čas, abychom připojili tento oddíl a přesunuli data z podadresáře efi, který byl dříve umístěn pod /boot ale nejprve ověřte, zda byly nainstalovány správné soubory (názvy se budou lišit v závislosti na vaší distribuci Linuxu). Zde je to, co mám na svém systému Fedora 33:

[root@localhost ~]# du /boot/efi
8       /boot/efi/System/Library/CoreServices
12      /boot/efi/System/Library
16      /boot/efi/System
2508    /boot/efi/EFI/fedora/fonts
17988   /boot/efi/EFI/fedora
2748    /boot/efi/EFI/BOOT
20740   /boot/efi/EFI
20764   /boot/efi
[root@localhost ~]# df -h /boot/efi
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       623M  237M  340M  42% /boot

[root@localhost ~]# find /boot/efi -name shim\*
/boot/efi/EFI/fedora/shimx64.efi
 
/boot/efi/EFI/fedora/shim.efi
/boot/efi/EFI/fedora/shimia32.efi
/boot/efi/EFI/fedora/shimx64-fedora.efi
/boot/efi/EFI/fedora/shimia32-fedora.efi

[root@localhost ~]# mount -t vfat /dev/disk/by-partlabel/EFI-system /mnt

[root@localhost ~]# mv  /boot/efi/* /mnt

[root@localhost ~]# umount /mnt

[root@localhost ~]# du /boot/efi
4 /boot/efi

Nyní je čas přidat tento oddíl do /etc/fstab a mount to:

[root@localhost ~]# echo ‘/dev/disk/by-partlabel/EFI-system /boot/efi vfat defaults 0 2’ >> /etc/fstab

[root@localhost ~]# mount /boot/efi

[root@localhost ~]#

V této fázi je na místě určité ověření. Oddíl EFI by měl být připojen a obsahovat data, která jste zkopírovali dříve:

root@localhost ~]# df /boot/efi
Filesystem     1K-blocks  Used Available Use% Mounted on
/dev/sda4         365784 20832    344952   6% /boot/efi

[root@localhost ~]# du /boot/efi
2760    /boot/efi/EFI/BOOT
2512    /boot/efi/EFI/fedora/fonts
18024   /boot/efi/EFI/fedora
20792   /boot/efi/EFI
16      /boot/efi/System/Library/CoreServices
24      /boot/efi/System/Library
32      /boot/efi/System
20848   /boot/efi

Nyní je čas přeinstalovat zavaděč GRUB a vynutit spouštění UEFI. Stejně jako výše, pokud používáte novější verzi grub, místo použití grub2-install.... použijte dnf reinstall shim-* grub2-efi-* místo toho:

[root@localhost ~]# grub2-install --target=x86_64-efi /dev/sda
Installing for x86_64-efi platform.
EFI variables are not supported on this system.
EFI variables are not supported on this system.
grub2-install: error: efibootmgr failed to register the boot entry: No such file or directory.

[root@localhost ~]#

Tři výše zobrazené chybové zprávy jsou normální a souvisí s nepřítomností proměnných firmwaru EFI. K tomu dochází v aktuálním okamžiku, protože jste počítač naposledy spouštěli v režimu Legacy BIOS. Jakmile budete v plném režimu UEFI, tyto chyby zmizí. Zhluboka se nadechněte, restartujte počítač a připravte se na vstup do jeho firmwaru, abyste změnili režim spouštění.

[ Také by se vám mohlo líbit: Jak nastavit spouštění PXE pro hardware UEFI ]

Vypnutí a přepnutí firmwaru z Legacy BIOS na UEFI.

Následující snímky jsou specifické pro systém, na kterém jsem postup prováděl. Chcete-li zjistit, jak přepnout z BIOSu na UEFI, měli byste vyhledat pokyny v systémové příručce. Zde je příklad na mém notebooku:

Uložte nastavení a ukončete firmware. Váš počítač se resetuje a pokusí se spustit z disku v režimu UEFI. Při prvním spuštění v režimu UEFI možná budete muset vybrat svůj disk ručně.

Úspěšné spuštění

Ihned po spuštění se přihlaste a začněte si užívat svůj Linux omlazený UEFI. Ano, všechny vaše soubory, účty a programy tam budou stále.

[root@localhost ~]# efibootmgr
BootCurrent: 0014
Timeout: 0 seconds
BootOrder: 0014,0013,0009,000D,0007,000A,000B,000C,0008,0012
Boot0000  Setup
Boot0001  Boot Menu
Boot0002  Diagnostic Splash Screen
Boot0003  Lenovo Diagnostics
Boot0004  Startup Interrupt Menu
Boot0005  Rescue and Recovery
Boot0006  MEBx Hot Key
Boot0007* USB CD
Boot0008* USB FDD
Boot0009* ATA HDD0
Boot000A* ATA HDD1
Boot000B* ATA HDD2
Boot000C* USB HDD

Boot000D* PCI LAN
Boot000E* IDER BOOT CDROM
Boot000F* IDER BOOT Floppy
Boot0010* ATA HDD
Boot0011* ATAPI CD
Boot0012* PCI LAN
Boot0013* Windows Boot Manager
Boot0014* Fedora
[root@localhost ~]# fwupdmgr get-devices|grep -i lenovo
 │ Vendor: │ Vendor: Vendor:
LENOVO (DMI:LENOVO)
DMI:LENOVO
DMI:LENOVO

Gparted zobrazuje konečný stav disku:

[ Cheat sheet zdarma:Získejte seznam linuxových nástrojů a příkazů pro správu serverů a sítí. ] 

Sbalit

Ať už chcete přeinstalovat nové nebo aktualizovat operační prostředí na místě, existuje mnoho způsobů, jak se tam úspěšně dostat. Vím, kde jsou moje vlastní preference, a tento blogový příspěvek se pokouší podělit o některé z tipů, které jsem se nedávno naučil. Buď opatrný. Zkontrolujte výstup svých příkazů. Požádejte o pomoc, pokud nějakou potřebujete. Také v jiných operačních systémech existují nástroje, které usnadňují převod, pokud jste tak nakloněni – jedním z takových příkladů je bezplatný AOMEI Partition Assistant pro platformy Windows.

Je zajímavé, že i když tento notebook s Fedora 33 úspěšně přešel z BIOSu na UEFI pomocí GPT, nebyly pro něj dostupné žádné aktualizace firmwaru prostřednictvím LVFS, protože systém byl příliš starý.


Linux
  1. Je možný hybridní linuxový USB-Stick pro UEFI a starší BIOS?

  2. Jak vytvořit minimální zaváděcí linux (pouze s terminálem) ze zdrojového kódu jádra?

  3. Jak převedu svůj linuxový disk z MBR na GPT s UEFI?

  1. Poslouchejte svou oblíbenou hudbu na Linuxu s Juk

  2. Monitorujte svůj systém Linux ve svém terminálu pomocí procps-ng

  3. Prohledejte své zabezpečení Linuxu pomocí Lynis

  1. Spravujte svůj kalendář z terminálu Linux pomocí příkazu konsolekalendar

  2. Monitorujte svou Javu na Linuxu pomocí jconsole

  3. Monitorujte svůj Linux server pomocí Checkmk