Jump to content

UEFI2

From MukeWiki

Fedora

Fedora releases FTP sever, Get Fedora Workstation (en) (aka Live) and Alternative Downloads (en) with Everything (aka net install). Fedora Beta and Release candidate FTP server. Fedora archive FTP server with old versions.

Creating and using live USB docs.

# dd if=/path/to/Fedora-Image.iso of=/dev/sdf bs=4M status=progress oflag=direct

Windows 10

Microsoft Download Windows 10 (en-us alebo sk-sk). Pripadne (non official) zo stranky TechBench by WZT List of files by Microsoft alebo pomocou nastroja HeiDoc.net Windows ISO Downloader, kde je moznost stahovat priamo rozne (nie len Windows) images.

V zavislosti od pouzivaneho operacneho systemu (Windows alebo nie Windows), resp. aky user agent pouzije internetovy prehliadac, mozem stiahnut Windows 10 (oficialne zo stranok Microsoft) pomocou Media Creation Tool (nastroj na vytvorenie USB flash alebo na stiahnutie image) alebo priamo ako Download Disc Image (ISO file). To znamena, ze vo Windows mam moznost stahovat (by default) len Media Creation Tool a v nie Windows (napr. Linux) len ISO file. V pripade, ak vo Windows potrebujem stiahnut ISO file, tak potrebujem docasne zmenit user agent-a v internetovom prehliadaci na nie Windows system. Moznosti je viac, uvedeny sposob (pre dany ucel) je pravdepodobne najrychlejsi.

  • Firefox Ctrl + Shift + M (Responsive Design Mode), vybrat napr. nejaky Android telefon alebo tablet (tato volba zameni UA = User Agent), F5 (Reload) obnovit tuto stranku (s docasne nastavenym nie Windows user agent-om). Po obnoveni stranky uz bude moznost stahovania ISO file. Responsive Design Mode mozem ukoncit (zatvorit alebo Ctrl + Shift + M), pricom na stranke zostava moznost stiahnutia ISO suboru.
  • Chrome analogicky ako Firefox, ale najprv Ctrl + Shift + I (Developer Tools) a az nasledne Ctrl + Shift + M (Device emulation, Toggle device toolbar).

Media Creation Tool ponuka najjednoduchsiu moznost ako vytvorit boot-ovaciu USB flash drive pripadne stiahnut ISO image file. V pripade vytvorenie USB fash drive bude tato USB preformatovana na MBR s FAT32 partition (subory nebudu "len zmazane"). V ramci testovania bola vytvorena USB flashka s GPT tabulkou a FAT32 partition, nasledne Media Creation Tool tuto flashku preformatoval na MBR s FAT32.

# USB flash drive created by MediaCreationTool20H2.exe (Win10) or MediaCreationToolW11.exe (Win11)

[root@fedora ~]# lsblk /dev/sdf -p -o NAME,SIZE,TYPE,FSTYPE,FSVER,LABEL,PTTYPE,PARTTYPE,PARTFLAGS,PARTTYPENAME
NAME         SIZE TYPE FSTYPE FSVER LABEL   PTTYPE PARTTYPE PARTFLAGS PARTTYPENAME
/dev/sdf    14.7G disk                      dos
└─/dev/sdf1 14.7G part vfat   FAT32 ESD-USB dos    0xc      0x80      W95 FAT32 (LBA)

V pripade priameho Download Disc Image (ISO file) nezabudnut overit jeho SHA256 checksum (rozbalit polozku Verify your download s hodnotami SHA256 pre rozne jazykove verzie).

English = English (United States), nema zmysel stahovat English International = English (United Kingdom).

Windows N je variant urcena pre EU bez Media Feature Pack, bez Windows Media Player a bez niektorych predinstalovanych medialnych aplikacii. Vacsina z toho je zbytocnost (vratane Windows Media Player) a nema zmysel to instalovat, ale Media Feature Pack je potrebny pre rozne programy. Tento balik je vsak mozne dodatocne doinstalovat (Apps & features > Optional features > Add a feature > Media Feature Pack). Ale tato dodatocna instalacia Media Feature Pack nainstaluje aj nepotrebny Windows Media Player. Je teda otazne, ci instalacia Windows N (s doinstalovanym Media Feature Pack) nie je nakoniec kontraproduktivna, kedze vo Windows variant bez N mozem odinstalovat nepotrebne medialne aplikacie. Summarum: instalujem "normalnu" verziu bez N.

Microsoft pouziva vlastne Windows Imaging Formats. Klasicky Windows Imaging Format (WIM) a novsi Electronic Software Distribution (ESD) su komprimovane formaty pomocou rodiny LZ77 algoritmov (moznost otvorenia napr. v 7-Zip). ESD je vysoko komprimovany (LZMS metoda) format pre image file a jeho velkost je cca. o 30% mensia ako pre WIM image file, kde sa vacsinou pouziva menej vykonna LZX metoda kompresie. Hlavna vyhoda ESD formatu (mensia velkost ako WIM) je, ze velkost 64-bit install.esd suboru je mensia ako 4 GB a teda tento subor moze byt priamo zapisany na FAT32 drive, kde max. velkost suboru je obmedzena na 4 GB (64-bit install.wim ma velkost vacsiu ako 4GB). Subor install.wim (resp. install.esd) obsahuju skomprimovane subory operacneho systemu a moze obsahovat niekolko Windows editions (Home, Pro, Education, etc.) spolu. Instalacia v principe znamena extrahovanie vsetkych suborov z install.wim (resp. install.esd) na systemovy disk instalovaneho pocitaca. ESD subor, na rozdiel od WIM suboru, nemozem priamo otvorit, resp. na-mount-ovat vo Windows, je potrebne prekonvertovanie ESD na WIM format. Existuje viacero moznosti ako tieto formaty medzi sebou konvertovat. Vseobecne na pracu s Windows images sa pouziva Deployment Image Servicing and Management (DISM) program.

Windows 10 64-bit
version 20H2 (october 2020)
Media Creation Tool [a]
USB flash drive (ESD-USB)
Media Creation Tool [a]
ISO file [b] (ESD-ISO)
Download Disc Image
ISO file (CCCOMA_X64FRE_EN-US_DV9)
downloaded file
size (in bytes)
C:\ESD\Download\installx64.esd
4.221.613.674
Win10_20H2_v2_English_x64.iso
6.221.846.528
\sources\install.*
size (in bytes)
install.esd
4.218.505.830
install.esd
4.218.505.830
install.wim
5.339.940.209
[a] Media Creation Tool najprv stiahne vysoko komprimovany ESD subor C:\ESD\Download\installx64.esd, z ktoreho podla potreby vytvori USB flash drive alebo ISO file.
[b] ISO file Windows.iso vytvoreny pomocou Media Creation Tool ma velkost 4.899.078.144 bytes.
Windows 11 64-bit
version 21H2 (october 2021)
Media Creation Tool [a]
USB flash drive (ESD-USB)
Media Creation Tool [a]
ISO file [b] (ESD-ISO)
Download Disc Image
ISO file (CCCOMA_X64FRE_EN-US_DV9)
downloaded file
size (in bytes)
C:\ESD\Download\installx64.esd
3.759.763.114
Win11_English_x64.iso
5.497.985.024
\sources\install.*
size (in bytes)
install.esd
3.756.701.742
install.esd
3.756.701.742
install.wim
4.783.594.624
[a] Media Creation Tool najprv stiahne vysoko komprimovany ESD subor C:\ESD\Download\installx64.esd, z ktoreho podla potreby vytvori USB flash drive alebo ISO file.
[b] ISO file Windows.iso vytvoreny pomocou Media Creation Tool ma velkost 4.471.455.744 bytes.


# Command Prompt (run as administrator)
C:\Windows\System32>dism /Get-WimInfo /WimFile:F:\sources\install.esd
C:\Windows\System32>dism /Get-WimInfo /WimFile:G:\sources\install.wim /index:6
# Get-ImageInfo is newer than Get-WimInfo
C:\Windows\System32>dism /Get-ImageInfo /ImageFile:F:\sources\install.esd

Na vytvorenie boot-vacej USB flashky (na sucasnych UEFI pocitacoch) zo stiahnuteho Windows ISO suboru nie je potrebny ziadny dodatocny software. ISO file na-mount-ujeme a cely obsah jednoducho skopirujeme na FAT32 sformatovanu USB flashku, nic viac nie je potrebne urobit. POZOR, kedze kopirujeme na FAT32 (podmienka pre UEFI) je potrebne pouzit ISO file s install.esd (velkost menej ako 4 GB) stiahnuty pomocou Media Creation Tool a nie ISO file so suborom install.wim (velkost vacsia ako 4GB) stiahnuty priamo ako Download Disc Image (v tomto pripade mozeme pouzit napr. Ventoy, vid nizsie).

UEFI Shell

V niektorych specifickych pripadoch je vhodne na-boot-ovat do UEFI Interactive Shell. Bohuzial asi neexistuje absolutne univerzalny sposob, kedze niektori vyrobcovia pocitacov a maticnych dosiek implementuju UEFI "po svojom" a nie vzdy uplne podla specifikacii, ktore zastresuje UEFI Forum. Okrem toho existuje viacero verzii UEFI (nezamienat s verziou BIOS/UEFI konkretneho pocitaca, maticnej dosky) a UEFI Shell. V tejto suvislosti je podstatne stiahnut vhodny UEFI Shell pre konkretny model resp. vyrobcu.

$ dmesg | grep "EFI v"
[    0.000000] efi: EFI v2.80 by American Megatrends   # Intel NUC (2023)
[    0.000000] efi: EFI v2.70 by Dell                  # Dell XPS 15 (2022)
[    0.000000] efi: EFI v2.70 by American Megatrends   # ASUS motherboard (2020)
[    0.000000] efi: EFI v2.70 by Dell                  # Dell XPS 13 (2019)
[    0.000000] efi: EFI v2.60 by American Megatrends   # ASUS motherboard (2019)
[    0.000000] efi: EFI v2.40 by American Megatrends   # Intel NUC (2015)
[    0.000000] efi: EFI v2.31 by American Megatrends   # ASUS motherboard (2014)

TianoCore komunita zastresuje open source implementaciu UEFI. Aktualny EDK II Project podporuje rozne platformy a architektury a jeho sucastou je aj ShellPkg. ShellPkg obsahuje zdrojove kody UEFI Shell v2, ktory by sa mal pouzivat na UEFI 2.3+ systemoch a ShellBinPkg obsahujuci uz prekompilovane, binarne subory (EdkShellPkg implementoval dnes uz zastaranu verziu UEFI Shell). Stabilne verzie EDK2 vychadzaju pomerne casto (niekolkokrat do roka), ale posledna stabilna verzia, ktora obsahuje aj ShellBinPkg je edk2-stable202002, kedze bolo rozhodnute Remove ShellBinPkg from edk2/master.

EDK II release je open source projekt aktivne udrziavany komunitou. Po nejakom case ladenia celou komunitou konkretnej EDK II verzie, ktora je relativne stabilna, vydava Intel (ktory vyvinul povodny EFI) "vlastny a stabilny" UDK release (UEFI Development Kit). Zakladne rozdiely medzi UDK a EDK II su uvedene na tejto stranke (hrubo povedane EDK II je beta verzia UDK). Aktualne posledna verzia je UDK2018 (vratane ShellBinPkg).

Na vytvorenie boot-ovacej USB flashky (FAT32) je potrebne UEFI Shell Shell.efi file premenovat na bootx64.efi a presunut, prekopirovat do directory efi/boot/ na USB flashke (efi/boot/bootx64.efi). Pre caste pouzivanie je vhodnejsie Shell.efi file jednoducho prekopirovat na ESP (EFI system partition) systemoveho disku.

# EDK II
$ wget https://github.com/tianocore/edk2/releases/download/edk2-stable202002/ShellBinPkg.zip
$ unzip -j ShellBinPkg.zip ShellBinPkg/UefiShell/X64/Shell.efi -d /path/to/usb/efi/boot/
# or UDK
$ wget https://raw.githubusercontent.com/tianocore/edk2/UDK2018/ShellBinPkg/UefiShell/X64/Shell.efi -P /path/to/usb/efi/boot/

$ cd /path/to/usb/efi/boot/
$ mv Shell.efi bootx64.efi

Pre expertov moze byt uzitocne pouzitie roznych EFI Drivers (ext4, btrfs, NTFS a podobne). POZOR je zrejme, ze UEFI Shell nie je digitalne podpisany (kompilacia uzivatelom) a teda pre jeho spustenie z USB flashky je potrebne docasne vypnut Secure Boot mode.

Shell> ver
UEFI Interactive Shell v2.2
EDK II
UEFI v2.70 (Dell, 0x00010000)

Ventoy

Vyborny, jednoduchy a open source nastroj Ventoy ( A new bootable USB solution) zalozeny na GRUB2. Relativne nove riesenie pre vytvorenie multi-boot-ovacej USB flashky, projekt je aktivne udrziavany. Ventoy na USB flashke vytvory exFAT partition (na rozdiel od FAT32 nema obmedzenie pre max. 4GB velkost suboru), na ktoru len jednoducho kopirujeme vsetky potrebne image (ISO/WIM/IMG/VHD/EFI) files. Po na-boot-ovani z Ventoy USB flashky jednoducho vyberame medzi nimi. V praxi napr. ISO subory s Fedora Live, Fedora net install, Win10 English, Win10 Slovak alebo aj UEFI Shell. Ak vychadza nova verzia napr. Fedory, jednoducho stary ISO file zmazeme a skopirujeme novy ISO file, nic viac. Jednoduchsie sa to uz neda !

$ lsblk /dev/sdf -p -o NAME,SIZE,TYPE,FSTYPE,FSVER,LABEL,PTTYPE,PARTTYPE,PARTFLAGS,PARTTYPENAME
NAME         SIZE TYPE FSTYPE FSVER LABEL   PTTYPE PARTTYPE PARTFLAGS PARTTYPENAME
/dev/sdf    29,9G disk                      dos                       
├─/dev/sdf1 29,8G part exfat  1.0   Ventoy  dos    0x7      0x80      HPFS/NTFS/exFAT        # user space (with image files)
└─/dev/sdf2   32M part vfat   FAT16 VTOYEFI dos    0xef               EFI (FAT-12/16/32)     # Ventoy EFI boot partition (with GRUB2)

POZOR v pripade, ze pouzivame UEFI system, tak VENTOY nie je digitalne podpisany (nema kym, je to komunitny projekt) a teda pre jeho spustenie z USB flashky je potrebne (docasne) vypnut Secure Boot mode (vacsinou staci vybrat Other OS boot).

NOTE UEFI Specification (section File System Format): EFI encompasses the use of FAT32 for a system partition, and FAT12 or FAT16 for removable media.


+ https://wiki.archlinux.org/title/EFI_system_partition FAT32 musi byt minimalne 32 MiB velke!!!

citat UEFI GPT !!!!!! https://uefi.org/sites/default/files/resources/UEFI_Spec_2_9_2021_03_18.pdf#M9.9.17744.Heading.3.531.GUID.Format.overview

chroot

$ su -
$ lsblk -f -p                                            # check partitions
$ FEDORA_DIR=/mnt/fedora
$ mkdir $FEDORA_DIR

$ mount /dev/nvme0n1p7 $FEDORA_DIR                       # system partition (btrfs with subvol=root and subvol=home)
$ ls $FEDORA_DIR
home root
$ umount $FEDORA_DIR

$ mount -o subvol=root /dev/nvme0n1p7 $FEDORA_DIR        # btrfs only
$ mount -o subvol=home /dev/nvme0n1p7 $FEDORA_DIR/home   # btrfs only

$ mount /dev/nvme0n1p6 $FEDORA_DIR/boot                  # boot partition
$ mount /dev/nvme0n1p1 $FEDORA_DIR/boot/efi              # ESP partition


# https://docs.fedoraproject.org/en-US/quick-docs/bootloading-with-grub2/#btrfs-steps
# mount -o bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars


# mount system processes and devices
mount -t proc /proc $FEDORA_DIR/proc                   
mount --rbind /sys $FEDORA_DIR/sys
mount --make-rslave $FEDORA_DIR/sys
mount --rbind /dev $FEDORA_DIR/dev
mount --make-rslave $FEDORA_DIR/dev
mount --rbind /run $FEDORA_DIR/run
mount --make-rslave $FEDORA_DIR/run
mount -t tmpfs tmpfs $FEDORA_DIR/tmp

$ findmnt                                                # check and control
$ chroot $FEDORA_DIR
# DNS resolver problem (no internet connection)
$ ls -l /etc/resolv.conf
lrwxrwxrwx. 1 root root 39 Apr 29  2021 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
# mount /run   solve this problem

# EFI variables problem
$ efibootmgr
EFI variables are not supported on this system.
# mount /sys   solve this problem

# SELINUX problem
$ dnf reinstall packages   # package with scriplet
error: failed to exec scriptlet interpreter /bin/sh: Permission denied
$ setenforce 0
# disable SELINUX solve this problem

POZOR Do not use the grub2-install command on UEFI systems. On those systems, bootloaders are in the shim and grub-efi packages. By reinstalling those packages, the bootloaders are reinstalled to their proper location in /boot/efi/ on the EFI system partition.

# dir EFI komplet zmazana                         # 2021-11-09
# dnf reinstall shim\* grub2-efi\* grub2-common
# F35 OK, subory EFI komplet ako pred tym (nie je potrebne touch /boot/efi/EFI/fedora/grub.cfg, vytvoril sa subor  grub.cfg.rpmsave)
# nie je potrebne ani  grub2-mkconfig -o /boot/grub2/grub.cfg
# dir EFI, teda ESP particia, komplet sformatovana (mkfs.fat -F 32 /dev/nvme0n1p1, !!! UUID changed !!!)      # 2021-11-09
# dnf reinstall shim\* grub2-efi\* grub2-common
# F35 OK, subory EFI komplet ako pred tym (nie je potrebne touch /boot/efi/EFI/fedora/grub.cfg, vytvoril sa subor  grub.cfg.rpmsave)
# nie je potrebne ani  grub2-mkconfig -o /boot/grub2/grub.cfg (obsahuje uz nove UUID pre ESP particiu)
# !!! jediny rozdiel oproti "len zmazaniu EFI dir", potrebne v /etc/fstab nastavit nove UUID pre /dev/nvme0n1p1 !!!


$ dnf reinstall grub2\* shim\*
$ grub2-mkconfig -o /boot/grub2/grub.cfg
$ umount /dev/nvme0n1p1
$ mkfs.fat -F 32 /dev/nvme0n1p1         # !!! UUID changed !!! change UUID (for /boot/efi) in /etc/fstab file
$ mount /dev/nvme0n1p1 /boot/efi
$ # dnf reinstall grub2-efi\* shim\*
$ touch /boot/efi/EFI/fedora/grub.cfg   # vid komentar nizsie -> /boot/efi/EFI/fedora/grub.cfg.rpmsave
$ dnf reinstall shim\* grub2-efi\* grub2-common       # potrebny aj balik grub2-common
$ grub2-mkconfig -o /boot/grub2/grub.cfg

# Balik grub2-common obsahuje script, ktory generuje stub file /boot/efi/EFI/fedora/grub.cfg (linkuje na "skutocny" /boot/grub2/grub.cfg subor, avsak grub2 bez tohoto suboru nefunguje). Avsak (predpokladam, ze nejaka docasna chyba vo F34) tento subor sa vytvori, len ak uz takyto /boot/efi/EFI/fedora/grub.cfg subor existuje !!!
# subor /boot/efi/EFI/fedora/grub.cfg
search --no-floppy --fs-uuid --set=dev f467e321-6058-4f78-aef7-56a9c1db8df9   # UUID na boot partition, kde sa nachadza /boot/grub2/grub.cfg subor
set prefix=($dev)/grub2                                                       # set prefix=($dev)/boot/grub2   # v pripade ak je /boot sucastou / partition
export $prefix
configfile $prefix/grub.cfg



# ll /etc/grub*.cfg
lrwxrwxrwx. 1 root root 22 Apr 12 01:14 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
lrwxrwxrwx. 1 root root 22 Apr 12 01:14 /etc/grub2-efi.cfg -> ../boot/grub2/grub.cfg




ALEBOOOOOOOOOOOOOOOOOOOOOOOOOOOO priamo efi boot kernel (EFISTUB) https://wiki.archlinux.org/index.php/EFISTUB

A NAKONIEC najjednoduchsie riesnie Using UEFI Shell https://wiki.archlinux.org/index.php/EFISTUB#Using_UEFI_Shell

[root@fedora boot]# cat /boot/config-$(uname -r) | grep EFI_STUB
CONFIG_EFI_STUB=y

sddsa

  • NB = Notebook Dell XPS 13 7390 (Late 2019) so SSD NVMe Intel 512GB (reset UEFI/BIOS to default, o.i. enable Secure Boot)
  • Win10 = Windows 10 October 2020 Update (20H2)
  • F34 = Fedora 34

cistime

# wipefs /dev/sda*
DEVICE OFFSET     TYPE    UUID                                 LABEL
sda    0x8001     iso9660 2021-04-23-07-58-44-00               Fedora-E-dvd-x86_64-34
sda    0x1fe      dos                                          
sda    0x200      gpt                                          
sda1   0x8001     iso9660 2021-04-23-07-58-44-00               Fedora-E-dvd-x86_64-34
sda1   0x1fe      dos                                          
sda1   0x200      gpt                                          
sda1   0x286ffe00 gpt                                          
sda2   0x36       vfat    E333-FBBA                            ANACONDA
sda2   0x0        vfat    E333-FBBA                            ANACONDA
sda2   0x1fe      vfat    E333-FBBA                            ANACONDA
sda3   0x400      hfsplus c694593d-9440-322e-ac75-7b142b488386 ANACONDA

# wipefs --all /dev/sda
/dev/sda: 5 bytes were erased at offset 0x00008001 (iso9660): 43 44 30 30 31
/dev/sda: 2 bytes were erased at offset 0x000001fe (dos): 55 aa
/dev/sda: 8 bytes were erased at offset 0x00000200 (gpt): 45 46 49 20 50 41 52 54
/dev/sda: calling ioctl to re-read partition table: Success

# wipefs /dev/sda*

# dd if=/dev/sda bs=512 count=1 status=none | hexdump -C -v
00000000  33 ed 90 90 90 90 90 90  90 90 90 90 90 90 90 90  |3...............|
00000010  90 90 90 90 90 90 90 90  90 90 90 90 90 90 90 90  |................|
00000020  33 ed fa 8e d5 bc 00 7c  fb fc 66 31 db 66 31 c9  |3......|..f1.f1.|
00000030  66 53 66 51 06 57 8e dd  8e c5 52 be 00 7c bf 00  |fSfQ.W....R..|..|
00000040  06 b9 00 01 f3 a5 ea 4b  06 00 00 52 b4 41 bb aa  |.......K...R.A..|
00000050  55 31 c9 30 f6 f9 cd 13  72 16 81 fb 55 aa 75 10  |U1.0....r...U.u.|
00000060  83 e1 01 74 0b 66 c7 06  f1 06 b4 42 eb 15 eb 00  |...t.f.....B....|
00000070  5a 51 b4 08 cd 13 83 e1  3f 5b 51 0f b6 c6 40 50  |ZQ......?[Q...@P|
00000080  f7 e1 53 52 50 bb 00 7c  b9 04 00 66 a1 b0 07 e8  |..SRP..|...f....|
00000090  44 00 0f 82 80 00 66 40  80 c7 02 e2 f2 66 81 3e  |D.....f@.....f.>|
000000a0  40 7c fb c0 78 70 75 09  fa bc ec 7b ea 44 7c 00  |@|..xpu....{.D|.|
000000b0  00 e8 83 00 69 73 6f 6c  69 6e 75 78 2e 62 69 6e  |....isolinux.bin|
000000c0  20 6d 69 73 73 69 6e 67  20 6f 72 20 63 6f 72 72  | missing or corr|
000000d0  75 70 74 2e 0d 0a 66 60  66 31 d2 66 03 06 f8 7b  |upt...f`f1.f...{|
000000e0  66 13 16 fc 7b 66 52 66  50 06 53 6a 01 6a 10 89  |f...{fRfP.Sj.j..|
000000f0  e6 66 f7 36 e8 7b c0 e4  06 88 e1 88 c5 92 f6 36  |.f.6.{.........6|
00000100  ee 7b 88 c6 08 e1 41 b8  01 02 8a 16 f2 7b cd 13  |.{....A......{..|
00000110  8d 64 10 66 61 c3 e8 1e  00 4f 70 65 72 61 74 69  |.d.fa....Operati|
00000120  6e 67 20 73 79 73 74 65  6d 20 6c 6f 61 64 20 65  |ng system load e|
00000130  72 72 6f 72 2e 0d 0a 5e  ac b4 0e 8a 3e 62 04 b3  |rror...^....>b..|
00000140  07 cd 10 3c 0a 75 f1 cd  18 f4 eb fd 00 00 00 00  |...<.u..........|
00000150  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  9c f7 00 00 00 00 00 00  64 48 e7 5c 00 00 80 00  |........dH.\....|
000001c0  01 00 00 3f a0 86 00 00  00 00 00 38 14 00 00 fe  |...?.......8....|
000001d0  ff ff ef fe ff ff a4 00  00 00 98 4f 00 00 00 fe  |...........O....|
000001e0  ff ff 00 fe ff ff 3c 50  00 00 60 a7 00 00 00 00  |......<P..`.....|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000200

# gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.7

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries in memory.

Command (? for help): x

Expert command (? for help): z
About to wipe out GPT on /dev/sda. Proceed? (Y/N): y
GPT data structures destroyed! You may now partition the disk using fdisk or
other utilities.
Blank out MBR? (Y/N): y

dd if=/dev/sda bs=512 count=1 status=none | hexdump -C -v 
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000060  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000070  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000080  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000090  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000000f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000100  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000120  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000130  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000140  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000150  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000160  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000170  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000180  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000190  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001e0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000200

# fdisk -l /dev/sda
Disk /dev/sda: 1,88 GiB, 2019557376 bytes, 3944448 sectors
Disk model: Transcend 2GB   
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: dos
Disk identifier: 0x4c10222b

Device     Boot Start    End Sectors  Size Id Type
/dev/sda1        2048 206847  204800  100M  c W95 FAT32 (LBA)

# mkfs.fat -F 32 /dev/sda1 
mkfs.fat 4.2 (2021-01-31)

# mount /dev/sda1 /media/
# mkdir -p /media/efi/boot
# wget https://github.com/tianocore/edk2/raw/UDK2018/ShellBinPkg/UefiShell/X64/Shell.efi -O /media/efi/boot/bootx64.efi
# umount /dev/sda1
# udisksctl power-off -b /dev/sda

[root@localhost ~]# efibootmgr 
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0003,0001,0002,0000
Boot0000* Windows Boot Manager
Boot0001* hw
Boot0002* Fedora
Boot0003* ShellEFI
[root@localhost ~]# efibootmgr --verbose
BootCurrent: 0002
Timeout: 1 seconds
BootOrder: 0003,0001,0002,0000
Boot0000* Windows Boot Manager	HD(1,GPT,e4c6950e-f907-4a5a-8c3b-d68f66f40abb,0x800,0x12c000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...,................
Boot0001* hw	HD(1,GPT,e4c6950e-f907-4a5a-8c3b-d68f66f40abb,0x800,0x12c000)/File(\EFI\MUCHA\HELLOWORLD.EFI)
Boot0002* Fedora	HD(1,GPT,e4c6950e-f907-4a5a-8c3b-d68f66f40abb,0x800,0x12c000)/File(\EFI\FEDORA\SHIMX64.EFI)
Boot0003* ShellEFI	HD(1,GPT,e4c6950e-f907-4a5a-8c3b-d68f66f40abb,0x800,0x12c000)/File(\EFI\MUCHA\SHELL.EFI)

# efibootmgr --create --disk /dev/nvmeXYZn1p1 --write-signature --loader /EFI/mucha/Shell.efi --label "ShellEFI" --verbose
NOTE: nepisat \EFI\cesta ale UNIX style /EFI/ => efibootmgr to prepise OK
--write-signature => podstatne
# efibootmgr -b 4 -B


!!!! POZORO !!!!! --disk /dev/nvmeXYZn1p2  NEFUNGUJE musi byt --disk /dev/nvmeXYZn1 --part 2      !!!!!!!!!!!!!!

[root@localhost ~]# grep -r /var/log/anaconda/ -e "efibootmgr "
/var/log/anaconda/syslog:18:52:52,370 WARNING org.fedoraproject.Anaconda.Modules.Storage:INFO:program:Running in chroot '/mnt/sysroot'... efibootmgr -c -w -L Fedora -d /dev/nvme1n1 -p 1 -l \EFI\fedora\shimx64.efi
/var/log/anaconda/storage.log:INFO:program:Running in chroot '/mnt/sysroot'... efibootmgr -c -w -L Fedora -d /dev/nvme1n1 -p 1 -l \EFI\fedora\shimx64.efi
/var/log/anaconda/journal.log:Dec 28 18:52:52 fedora org.fedoraproject.Anaconda.Modules.Storage[1894]: INFO:program:Running in chroot '/mnt/sysroot'... efibootmgr -c -w -L Fedora -d /dev/nvme1n1 -p 1 -l \EFI\fedora\shimx64.efi
[root@localhost ~]# 






zaklady ASUS

# [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
$ dmesg | grep "EFI v"
[    0.000000] efi: EFI v2.70 by American Megatrends
$ mount | grep efivar 
efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)

$ ls /sys/firmware/efi/
config_table  efivars  esrt  fw_platform_size  fw_vendor  mok-variables  runtime  runtime-map  systab
$ cat /sys/firmware/efi/fw_platform_size
64
$ efivar -l | grep -i bootcurrent
8be4df61-93ca-11d2-aa0d-00e098032b8c-BootCurrent
$ efivar -p -n 8be4df61-93ca-11d2-aa0d-00e098032b8c-BootCurrent
GUID: 8be4df61-93ca-11d2-aa0d-00e098032b8c
Name: "BootCurrent"
Attributes:
	Boot Service Access
	Runtime Service Access
Value:
00000000  02 00                                             |..              |

dsadsds

Obnova ESP particie

Windows
### Ako priklad bola 1) najprv komplet dir ESP zmazana, 2) neskor aj komplet preformatovana => mkfs.fat -F 32 /dev/nvme0n1p1 

X:\Sources>diskpart
DISKPART> list volume
DISKPART> list disk
DISKPART> select disk 0         # disk with system EFI partition
DISKPART> list partition
DISKPART> select partition=1    # system EFI partition
DISKPART> assign letter=S
DISKPART> exit

# check S:
# original Windows is on C: (C: is the Windows partition)
X:\Sources>C:\Windows\System32\bcdboot C:\Windows /s S:
Boot files successfully created.

# check S:
X:\Sources>exit

Obnova OK, EFI particia rovnaka (male rozdiely vo velkosti su sposoben LOG suborami), *.efi subory absolutne identicke (vratane timestamp) ako "pred zmazanim, resp. pre formatovanim"


https://fedoraproject.org/wiki/GRUB_2

In Fedora 33 and older, the /boot/efi/EFI/fedora/grub.cfg file is a special stub file that forwards data to the /boot/grub2/grub.cfg file. Note that you should not replace or directly edit the /boot/efi/EFI/fedora/grub.cfg file.


https://docs.fedoraproject.org/en-US/quick-docs/bootloading-with-grub2/