GNU/Linux >> Linux Esercitazione >  >> Linux

Sposta il tuo Linux dal BIOS legacy a UEFI con tempi di inattività minimi

Non so voi ma non mi piace reinstallare il mio sistema operativo. Trovo che sia una completa perdita di tempo per qualcosa che dovrebbe semplicemente aggiornare sul posto. Alcune persone, che utilizzano spesso altre piattaforme, preferiscono una buona pulizia e reinstallazione una volta all'anno per riguadagnare la velocità originale dei loro sistemi. Non mi associo a questo punto di vista. Esistono molti modi per mantenere un sistema e di solito preferisco un po' di debug investigativo piuttosto che cancellare e sperare per il meglio.

Per questo motivo, i sistemi come il mio laptop da lavoro potrebbero aver iniziato la loro vita molto tempo fa (Fedora 22 su un laptop di 4a generazione basato su i7) e ora hanno visto tre aggiornamenti hardware, diversi aggiornamenti di unità a stato solido (SSD) e molti Aggiornamenti di Fedora (attualmente utilizzo Fedora 32).

Quando cambio sistema, mi piace portare con me il mio sistema operativo e mi aspetto che si avvii sulla nuova macchina. Ma si scopre che è un disastro in attesa di accadere a causa delle differenze hardware tra il nuovo e il vecchio sistema. Il problema è che non è semplice come estrarre il disco rigido da un vecchio sistema e inserirlo in uno nuovo e aspettarsi che tutto funzioni come desiderato. Questo articolo descrive come spostare un'installazione Linux da un componente hardware, in questo caso, un laptop più vecchio, a uno più recente.

Il grande avvertimento oi dieci anni di preavviso che UEFI ci ha dato

Quando l'Unified Extensible Firmware Interface (UEFI) è stata introdotta all'inizio degli anni 2000, è stata progettata per sostituire il BIOS del PC (Basic Input/Output System) e fornire agli utenti x86 qualcosa di più tecnologicamente avanzato. Le persone con sistemi Mac SPARC o PowerPC con OpenBoot PROM (OBP)/OpenFirmware avevano già sperimentato il futuro molti anni prima. UEFI voleva eliminare il BIOS in modo che i suoi predecessori non facessero più vergognare il PC.

Affinché la tecnologia UEFI potesse essere ampiamente adottata, i produttori hanno deciso di renderla opzionale/selezionabile dal firmware della macchina:Vuoi avviare in modalità Legacy BIOS o UEFI? Nel corso dei successivi dieci anni, UEFI ha lentamente eliminato il BIOS legacy ed è diventata la modalità predefinita per le macchine fornite dai produttori.

Per essere onesti, UEFI offre molteplici vantaggi, inclusi questi:

  • Rende l'avvio multiplo più affidabile e flessibile.
  • Ci dà (utenti Linux) la possibilità di eseguire fwupdmgr per eseguire il flashing del firmware nelle nostre macchine da Linux. Questo include quasi tutti i firmware, anche le schede aggiuntive.

Sui miei sistemi personali, ho semplicemente ignorato il problema UEFI e ho continuato ad abilitare il BIOS Legacy su qualsiasi nuova macchina che avrei ottenuto in modo da poter avviare il mio sistema operativo Linux senza pensarci due volte.

Poi è arrivato il 2020 e un laptop nuovo di zecca è apparso solo con UEFI. Nessun avvio legacy di alcun tipo (tranne su chiavette USB esterne). Mesi dopo, una nuova workstation portatile basata su Xeon si è fatta strada nella nostra casa e ancora una volta quella bestia avrebbe fatto solo UEFI.

Ero bloccato con un SSD formattato master boot record (MBR) (Legacy BIOS) e una macchina che si avviava solo in modalità UEFI. Essendo un armeggiatore e un utente Linux, ho deciso di ricercare il problema e la soluzione si è rivelata non troppo difficile e richiedeva solo circa cinque minuti dopo aver determinato cosa fare.

Un avvertimento e alcuni avvertimenti

Nel trovare la "procedura giusta" per i miei sistemi fisici, ho danneggiato la macchina virtuale di prova che stavo usando alcune volte. Una volta ho anche danneggiato uno dei miei sistemi laptop, ma ho avuto un'immagine completa del mio SSD grazie a CloneZilla. Ecco qualche consiglio:

  • Esegui un backup completo a livello di immagine del tuo sistema prima di procedere. Toccherai i tuoi dischi e gli strumenti utilizzati per semplificare l'eliminazione di qualcosa senza conferma. Potresti usare CloneZilla, AOMEI Partition Assistant, dd , o anche Norton Ghost per farlo. Ci sono dozzine di strumenti che fanno bene il lavoro.
  • Questa procedura funziona anche se hai una macchina con doppio avvio. Funziona con Logical Volume Manager (LVM), partizioni semplici e anche con Linux Unified Key Setup (LUKS) o qualsiasi loro combinazione. Devi semplicemente stare attento e adattare le istruzioni alla tua configurazione.
  • Per eseguire questa procedura è necessario inserire il tuo amato SSD in una macchina in grado di eseguire entrambe le modalità di avvio:BIOS legacy e UEFI. Se tenti la procedura su un dispositivo solo BIOS, dovrai attendere fino a quando non sposti l'HDD o l'SSD su una macchina UEFI per sapere che ha funzionato.
  • Non è necessario spostare fisicamente l'SSD su un'altra macchina. Potresti semplicemente clonare il vecchio SSD formattato MBR su un nuovo SSD in un'altra macchina e lavorare da lì. Cambierai la struttura delle partizioni sul tuo disco. Che si tratti di un dispositivo temporaneo o di un nuovo SSD in un nuovo laptop dipende interamente da te.
  • Nel sfortunato caso in cui non hai spazio su disco che puoi liberare facilmente sul tuo SSD, ci sono ancora modi per operare. Le ultime centinaia di MB del tuo LVM PV (Physical Volume) potrebbero essere rimossi dai suoi PE e il PV LVM essere ridimensionato per fare spazio alla partizione EFI. Non lo descriverò qui, ma troverai alcuni riferimenti alla fine dell'articolo. Un'altra opzione è cogliere l'occasione per acquistare un SSD leggermente più grande e ripristinare il tuo sistema Linux su di esso in modo da avere un po' di spazio libero.
  • Lavora lentamente nel processo e non esitare a porre domande online se hai bisogno di aiuto. Ci sono dozzine di gruppi di utenti Linux là fuori che ti aiuteranno se sei bloccato.
  • Questo articolo è stato scritto su un computer portatile appena reinstallato con Fedora 33, ma si applica a molte configurazioni diverse.
  • Non provare se usi il file system B-tree (BTRFS) con Fedora 33. Non sono riuscito a farlo funzionare dopo aver convertito il mio disco in GUID Partition Table (GPT) quando ho usato BTRFS.

Sto usando il BIOS legacy?

Ci sono due buoni indicatori di una macchina avviata nel BIOS legacy.

1) Il tuo disco di avvio ha un partizionamento 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) Il tuo kernel Linux non hanno variabili EFI:

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

Su una macchina in modalità UEFI, quanto sopra produce un output simile a questo:

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

Ispezionare il disco di avvio e decidere una strategia

Da quanto sopra, ho scoperto che il mio disco di avvio è /dev/sda . Dai un'occhiata più da vicino con 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

Da quanto sopra, vedi che sono presenti solo due partizioni. La prima partizione è una piccola partizione da 1GiB, formattata come ext4 e contiene i noccioli. La seconda partizione è una bestia diversa e utilizza LVM. Per quanto sia stato contento di LVM sui miei sistemi Linux, non lo toccherò per il momento.

Di conseguenza, utilizzerò lo spazio occupato dalla prima partizione per fare spazio a GPT e UEFI.

Tieni presente che se stai utilizzando LUKS o LVM, la procedura di conversione in UEFI potrebbe anche essere più sicura se utilizzi la partizione di avvio e il suo spazio.

Se hai acquistato BTRFS (l'impostazione predefinita in Fedora 33), questo potrebbe non funzionare per te e il mio tentativo iniziale non è riuscito ad avviarsi subito dopo aver convertito il disco in GPT.

Se la partizione di avvio è inferiore a 1G e tutto lo spazio è occupato da partizioni, potrebbe non essere sicuro eseguire /boot inferiore a 512-600 Mib. Potresti non avere abbastanza spazio per procedere e forse ora potrebbe essere un buon momento per ottenere un SSD leggermente più grande su cui clonare il tuo sistema.

Mi chiamo /dev/sda1

La partizione di avvio su questa macchina ha una dimensione di 1Gib e dispone di spazio libero sufficiente per consentirci di procedere:

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

Innanzitutto, ridimensiona il filesystem a 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 per prima cosa (puoi puoi, poiché Linux monta solo /boot per comodità):

[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

Il ext4 il filesystem è stato ridimensionato, ma la partizione ha ancora una dimensione di 1Gib. Lo ridimensionerai successivamente. Ridurrai la partizione a una dimensione leggermente superiore quello del /boot file system per essere al sicuro da errori di arrotondamento. Riducilo a 700 Mib, che lasceranno circa 300 Mib liberi. Poiché il filesystem all'interno di quella partizione è ora 512Mib, è possibile ridurre la partizione da 1024Mib a 700Mib.

[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 ~]#

Quindi, estendi il filesystem alla dimensione completa della partizione (700Mib):

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

L'operazione di ridimensionamento si conclude con l'aumento di ext4 filesystem da 512Mib alla dimensione della partizione sottostante, che è 700Mib.

Avrei anche potuto utilizzare Gparted per monitorare l'avanzamento dei passaggi precedenti. Ecco uno screenshot della situazione iniziale:

Non appena ridimensioni il filesystem, viene visualizzato un avviso:

Dopo che la partizione di avvio stessa è stata ridimensionata a 700 M, un non allocato la riga viene visualizzata in Gparted:

Una volta che il file system viene esteso alle dimensioni della partizione, l'avviso scompare:

Inoltre, come è comune in Linux, avrei potuto eseguire l'intera operazione con un solo clic in GParted, ma non sarebbe stato così divertente:

Conversione del disco in GPT

Con un po' di spazio disponibile, ora sei libero di convertire il disco in GPT. Innanzitutto, devi installare alcuni strumenti :

[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.[...]

Usa gdisk per convertire la tabella delle partizioni in GPT e creare la partizione di avvio del BIOS necessaria a GRUB. Questa partizione avrà il numero 3 (la prima partizione disponibile) ed essere ritagliata dai primi settori del disco (settori da 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.

Ecco come appare ora il disco:

[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

Quindi, reinstalla il caricatore di avvio di GRUB. Se utilizzi una versione più recente di grub, invece di utilizzare grub2-install.... utilizza dnf reinstall shim-* grub2-efi-* invece:

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

[root@localhost ~]#

Se volevi solo convertire il tuo disco da MBR a GPT, quella parte ora è terminata. A questo punto, ti consiglio di riavviare il sistema per verificare che la tua macchina basata su BIOS possa avviare il disco GPT appena convertito.

Ecco come appare ora il disco:

Questo può essere visto anche dalla shell:

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

Aggiunta della partizione di sistema EFI

Successivamente, utilizza lo spazio liberato in precedenza per creare una quarta partizione:la partizione di sistema 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

Quindi, aggiungi un'etichetta alla partizione EFI per farvi riferimento in seguito più facilmente. Questo viene fatto anche in 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.

Ora dovresti vedere la partizione mostrata sotto /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

La partizione di avvio EFI deve essere formattata come 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.

È giunto il momento per noi di montare questa partizione e spostare i dati dalla sottodirectory efi precedentemente situata sotto /boot ma prima verifica se sono stati installati i file corretti (i nomi varieranno a seconda della tua distribuzione Linux). Ecco cosa ho sul mio sistema 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

È ora di aggiungere questa partizione a /etc/fstab e mount esso:

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

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

[root@localhost ~]#

Alcune verifiche sono necessarie in questa fase. La partizione EFI deve essere montata e contenere i dati copiati in precedenza:

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

È giunto il momento di reinstallare il caricatore di avvio GRUB e imporre l'avvio UEFI. Come sopra, se sei una versione più recente di grub, invece di usare grub2-install.... usa dnf reinstall shim-* grub2-efi-* invece:

[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 ~]#

I tre messaggi di errore visualizzati sopra sono normali e relativi all'assenza di variabili firmware EFI. Ciò accade al momento attuale perché l'ultima volta hai avviato il PC in modalità BIOS legacy. Una volta che sei in modalità UEFI completa, questi errori scompariranno. Fai un respiro profondo, riavvia il PC e preparati a entrare nel suo firmware per cambiare la sua modalità di avvio.

[ Potrebbe interessarti anche: Come configurare l'avvio PXE per l'hardware UEFI ]

Spegnimento e passaggio del firmware da BIOS legacy a UEFI.

Le seguenti acquisizioni sono specifiche del sistema su cui ho eseguito la procedura. Dovresti cercare le istruzioni nel manuale del tuo sistema per capire come passare dal BIOS a UEFI. Ecco un esempio sul mio laptop:

Salva le impostazioni ed esci dal firmware. Il PC si ripristinerà e tenterà di avviarsi dal disco in modalità UEFI. Potrebbe essere necessario selezionare manualmente il disco al primo avvio in modalità UEFI.

Avvio riuscito

Subito dopo l'avvio, accedi e inizia a goderti il ​​tuo Linux ringiovanito con UEFI. Sì, tutti i tuoi file, account e programmi saranno ancora lì.

[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 mostra lo stato finale del disco:

[ Cheat sheet gratuito:ottieni un elenco di utilità e comandi Linux per la gestione di server e reti. ] 

Concludi

Se ti piace reinstallare da zero o aggiornare il tuo ambiente operativo, ci sono molti modi per arrivarci con successo. So dove si trova la mia preferenza e questo post del blog tenta di condividere alcuni dei suggerimenti che ho appreso di recente. Stai attento. Controlla l'output dei tuoi comandi. Chiedi aiuto se ne hai bisogno. Inoltre, ci sono strumenti in altri sistemi operativi per semplificare la conversione se sei così incline:uno di questi esempi è AOMEI Partition Assistant gratuito per piattaforme Windows.

In modo divertente, anche se questo laptop con Fedora 33 è passato con successo dal BIOS a UEFI con GPT, non erano disponibili aggiornamenti del firmware tramite LVFS poiché il sistema era troppo vecchio.


Linux
  1. Monitora il tuo sistema Linux nel tuo terminale con procps-ng

  2. Scansiona la tua sicurezza Linux con Lynis

  3. È possibile una chiavetta USB Linux ibrida per UEFI e BIOS legacy?

  4. Come creare un Linux avviabile minimo (solo con terminale) dal codice sorgente del kernel?

  5. Come posso convertire il mio disco Linux da MBR a GPT con UEFI?

Ravviva il tuo desktop Linux con Cinnamon

Moderna il tuo desktop Linux con Enlightenment

Come verificare se il tuo computer utilizza UEFI o BIOS [sia in Linux che in Windows]

Lavorare con Microsoft Exchange dal desktop Linux

Usa il tuo Chromecast da Linux e MacOS con mkchromecast

Gestisci i tuoi server con Cockpit Linux