A deep-dive into UEFI Booting

[According to my own standards, this post about “UEFI booting” was only like 70% “ready” — I had it pending in “draft” state for many months, because I was lacking the time to finish it… I now decided to release it in its current state, simply because I believe it will still be very useful to many people interested in the topic…]

Before we actually dive deep into how UEFI booting works, a short and simple introduction is due.


What is UEFI, anyway?

UEFI could be called the successor of the old BIOS concept. It is a unified version and successor of “EFI”, which was an architecture for a platform firmware used to boot operating systems (in the following abbreviated as “OS”), and the corresponding interface to interact with the firmware and the operating system.

The advantages of UEFI over the traditional BIOS are, among others, the following:

  • Boot disks with large partitions (over 2 TB), using GUID partitioning (GPT),
  • network capabilities already in pre-OS phase, and
  • modular design.

Boot Mechanism

So, how does booting with UEFI work?

When you enter your UEFI, you will find a user interface that shows all devices that have been detected, and that support booting. Usually that includes all your hard drives.

You can freely define a desired boot order (regardless of hardware paths, i.e. the way your drives are connected, be it via an SATA port, be it via an NVME slot), i. e. the primary OS that should be booted, if that fails the next OS that should be tried, etc. That’s called your “boot configuration”, and it resides in your motherboard’s NVRAM. (a concept that’s basically the successor of what used to be called “CMOS” in the old days of the BIOS). More specifically, we speak about “UEFI Variables“, which allow the OS and the firmware to interact.

When UEFI’s Firmware Boot Manager wants to boot an OS, it first needs to load something called the OS “Boot Manager.” Common OS boot managers are:

  • BOOTMGFW.EFI used to load Windows, or
  • SHIMX64.EFI used to load Linux

The OS boot manager is located on the “EFI system partition” (ESP). This is a small partition (usually only a few 100 M) at the start of your hard drive, formatted with basically a FAT filesystem. FAT is a very simple filesystem, so that the code to parse it and load files from it can be reasonably small and fit into a boot firmware.

A typical disk layout for a Windows installation may look as follows:

UEFI /EFI System Partition as seen under Windows

The first partition is the ESP, then comes the Windows boot and system drive (with a drive letter of C:), and then comes the recovery partition.

Apart from boot loaders, the ESP can contain kernel images or (device) drivers, e. g. to support hardware that must be initialized prior to the start of the OS, or to give access to a complex filesystem that holds the actual OS to be booted.

Depending on which OS you want to boot, the OS boot manager then loads

  • in the case of Linux: the OS kernel, and the kernel in turn loads the OS, or
  • in the case of Windows: the Windows Boot Loader (\Windows\system32\winload.efi)

Boot Configuration Details

Now that we got a good overview of the mechanism as a whole, let’s dive into the details. Let’s look at the boot configuration of my machine. To do so, invoke the below command (I did it under Ubuntu 23.04, but it should work the same under any reasonably current Linux distro where the tool is installed):

# efibootmgr -v
BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0000,0002,0003
Boot0000* Windows Boot Manager    HD(1,GPT,a39d5736-7aaf-4be0-b6b6-0852ba2f7803,0x800,0x32000)/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.}…R…………….
Boot0002* ubuntu    HD(1,GPT,280ea55d-c182-5242-bb52-a2b40812190c,0x800,0x219800)/File(\EFI\UBUNTU\SHIMX64.EFI)..BO
Boot0003* ubuntu    HD(1,GPT,91b56f9f-3526-404b-b681-1c684551ec4f,0x800,0xd87be)/File(\EFI\UBUNTU\SHIMX64.EFI)..BO

So, what does the above tell us? First, we see that “(Boot)0003” is the boot entry used to start the currently running system. Secondly, the order in which boot is tried is 0000, 0002, and then 0003. So by default, Windows (by the “Windows Boot Manager”) will be booted. Then we see the three boot entries. The star/asterisk (*) after the boot entry shows that all these entries are “active.”

What about the remaining info in the above command output? Immediately after the boot entry, we see the names that are also displayed on screen by the Firmware Boot Manager (“Windows Boot Manager” and two times “ubuntu”). We then see references to the ESPs used to boot these OS.

HD obviously means “hard drive”, then we see a 1 which refers to the first partition on the respective drive, then we see GPT which refers to the partitioning table format, and then we see a UUID. To find the respective partitions, we can use the below command:

# blkid --match-token TYPE=vfat
/dev/nvme0n1p1: LABEL="UBUNTU_TEMP" UUID="EC76-8E7F" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="280ea55d-c182-5242-bb52-a2b40812190c"
/dev/nvme1n1p1: SEC_TYPE="msdos" LABEL_FATBOOT="UBUNTU_MAIN" LABEL="UBUNTU_MAIN" UUID="8140-E4C0" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI" PARTUUID="91b56f9f-3526-404b-b681-1c684551ec4f"
/dev/sda1: UUID="40AD-1127" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="a39d5736-7aaf-4be0-b6b6-0852ba2f7803"

The PARTUUID values in the above output match the UUIDs in the boot configuration as shown by efibootmgr. So, the ESPs are located by searching for the partitions’ UUIDs. That means that you can replug your drives to different ports, or even copy partitions to different drives, and the UEFI boot mechanism will still find them. That’s a nice and very stable design.

UEFI User Interface

Now, let’s enter the UEFI and look at some of the details there. My PC’s motherboard is an MSI, and to enter the UEFI I need to press “F2” after the beep when powering on the PC (from “off” state, not when suspended to RAM, i.e. “sleeping”!) or restarting it.

# lspci
21:00.0 Non-Volatile memory controller: Sandisk Corp WD Blue SN570 NVMe SSD 1TB
2b:00.0 Non-Volatile memory controller: Sandisk Corp WD Blue SN570 NVMe SSD 1TB

Making Paper dragons 🐉

Hello! A couple of days ago, I made some amazing paper dragons! Let me tell you about it!😁

First, I took a piece of paper to make the base. It’s really easy! 😎 After I folded the paper pieces and glued all together, I drew the design. It was a beautiful pumpkin! 🎃 It perfectly fits with Halloween! 👻 I coloured the design and glued it on the base. And voila! I’ve got a cute tiny paperdragon! 🐉 After I was finished with that, I took my phone and made a video with my new dragon. A Halloween special! 🎃

My Halloween dragon, his name is Pumpkin.

I posted the video and waited. Sadly my video didn’t get lot’s of likes.😔 But I had fun, and that’s the most important!🤪 I also made a tornado dragon!

My tornado dragon, his name is Tornado.

For that one, I made a video, too. I really like pretty paper dragons. Making them is my hobby.

I hope you liked my blog! Bye, and try to make some paper dragons, too!😊🫶

Wie man (physische) Netzwerkprobleme spielend leicht lokalisieren kann

Kürzlich habe ich endlich etwas “angepackt”, was ich schon seit einigen Jahren tun wollte: Ich habe das LAN in meinem Haus “logisch segmentiert” durch die Verwendung von VLANs, um unterschiedlichen Traffic auf jeweils einem einzigen Kabel transportieren zu können.

Wozu braucht man sowas? Ganz einfach, z. B. um ein Gästenetzwerk vernünftig implementieren zu können, wenn man mehr als nur einen WiFi-Access Point in seinem Netz hat. Anbieter wie Ubiquity haben sowas bestimmt so implementiert, dass auch technisch weniger bewanderte Personen es nutzen können, aber mir ist Ubiquiti einfach zu teuer in dem Ausmaß, in dem ich deren Hardware bräuchte. Außerdem macht es ja auch schlicht Spaß, sich sowas auf Open Source-Basis selbst zu bauen… 😉

Ich habe bei mir also auf OpenWrt-Basis ein (für ein Einfamilienhaus) relativ komplexes Netzwerk aufgebaut. Folgende Komponenten sind u. a. enthalten:

Jetzt hatte ich kürzlich ein Problem, an dem ich wirklich hart zu “knacken” hatte. Irgendwann kam ich zu dem Schluss, dass es nicht auf Layer 2 (Ethernet) oder höher (IP) liegen müsse, sondern eher auf Layer 1 (physikalische Ebene, also Verkabelung).

Ich habe mir also für sage und schreibe 10,99 EUR einen deleyCON Netzwerk-Kabeltester bestellt. Selbst für eine einmalige Anwendung (aber dabei bleibt’s ja nicht…) war mir der Preis akzeptabel.

Und siehe da, ich hatte tatsächlich ein Verkabelungsproblem in meinem Netzwerk. An einer Netzwerkdose war das Kabel nicht vernünftig aufgelegt.

Diesen Fehler hätte ich ohne den Kabeltester nicht gefunden. Der Tester ist wirklich auch von Personen, die keine ausgebildete Netzwerktechniker sind, sehr einfach zu nutzen. Signalgenerator ans eine Ende des Strangs hängen, “Abschluss-Stecker” ans andere, und schon werden die einzelnen Adern durchgetestet, und man kann durch LEDs sehen, wo der Fehler ist.

Ich kann dieses Gerät nur absolut weiterempfehlen. Für etwas mehr als einen Zehner kann man da nichts falsch machen…

Lasst mich gerne wissen, ob Ihr meine Meinung teilt, falls Ihr Euch auch dieses Gerät zulegen solltet…

“Excire Search 1.4” Review

This is a quick-and-dirty review of the Excire Search 1.4.1 plugin for Adobe Lightroom. I got this plugin for free in an online “advent calendar”. As it was free, I can’t expect anything, obviously. But still I can tell you what I think about the tool. 😉

Let me mention that version 1.4 is not the latest version as of today. So the more recent 2.0 version may be performing much better than the one I tested, but I have no way of verifying this.

So, what is this tool about? Excire Search is a photo organizing software that sifts thru your photos in order to organize them. The company claims Excire Search is “The best software for organizing your photo treasures”, using AI it analyzes and tags photos automatically so that “image management [is] fun again.”

Ok, let’s see how helpful the tool actually is. One category that Excire creates in your keyword hierarchy is “Image Color.” So if you are searching for images of a certain color, this should be helpful, right? Well, have a look yourself. This is the hierarchy it created for some 15K photos I have in this Lightroom catalog:

“Image Color” keywords

Let’s have a look at some of the images Excire classifies as “black”:

Continue reading “Excire Search 1.4” Review

Bedeutet neues Handy auch neue Telefonnummer?

Mein Vater benötigt ein neues Handy, da sein altes — welches prinzipiell noch sehr neuwertig ist — leider seit mehr als einem Jahr keine Sicherheitsupdates mehr erhält. Ein Weiternutzen ist daher keine Option, da er es auch u. a. für Online-Banking benutzt. Ich habe ihm also ein Google Pixel 6a bestellt — ein wirklich sehr leistungsfähiges Handy mit moderatem Preis (“Black Friday” lässt grüßen!) und fünf Jahren Updates direkt von Google.

Im Zuge des Austauschs überraschte er mich plötzlich mit einer (für mich als Experten) sehr “merkwürdigen” Frage: “Kriege ich denn dann auch eine neue Handynummer?”

Hinterher wurde mir klar, dass wahrscheinlich vielen, gerade älteren Menschen (die nicht häufig ihren Anbieter oder ihren Handytarif wechseln) nicht ganz klar ist, wo denn eigentlich die Nummer “sitzt”. Ich möchte das Ganze hier also einmal mit sehr einfachen Worten erklären, vielleicht hilft das ja dem einen oder anderen…

Jedes Handy benötigt eine SIM. “Früher” war das immer ein Chip, ein elektronisches Modul, anfangs so groß wie eine Kreditkarte, später immer kleiner, bis es “zuletzt” nicht mal mehr die Größe eines halben Daumennagels hatte. Mittlerweile gibt es die SIM auch in “virtueller” Form, man kann sie per Internet in das Handy hineinladen (“eSIM” genannt).

Was aber ist eigentlich der Zweck der SIM? “Früher” hat man dort sein Adressbuch gespeichert, auch eine gewisse Anzahl an SMS-Nachrichten konnte dort gespeichert werden. “Heutzutage” werden die Kontakte und Kurznachrichten üblicherweise direkt im Handy gespeichert. Aber wofür wird die SIM denn immer noch benötigt?

Continue reading Bedeutet neues Handy auch neue Telefonnummer?

How to manually rebuild your Windows BCD Store

I recently had a mishap where on a system that I had just upgraded from Windows 10 to Windows 11 the Windows BCD Store (Boot Configuration Data Store) was suddenly messed up, presumably by a patch update I had taken earlier:

Blue screen showing “Wiederherstellung: Der PC muss repariert werden.” (German for: “Recovery: The PC must be repaired.”), hinting to a problem with the Windows BCD Store.

Many people will recommend in that situation to boot to a Windows Recovery Environment (RE) and execute the following:

>bootrec /rebuildbcd

But what if the scan for all Windows installation turns out not to identify yours?! Like in the below photo?

Photo of a Windows RE session, failing to automatically rebuild the Windows BCD Store

Are you SOL then?

Don’t despair.

The solution is actually quite simple. Other than the above which is supposed to be fully automatic, it involves some manual tasks, but it should be quite easy if you are at least a bit tech-savvy.

Continue reading How to manually rebuild your Windows BCD Store

Braucht man 2023 wirklich einen neuen Auto-Verbandkasten?

Dieser Artikel wurde verfasst am 10. Nov. 2022, spiegelt also den Stand der Rechtslage zu diesem Datum wieder.

Es fing an mit diesem Artikel in der “tz”. Dort stand:

Schon seit dem 1. Februar 2022 gilt für Verbandkästen in Autos die neue DIN-Norm 13164:2022. Bisher genügte es, zwei FFP2-Masken in seinem alten Verbandkasten mitzuführen. Ab dem 1. Februar 2023 endet dann die Übergangsfrist für die neue Norm. Ab dann muss ein entsprechend genormter Verbandkasten mitgeführt werden.

Aber ist das wirklich so? Mir kam das ziemlich unsinnig vor. Wieso sollte man denn nicht einfach weiterhin die Masken hinzufügen können? Deshalb habe ich das Ganze einmal recherchiert.

Wo ist die Pflicht, einen Verbandkasten im Auto mit sich zu führen, überhaupt geregelt? Das war schnell rauszukriegen: in der StVZO. Und zwar in § 35h.

Wann wurde diese Verordnung denn nun das letzte Mal geändert? Art. 11 G vom 12. Juli 2021, das kann man dem obigen Wikipedia-Artikel entnehmen. Diese Änderung betrifft aber überhaupt nicht § 35h, “Erste-Hilfe-Material in Kraftfahrzeugen”. Zitat:

Continue reading Braucht man 2023 wirklich einen neuen Auto-Verbandkasten?

Ein Bosch “Bohrhammer” zahlt sich aus

Seit einigen Jahren besitze ich einen Bosch Professional GBH 2-28 DFV Bohrhammer mit SDS-plus-Wechselfutter. Ich hatte mir diesen zugelegt, weil unser Haus über Stahlbetondecken verfügt, und ich mit meiner alten Metabo-Schlagbohrmaschine richtige Probleme hatte, da reinzukommen.

Gestern nun zeigte sich wieder der Vorteil solch eines Bohrhammers gegenüber einer herkömmlichen Schlagbohrmaschine. Mein Vater hat in seiner neuen Wohnung fast überall Stahlbetonwände, weil das ganze Objekt aus Stahlbetonfertigteilen erstellt wurde. Er kam mit seiner (ebenfalls) Metabo-Schlagbohrmaschine dort nicht mehr als einen Zentimeter in die Wand rein. Also habe ich es mit meinem Bosch-Bohrhammer versucht, und der “ging rein wie Butter”, einfach unglaublich.

Ich hatte übrigens damals recht lange gesucht und verglichen, weil ich durchaus auch zu Makita tendiert hatte. Damals gab es jedoch ein, zwei Modelle von Makita, die reihenweise vernichtende Bewertungen bei Amazon erhielten. Vielleicht Montagsmodelle? Ich weiß es nicht. Das Gerät von Bosch, was ich letztenendes gekauft habe, war auf jeden Fall günstiger und sogar besser bewertet als alle Makita-Modelle bei Amazon. Da fiel die Entscheidung recht leicht. 😉

Die anderen Vorteile des SDS-Plus-Systems möchte ich auch nicht mehr missen: Früher, bei dem Schnellspannbohrfutter, konnte es schon mal passieren, dass sich der Bohrer im Bohrfutter gedreht hat, weil man diesen nicht stark genug fixiert hatte (nicht stark genug zugedreht hatte). Dadurch konnte der Bohrer schon mal “stehenbleiben”, wobei dann auch gerne der Schaft des Bohrers beschädigt wurde. Dies ist bei SDS-Plus nicht möglich, da der Schaft formschlüssig in das SDS-Plus-Wechselfutter eingesetzt wird (einfach nur ein Klick mit dem Bohrer ins Futter rein).

Ich habe mir zu der Bohrmaschine Bosch Professional Hammerbohrer SDS Plus-7X Bohrer gekauft. Diese sind unglaublich hart und wirken fast wie “unzerstörbar”. 🙂
Was man unbedingt beachten sollte ist, die Bohrer regelmäßig am Einsteckende mit speziellem Fett zu bestreichen, damit der Verschleiß der Mitnahmezähne in der Werkzeugaufnahme reduziert wird. Ich verwende dafür dieses spezielle Schmierfett, welches auch von Bosch empfohlen wird.

Vielleicht ist dieser, verglichen mit meinen sonstigen Artikeln, recht “spezielle” Artikel ja für den einen oder anderen hilfreich. Ich würde mich freuen von Euch zu hören.

Viel Spaß beim Heimwerken!

Mein Internet funktioniert nicht, was tun?!

Diesen Hilfeschrei hat bestimmt jeder schon oft gehört. Aber nur die wenigsten wissen, wie man heraus finden kann, wo genau das Problem liegt.

Ich versuche in diesem Blogpost einmal, eine auch für Laien verständliche bzw. leicht anwendbare Anleitung zu liefern, wie man bei Internetstörungen zu Hause dem Problem auf die Spur kommen kann…

Zunächst einmal ein paar (wenige) Grundlagen. Ohne diese geht es einfach nicht.

Egal, was Sie im Internet tun, alles passiert auf Basis sogenannter “IP-Pakete“. Jeglicher Datenverkehr wird “zerhackt” und in Form von kleinen “Häppchen”, eben dieser IP-Pakete übertragen. Alle Geräte, die am Internet teilnehmen, haben eine bestimmte Rolle. Ihr Handy, Laptop oder PC ist in der Regel ein sogenannter “Client“, also ein “Kunde”, die Dienste, die Sie in Anspruch nehmen, werden durch sogenannte “Server” (“Bediener”) erbracht. Wie findet nun Ihr Client den passenden Server? Das funktioniert über ein System namens “DNS“. Es übersetzt für den Menschen lesbare Adressen, wie z. B. “amazon.de“, in IP-Adressen, die Ihr Endgerät für die tatsächliche Kommunikation mit dem gewünschten Dienst benutzt.

Wie werden aber die IP-Pakete zwischen Ihrem Endgerät (Handy, Laptop, Tablet, PC) und den Servern im Internet übertragen? Zunächst muss Ihr Endgerät mit Ihrem eigenen lokalen Netzwerk (auch “LAN” genannt) bei sich zu Hause verbunden sein. Dies kann über WLAN (auch “WiFi” genannt) oder Netzwerkkabel (auch “Ethernet”-Kabel genannt) passieren. Von dort geht es über Ihren Router zu Ihrem Internetprovider, und dann von dort ins Internet. Welche physikalische Verbindungstechnik (Teilnehmeranschlussleitung) Sie zur Anbindung an Ihren Provider verwenden ist grundsätzlich egal: DSL, TV-Kabel, Glasfaser oder sogar Mobilfunk (z. B. über einen Vodafone GigaCube).

Continue reading Mein Internet funktioniert nicht, was tun?!

CSV-Datei mit Datumspalte in Excel öffnen bei Verwendung des ISO-Datumsformats

Im Folgenden wird ein Problem geschildert, was nur bei Benutzern auftreten sollte, die ihr Datumsformat auf “ISO” (YYYY-mm-dd, JJJJ-mm-tt) gestellt haben:

Möchte man z. B. als Bankkunde seine Umsätze als CSV exportieren und dann in Excel öffnen, dann wird man folgendes Problem haben, wenn eine aktuelle Version von Excel verwendet wird:

Wenn man einfach auf die CSV-Datei doppelklickt, um diese zu öffnen, dann werden die beiden Datums-Spalten (in “deutschem” Format) nicht als Datentyp “Datum” geöffnet, sondern als “Allgemein” (General), da diese wegen des “unpassenden” Datumsformats nicht korrekt als Datentyp “Datum” erkannt werden. Das hat natürlich Konsequenzen, weil man dann mit diesen Datumsfeldern nicht rechnen kann, diese nicht vernünftig filtern kann, sie nicht in andere Datumsformate umwandeln kann, etc.

Wie erkennen Sie, ob Sie selbst betroffen sind? Öffnen Sie ganz einfach so einen CSV-Export durch Doppelklick, und dann versuchen Sie mit einem Datumsfeld zu rechnen. Wenn Sie z. B. zu einem Datumsfeld “1” addieren, dann sollte das Ergebnis der nächste Tag sein. Wurde das Datumsfeld jedoch lediglich als Textfeld importiert, so können Sie damit nicht rechnen und erhalten lediglich einen Fehler.

Wie macht man das also richtig?

Continue reading CSV-Datei mit Datumspalte in Excel öffnen bei Verwendung des ISO-Datumsformats

Just another WordPress weblog