GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Stellen Sie Ihr Linux mit minimaler Ausfallzeit von Legacy-BIOS auf UEFI um

Ich weiß nicht, wie es Ihnen geht, aber ich mag es nicht, mein Betriebssystem neu zu installieren. Ich finde es eine völlige Verschwendung meiner Zeit für etwas, das nur an Ort und Stelle aktualisiert werden sollte. Einige Nutzer, die häufig andere Plattformen verwenden, ziehen es vor, einmal im Jahr gründlich zu löschen und neu zu installieren, um die ursprüngliche Geschwindigkeit ihres Systems wiederherzustellen. Ich kann mich dieser Ansicht einfach nicht anschließen. Es gibt viele Möglichkeiten, ein System zu warten, und ich bevorzuge normalerweise ein detektivisches Debugging, anstatt zu löschen und auf das Beste zu hoffen.

Aus diesem Grund haben Systeme wie mein Arbeits-Laptop möglicherweise vor langer Zeit ihr Leben begonnen (Fedora 22 auf einem i7-basierten Laptop der 4 Fedora-Updates (ich verwende derzeit Fedora 32).

Wenn ich das System wechsle, nehme ich gerne mein Betriebssystem mit und erwarte, dass es auf der neuen Maschine bootet. Aber es stellt sich heraus, dass aufgrund von Hardwareunterschieden zwischen dem neuen und dem alten System eine Katastrophe bevorsteht. Das Problem ist, dass es nicht so einfach ist, Ihre Festplatte aus einem alten System zu ziehen und sie in ein neues System zu stecken und zu erwarten, dass alles wie gewünscht funktioniert. In diesem Artikel wird beschrieben, wie Sie eine Linux-Installation von einem Hardwaregerät, in diesem Fall einem älteren Laptop, auf ein neueres verschieben.

Der große Vorbehalt oder die zehn Jahre Vorwarnung, die UEFI uns gegeben hat

Als Unified Extensible Firmware Interface (UEFI) Anfang der 2000er Jahre eingeführt wurde, sollte es das PC-BIOS (Basic Input/Output System) ersetzen und x86-Benutzern etwas technologisch Fortschrittlicheres bieten. Menschen mit SPARC- oder PowerPC-Mac-Systemen mit OpenBoot PROM (OBP)/OpenFirmware hatten die Zukunft schon viele Jahre zuvor erlebt. UEFI wollte das BIOS entfernen, damit seine Vorgänger den PC nicht länger beschämen würden.

Damit die UEFI-Technologie weit verbreitet ist, haben sich die Hersteller dafür entschieden, sie optional/auswählbar zu machen aus der Firmware der Maschine:Möchten Sie im Legacy-BIOS- oder UEFI-Modus booten? Im Laufe der nächsten zehn Jahre verdrängte UEFI langsam das Legacy-BIOS und wurde zum Standardmodus für Maschinen, die von Herstellern ausgeliefert wurden.

Fairerweise muss man sagen, dass UEFI mehrere Vorteile bietet, einschließlich der folgenden:

  • Es macht Multibooting zuverlässiger und flexibler.
  • Es gibt uns (Linux-Benutzern) die Möglichkeit, fwupdmgr auszuführen um die Firmware in unseren Maschinen von Linux aus zu flashen. Dies umfasst fast jede Firmware, sogar Zusatzkarten.

Auf meinen persönlichen Systemen ignorierte ich einfach das UEFI-Problem und aktivierte weiterhin das Legacy-BIOS auf jedem frischen neuen Computer, den ich erhalten würde, damit ich mein Linux-Betriebssystem booten konnte, ohne darüber nachzudenken.

Dann kam das Jahr 2020 und ein brandneuer Laptop tauchte nur mit UEFI auf. Kein Legacy-Booten jeglicher Art (außer auf externen USB-Sticks). Monate später hielt eine neue tragbare Xeon-basierte Workstation Einzug in unser Zuhause, und wieder konnte dieses Biest nur UEFI ausführen.

Ich steckte mit einer mit Master Boot Record (MBR) formatierten SSD (Legacy-BIOS) und einem Computer fest, der nur im UEFI-Modus booten würde. Als Tüftler und Linux-Anwender machte ich mich daran, das Problem zu recherchieren, und die Lösung stellte sich als nicht allzu schwierig heraus und würde nur etwa fünf Minuten dauern, sobald Sie sich entschieden haben, was zu tun ist.

Ein Wort der Warnung und einige Vorbehalte

Bei der Suche nach dem „richtigen Verfahren“ für meine physischen Systeme habe ich die virtuelle Testmaschine, die ich verwendet habe, einige Male beschädigt. Ich habe auch einmal eines meiner Laptop-Systeme beschädigt, aber dank CloneZilla hatte ich ein vollständiges Image meiner SSD. Hier sind einige Ratschläge:

  • Erstellen Sie eine vollständige Sicherung Ihres Systems auf Image-Ebene, bevor Sie fortfahren. Sie werden Ihre Festplatten und die verwendeten Tools berühren, um es einfach zu machen, etwas ohne Bestätigung zu löschen. Sie könnten CloneZilla, AOMEI Partition Assistant, dd verwenden , oder sogar Norton Ghost, um das zu tun. Es gibt Dutzende von Tools, die die Arbeit gut erledigen.
  • Dieses Verfahren funktioniert auch, wenn Sie einen Dual-Boot-Rechner haben. Es funktioniert mit Logical Volume Manager (LVM), einfachen Partitionen und auch mit Linux Unified Key Setup (LUKS) oder einer beliebigen Kombination davon. Sie müssen nur vorsichtig sein und die Anweisungen an Ihre Konfiguration anpassen.
  • Um dieses Verfahren durchzuführen, müssen Sie Ihre geliebte SSD in einen Computer stecken, der beide Startmodi beherrscht:Legacy-BIOS und UEFI. Wenn Sie das Verfahren auf einem reinen BIOS-Gerät versuchen, müssen Sie warten, bis Sie Ihre Festplatte oder SSD auf einen UEFI-Computer verschieben, um zu wissen, dass es funktioniert hat.
  • Sie müssen Ihre SSD nicht physisch auf einen anderen Computer verschieben. Sie könnten einfach die alte MBR-formatierte SSD auf eine neue SSD in einem anderen Computer klonen und von dort aus weiterarbeiten. Sie ändern die Struktur der Partitionen auf Ihrer Festplatte. Ob es sich um ein temporäres Gerät oder eine neue SSD in einem neuen Laptop handelt, liegt ganz bei Ihnen.
  • Im unglücklichen Fall, dass Sie keinen Speicherplatz haben, den Sie einfach auf Ihrer SSD freigeben können, gibt es immer noch Möglichkeiten, dies zu tun. Die letzten paar hundert MB Ihres LVM-PV (Physical Volume) könnten aus seinen PEs entfernt und die Größe des LVM-PV geändert werden, um Platz für die EFI-Partition zu schaffen. Ich werde das hier nicht beschreiben, aber Sie finden einige Referenzen am Ende des Artikels. Eine andere Möglichkeit ist, die Gelegenheit zu nutzen, eine etwas größere SSD zu kaufen und Ihr Linux-System darauf wiederherzustellen, damit Sie etwas freien Speicherplatz haben.
  • Arbeiten Sie den Vorgang langsam durch und zögern Sie nicht, online Fragen zu stellen, wenn Sie Hilfe benötigen. Es gibt Dutzende von Linux-Benutzergruppen, die Ihnen helfen, wenn Sie nicht weiterkommen.
  • Dieser Artikel wurde auf einem frisch neu installierten Laptop-System mit Fedora 33 geschrieben, gilt aber für viele verschiedene Konfigurationen.
  • Versuchen Sie dies nicht, wenn Sie das B-Tree-Dateisystem (BTRFS) mit Fedora 33 verwenden. Ich konnte es nicht zum Laufen bringen, nachdem ich meine Festplatte in die GUID-Partitionstabelle (GPT) konvertiert hatte, als ich BTRFS verwendete.

Verwende ich Legacy-BIOS?

Es gibt zwei gute Indikatoren für einen Computer, der im Legacy-BIOS gestartet wurde.

1) Ihre Bootdiskette hat eine DOS/MBR-Partitionierung:

[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) Ihr Linux-Kernel nicht EFI-Variablen haben:

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

Auf einem Computer im UEFI-Modus ergibt das Obige eine Ausgabe ähnlich der folgenden:

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

Inspizieren der Bootdiskette und Entscheiden über eine Strategie

Aus dem Obigen habe ich herausgefunden, dass meine Bootdiskette /dev/sda ist . Schauen Sie genauer hin mit 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

Oben sehen Sie, dass nur zwei Partitionen vorhanden sind. Die erste Partition ist eine kleine 1-GiB-Partition, die als ext4 formatiert ist und es hält die Kerne. Die zweite Partition ist ein anderes Biest und verwendet LVM. So sehr ich mit LVM auf meinen Linux-Systemen zufrieden bin, ich werde es im Moment nicht anfassen.

Folglich werde ich den von der ersten Partition belegten Platz nutzen, um Platz für GPT und UEFI zu schaffen.

Bitte beachten Sie, dass bei Verwendung von LUKS oder LVM die Konvertierung in das UEFI-Verfahren möglicherweise auch sicherer ist, wenn Sie die Boot-Partition und ihren Speicherplatz verwenden.

Wenn Sie BTRFS abgeholt haben (der Standard in Fedora 33), funktioniert dies möglicherweise nicht für Sie, und mein erster Versuch, direkt nach der Konvertierung der Festplatte in GPT zu booten, schlug fehl.

Wenn Ihre Boot-Partition kleiner als 1 GB ist und der gesamte Speicherplatz von Partitionen belegt ist, ist es möglicherweise nicht sicher, /boot zu erstellen kleiner als 512-600 MB. Möglicherweise haben Sie nicht genügend Speicherplatz, um fortzufahren, und vielleicht ist jetzt ein guter Zeitpunkt, um eine etwas größere SSD zu erwerben, auf die Sie Ihr System klonen können.

Mein Name ist /dev/sda1

Die Boot-Partition auf dieser Maschine ist 1 GB groß und hat genug freien Speicherplatz, damit wir fortfahren können:

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

Ändern Sie zunächst die Größe des Dateisystems auf 512 MB:

[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 es zuerst (Sie können, da Linux nur /boot einbindet als Bequemlichkeit):

[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

Die ext4 Die Größe des Dateisystems wurde geändert, aber die Partition ist immer noch 1 GB groß. Als Nächstes ändern Sie die Größe. Sie werden die Partition auf eine Größe über verkleinern die von /boot Dateisystem, um Rundungsfehler zu vermeiden. Verkleinern Sie es auf 700 Mib, wodurch etwa 300 Mib frei bleiben. Da das Dateisystem innerhalb dieser Partition jetzt 512 MB groß ist, ist es sicher, die Partition von 1024 MB auf 700 MB zu verkleinern.

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

Als nächstes erweitern Sie das Dateisystem wieder auf die volle Partitionsgröße (700 MB):

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

Der Größenänderungsvorgang endet mit dem Erweitern von ext4 Dateisystem von 512 MB zurück auf die Größe der zugrunde liegenden Partition, die 700 MB beträgt.

Ich hätte auch Gparted verwenden können, um den Fortschritt der vorherigen Schritte zu überwachen. Hier ein Screenshot der Ausgangssituation:

Sobald Sie die Größe des Dateisystems ändern, wird eine Warnung angezeigt:

Nachdem die Boot-Partition selbst auf 700 MB verkleinert wurde, wird eine nicht zugeordnete Zeile erscheint in Gparted:

Sobald das Dateisystem wieder auf die Partitionsgröße erweitert wurde, verschwindet die Warnung:

Außerdem hätte ich, wie es unter Linux üblich ist, die gesamte Operation mit einem einzigen Klick unter GParted erledigen können, aber es hätte nicht so viel Spaß gemacht:

Konvertieren der Festplatte in GPT

Da etwas freier Speicherplatz verfügbar ist, können Sie das Laufwerk jetzt in GPT konvertieren. Zuerst müssen Sie einige Tools installieren:

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

Verwenden Sie gdisk um die Partitionstabelle in GPT zu konvertieren und die BIOS-Startpartition zu erstellen, die GRUB benötigt. Diese Partition hat die Nummer 3 (die erste verfügbare Partition) und aus den ersten Sektoren der Festplatte herausgeschnitten werden (Sektoren 34 bis 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.

So sieht die Festplatte jetzt aus:

[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

Als nächstes installieren Sie den GRUB-Bootloader neu. Wenn Sie eine neuere Grub-Version verwenden, verwenden Sie statt grub2-install.... Bitte verwenden Sie dnf reinstall shim-* grub2-efi-* stattdessen:

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

[root@localhost ~]#

Wenn Sie Ihre Festplatte nur von MBR in GPT konvertieren wollten, ist dieser Teil jetzt abgeschlossen. An dieser Stelle würde ich empfehlen, Ihr System neu zu starten, um zu überprüfen, ob Ihr BIOS-basierter Computer die frisch konvertierte GPT-Festplatte booten kann.

So sieht die Festplatte jetzt aus:

Dies kann auch von der Shell aus gesehen werden:

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

Hinzufügen der EFI-Systempartition

Verwenden Sie als Nächstes den zuvor freigegebenen Speicherplatz, um eine vierte Partition zu erstellen:die EFI-Systempartition.

[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

Fügen Sie als Nächstes ein Label zur EFI-Partition hinzu, um später einfacher darauf verweisen zu können. Dies geschieht auch 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.

Die Partition sollte jetzt unter /dev/disk/by-partlabel angezeigt werden :

[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

Die EFI-Startpartition muss als vfat formatiert sein :

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

Jetzt ist es an der Zeit, diese Partition zu mounten und die Daten aus dem efi-Unterverzeichnis zu verschieben, das sich früher unter /boot befand Überprüfen Sie jedoch zuerst, ob die richtigen Dateien installiert wurden (die Namen variieren je nach Ihrer Linux-Distribution). Folgendes habe ich auf meinem Fedora 33-System:

[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

Jetzt ist es an der Zeit, diese Partition zu /etc/fstab hinzuzufügen und mount es:

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

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

[root@localhost ~]#

In diesem Stadium ist eine gewisse Überprüfung angebracht. Die EFI-Partition sollte bereitgestellt werden und die zuvor kopierten Daten enthalten:

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

Es ist jetzt an der Zeit, den GRUB-Bootloader neu zu installieren und das UEFI-Booten zu erzwingen. Wie oben, wenn Sie eine neuere Grub-Version verwenden, anstatt grub2-install.... zu verwenden Verwenden Sie dnf reinstall shim-* grub2-efi-* stattdessen:

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

Die drei oben angezeigten Fehlermeldungen sind normal und beziehen sich auf das Fehlen von EFI-Firmware-Variablen. Dies geschieht zum aktuellen Zeitpunkt, da Sie den PC zuletzt im Legacy-BIOS-Modus gestartet haben. Sobald Sie sich im vollständigen UEFI-Modus befinden, verschwinden diese Fehler. Atmen Sie tief durch, starten Sie Ihren PC neu und bereiten Sie sich darauf vor, die Firmware einzugeben, um den Startmodus zu ändern.

[Das könnte Ihnen auch gefallen: So richten Sie den PXE-Start für UEFI-Hardware ein]

Herunterfahren und Wechseln der Firmware von Legacy BIOS zu UEFI.

Die folgenden Aufnahmen sind spezifisch für das System, auf dem ich das Verfahren durchgeführt habe. Sie sollten die Anweisungen im Handbuch Ihres Systems nachschlagen, um herauszufinden, wie Sie von BIOS zu UEFI wechseln. Hier ist ein Beispiel auf meinem Laptop:

Speichern Sie die Einstellungen und beenden Sie die Firmware. Ihr PC wird zurückgesetzt und versucht, von Ihrer Festplatte im UEFI-Modus zu booten. Möglicherweise müssen Sie Ihre Festplatte manuell auswählen, wenn Sie das erste Mal im UEFI-Modus booten.

Startvorgang erfolgreich

Melden Sie sich gleich nach dem Hochfahren an und genießen Sie Ihr UEFI-verjüngtes Linux. Ja, alle Ihre Dateien, Konten und Programme sind weiterhin vorhanden.

[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 zeigt den Endzustand der Festplatte:

[ Kostenloser Spickzettel:Holen Sie sich eine Liste von Linux-Dienstprogrammen und -Befehlen zum Verwalten von Servern und Netzwerken. ] 

Abschluss

Egal, ob Sie neu installieren oder Ihre vorhandene Betriebsumgebung aktualisieren möchten, es gibt viele Möglichkeiten, erfolgreich dorthin zu gelangen. Ich weiß, wo meine eigenen Vorlieben liegen und dieser Blogpost versucht, einige der Tipps zu teilen, die ich kürzlich gelernt habe. Vorsichtig sein. Überprüfen Sie die Ausgabe Ihrer Befehle. Bitten Sie um Hilfe, wenn Sie welche brauchen. Außerdem gibt es Tools in anderen Betriebssystemen, die die Konvertierung erleichtern, wenn Sie dazu neigen – ein solches Beispiel ist der kostenlose AOMEI Partition Assistant für Windows-Plattformen.

Amüsanterweise waren für diesen Laptop, auf dem Fedora 33 ausgeführt wurde, mit GPT erfolgreich von BIOS auf UEFI umgestellt, aber keine Firmware-Updates über LVFS verfügbar, da das System zu alt war.


Linux
  1. Überwachen Sie Ihr Linux-System in Ihrem Terminal mit procps-ng

  2. Scannen Sie Ihre Linux-Sicherheit mit Lynis

  3. Ist ein hybrider Linux USB-Stick für UEFI &Legacy BIOS möglich?

  4. Wie erstelle ich ein minimales bootfähiges Linux (nur mit Terminal) aus dem Kernel-Quellcode?

  5. Wie konvertiere ich meine Linux-Festplatte mit UEFI von MBR in GPT?

Würzen Sie Ihren Linux-Desktop mit Cinnamon

Modernisieren Sie Ihren Linux-Desktop mit Enlightenment

So überprüfen Sie, ob Ihr Computer UEFI oder BIOS verwendet [in Linux und Windows]

Arbeiten mit Microsoft Exchange von Ihrem Linux-Desktop aus

Verwenden Sie Ihren Chromecast von Linux und MacOS mit mkchromecast

Verwalten Sie Ihre Server mit Cockpit Linux