{ "$schema": "../schema/questions.schema.json", "format": "lpic-sim-questions", "meta": { "file": "questions_102_set2.json", "brief": "Zweiter Fragensatz zu Topic 102 Linux-Installation und Paketverwaltung (LPIC-1 101-500, Objectives 5.0)", "author": "Björn Runden ", "owner": "Björn Runden ", "assist": "KI-unterstützt (Claude Opus 5.5), geprüft von Björn Runden ", "version": "0.1.0 (30.10.2026)" }, "exam": "lpic1-101", "questions": [ { "id": "102.1-004", "objective": "102.1", "type": "single", "difficulty": 1, "question": "Wofür nutzt Linux eine Swap-Partition bzw. Swap-Datei?", "options": [ { "id": "a", "text": "Zum Auslagern selten genutzter Speicherseiten bei knappem Arbeitsspeicher (und für den Ruhezustand)", "correct": true, "explanation": "Swap erweitert den virtuellen Speicher; Hibernate schreibt den RAM-Inhalt dorthin." }, { "id": "b", "text": "Zum Ablegen temporärer Dateien statt `/tmp`", "correct": false, "explanation": "Swap enthält kein Dateisystem für Dateien." }, { "id": "c", "text": "Als Sicherungskopie der Partitionstabelle", "correct": false, "explanation": "Die GPT-Sicherung liegt am Plattenende, nicht im Swap." }, { "id": "d", "text": "Zum Starten des Kernels", "correct": false, "explanation": "Kernel und initramfs liegen in `/boot`." }, { "id": "e", "text": "Als Cache für Paketdownloads", "correct": false, "explanation": "Paket-Caches liegen unter `/var/cache`." } ], "explanation": "Aktive Swap-Bereiche zeigen `swapon --show` und `free -h`.", "references": ["man 8 swapon"] }, { "id": "102.1-005", "objective": "102.1", "type": "single", "difficulty": 2, "question": "Warum legt man `/boot` häufig auf eine **eigene, unverschlüsselte** Partition?", "options": [ { "id": "a", "text": "Damit der Bootloader Kernel und initramfs lesen kann, auch wenn das Root-Dateisystem verschlüsselt ist oder in LVM/RAID liegt", "correct": true, "explanation": "Die initramfs entschlüsselt bzw. aktiviert dann das eigentliche Root-Dateisystem." }, { "id": "b", "text": "Weil `/boot` die Benutzerdaten enthält", "correct": false, "explanation": "Benutzerdaten liegen in `/home`." }, { "id": "c", "text": "Weil `/boot` ständig wächst und das Root-Dateisystem füllen würde", "correct": false, "explanation": "`/boot` ist klein und wächst kaum." }, { "id": "d", "text": "Weil Swap in `/boot` liegen muss", "correct": false, "explanation": "Swap ist ein eigener Bereich." }, { "id": "e", "text": "Weil `/boot` immer XFS sein muss", "correct": false, "explanation": "Dafür gibt es keine solche Vorgabe; üblich ist ext4." } ], "explanation": "Bei UEFI kommt zusätzlich die EFI-Systempartition (FAT) hinzu.", "references": ["man 7 hier"] }, { "id": "102.1-006", "objective": "102.1", "type": "fill", "difficulty": 1, "question": "Unter welchem Pfad wird die EFI-Systempartition üblicherweise eingehängt?", "answers": ["/boot/efi", "/efi"], "explanation": "Dort liegen z. B. `EFI/debian/grubx64.efi` oder `shimx64.efi`.", "references": ["UEFI-Spezifikation, Abschnitt EFI System Partition"] }, { "id": "102.1-007", "objective": "102.1", "type": "multi", "difficulty": 2, "question": "Welche Verzeichnisse müssen laut klassischer FHS-Vorgabe auf dem **Root-Dateisystem** liegen und dürfen keine eigene Partition sein?", "options": [ { "id": "a", "text": "`/etc`", "correct": true, "explanation": "Konfiguration wird gebraucht, bevor weitere Dateisysteme eingehängt sind (z. B. `/etc/fstab`)." }, { "id": "b", "text": "`/sbin`", "correct": true, "explanation": "Programme wie `mount` und `fsck` müssen beim Start verfügbar sein." }, { "id": "c", "text": "`/home`", "correct": false, "explanation": "Typischer Kandidat für eine eigene Partition." }, { "id": "d", "text": "`/var`", "correct": false, "explanation": "Kann (und sollte oft) eigenständig sein." }, { "id": "e", "text": "`/tmp`", "correct": false, "explanation": "Kann eigene Partition oder tmpfs im RAM sein." } ], "explanation": "Ebenso `/bin`, `/lib`, `/dev`. Bei zusammengeführtem `/usr` (usrmerge) sind `/bin`, `/sbin`, `/lib` Links nach `/usr`; dann bindet die initramfs `/usr` früh ein.", "references": ["man 7 hier"] }, { "id": "102.2-004", "objective": "102.2", "type": "single", "difficulty": 1, "question": "Wie installiert man GRUB 2 in den Bootsektor (MBR) der ersten Festplatte eines BIOS-Systems?", "options": [ { "id": "a", "text": "`grub-install /dev/sda`", "correct": true, "explanation": "Ziel ist das ganze Gerät, nicht eine Partition." }, { "id": "b", "text": "`grub-install /dev/sda1`", "correct": false, "explanation": "Installiert in den Bootsektor einer Partition – unüblich und nicht der MBR." }, { "id": "c", "text": "`grub-mkconfig /dev/sda`", "correct": false, "explanation": "`grub-mkconfig` erzeugt nur die Konfiguration." }, { "id": "d", "text": "`update-grub /dev/sda`", "correct": false, "explanation": "`update-grub` schreibt nur `grub.cfg`." }, { "id": "e", "text": "`dd if=/boot/grub of=/dev/sda`", "correct": false, "explanation": "`/boot/grub` ist ein Verzeichnis; so zerstört man im schlimmsten Fall die Platte." } ], "explanation": "Bei UEFI: `grub-install --target=x86_64-efi --efi-directory=/boot/efi`.", "references": ["man 8 grub-install"] }, { "id": "102.2-005", "objective": "102.2", "type": "fill", "difficulty": 1, "question": "Welche Variable in `/etc/default/grub` legt fest, wie viele Sekunden das GRUB-Menü wartet?", "answers": ["GRUB_TIMEOUT"], "explanation": "Nach Änderung `update-grub` bzw. `grub-mkconfig -o …` ausführen. `GRUB_DEFAULT` legt den Standardeintrag fest.", "references": ["info grub (Simple configuration)"] }, { "id": "102.2-006", "objective": "102.2", "type": "single", "difficulty": 2, "question": "Was bezeichnet `(hd0,1)` in **GRUB 2**?", "options": [ { "id": "a", "text": "Die erste Partition der ersten Festplatte", "correct": true, "explanation": "GRUB 2 zählt Platten ab 0, Partitionen ab 1." }, { "id": "b", "text": "Die zweite Partition der ersten Festplatte", "correct": false, "explanation": "So wäre es bei GRUB Legacy (Partitionen ab 0)." }, { "id": "c", "text": "Die erste Partition der zweiten Festplatte", "correct": false, "explanation": "Die zweite Platte wäre `hd1`." }, { "id": "d", "text": "Die ganze erste Festplatte", "correct": false, "explanation": "Das wäre `(hd0)`." }, { "id": "e", "text": "Das CD-Laufwerk", "correct": false, "explanation": "Optische Laufwerke heißen meist `(cd)`." } ], "explanation": "Oft mit Tabellentyp: `(hd0,gpt1)` bzw. `(hd0,msdos1)`.", "references": ["info grub (Device syntax)"] }, { "id": "102.2-007", "objective": "102.2", "type": "single", "difficulty": 2, "question": "Wo trägt man bei GRUB 2 **dauerhaft** zusätzliche Kernel-Parameter für alle Einträge ein?", "options": [ { "id": "a", "text": "In `GRUB_CMDLINE_LINUX` bzw. `GRUB_CMDLINE_LINUX_DEFAULT` in `/etc/default/grub`, danach `update-grub`", "correct": true, "explanation": "`grub-mkconfig` übernimmt die Werte in jede `linux`-Zeile." }, { "id": "b", "text": "Direkt in `/boot/grub/grub.cfg`", "correct": false, "explanation": "Wird bei der nächsten Neuerzeugung überschrieben." }, { "id": "c", "text": "In `/proc/cmdline`", "correct": false, "explanation": "Nur lesbar und nur die Anzeige des laufenden Starts." }, { "id": "d", "text": "In `/etc/sysctl.conf`", "correct": false, "explanation": "Setzt Laufzeitparameter (`/proc/sys`), keine Boot-Parameter." }, { "id": "e", "text": "In `/etc/modprobe.d/`", "correct": false, "explanation": "Optionen für Kernelmodule, keine Kernel-Befehlszeile." } ], "explanation": "`GRUB_CMDLINE_LINUX_DEFAULT` gilt nur für normale Einträge, nicht für den Recovery-Modus.", "references": ["info grub (Simple configuration)"] }, { "id": "102.3-003", "objective": "102.3", "type": "fill", "difficulty": 1, "question": "Welche Umgebungsvariable nennt zusätzliche Verzeichnisse, in denen der dynamische Linker **vorrangig** nach Shared Libraries sucht?", "answers": ["LD_LIBRARY_PATH"], "explanation": "Mehrere Pfade durch `:` getrennt. Für Programme mit SUID wird sie aus Sicherheitsgründen ignoriert.", "references": ["man 8 ld.so"] }, { "id": "102.3-004", "objective": "102.3", "type": "single", "difficulty": 2, "question": "In welcher Datei legt `ldconfig` den Cache der bekannten Shared Libraries ab?", "options": [ { "id": "a", "text": "`/etc/ld.so.cache`", "correct": true, "explanation": "Binärer Cache, den der dynamische Linker beim Programmstart liest." }, { "id": "b", "text": "`/etc/ld.so.conf`", "correct": false, "explanation": "Konfiguration der zusätzlichen Suchpfade." }, { "id": "c", "text": "`/etc/ld.so.preload`", "correct": false, "explanation": "Liste von Bibliotheken, die jedem Programm vorab geladen werden." }, { "id": "d", "text": "`/lib64/ld-linux-x86-64.so.2`", "correct": false, "explanation": "Das ist der dynamische Linker selbst." }, { "id": "e", "text": "`/proc/ld`", "correct": false, "explanation": "Diesen Pfad gibt es nicht." } ], "explanation": "Bibliotheksnamen: `libname.so.` (soname), dazu Symlinks; `ldconfig` pflegt sie.", "references": ["man 8 ldconfig"] }, { "id": "102.4-006", "objective": "102.4", "type": "single", "difficulty": 1, "question": "Wie installiert man die heruntergeladene Datei `tool_1.2_amd64.deb` mit dpkg?", "options": [ { "id": "a", "text": "`dpkg -i tool_1.2_amd64.deb`", "correct": true, "explanation": "`-i` (install) installiert bzw. aktualisiert aus der Datei." }, { "id": "b", "text": "`dpkg -x tool_1.2_amd64.deb`", "correct": false, "explanation": "`-x` entpackt nur den Inhalt in ein Verzeichnis." }, { "id": "c", "text": "`dpkg -c tool_1.2_amd64.deb`", "correct": false, "explanation": "`-c` listet den Inhalt." }, { "id": "d", "text": "`dpkg -I tool_1.2_amd64.deb`", "correct": false, "explanation": "`-I` zeigt Informationen (control) zur Datei." }, { "id": "e", "text": "`dpkg -r tool_1.2_amd64.deb`", "correct": false, "explanation": "`-r` entfernt ein installiertes Paket." } ], "explanation": "dpkg löst keine Abhängigkeiten auf; fehlende Pakete holt anschließend `apt-get install -f`. Mit apt direkt: `apt install ./tool_1.2_amd64.deb`.", "references": ["man 1 dpkg"] }, { "id": "102.4-007", "objective": "102.4", "type": "fill", "difficulty": 1, "question": "Mit welchem `apt-cache`-Aufruf (Befehl und Unterbefehl, ohne Suchbegriff) durchsucht man Paketnamen und -beschreibungen nach einem Stichwort?", "answers": ["apt-cache search"], "explanation": "Beispiel: `apt-cache search webserver`. Details zu einem Paket: `apt-cache show `.", "references": ["man 8 apt-cache"] }, { "id": "102.4-008", "objective": "102.4", "type": "single", "difficulty": 2, "question": "Nach `dpkg -i` meldet dpkg fehlende Abhängigkeiten. Welcher Befehl installiert sie nach und schließt die Installation ab?", "options": [ { "id": "a", "text": "`apt-get install -f`", "correct": true, "explanation": "`-f` (fix-broken) installiert fehlende Abhängigkeiten aus den Quellen." }, { "id": "b", "text": "`dpkg --configure -a`", "correct": false, "explanation": "Konfiguriert entpackte Pakete, lädt aber keine fehlenden Pakete." }, { "id": "c", "text": "`apt-get update`", "correct": false, "explanation": "Aktualisiert nur die Paketlisten." }, { "id": "d", "text": "`apt-get autoclean`", "correct": false, "explanation": "Löscht veraltete .deb-Dateien aus dem Cache." }, { "id": "e", "text": "`apt-get check`", "correct": false, "explanation": "Prüft nur auf Probleme, behebt nichts." } ], "explanation": "`apt-get install -f` ohne Paketnamen versucht, das System in einen konsistenten Zustand zu bringen.", "references": ["man 8 apt-get"] }, { "id": "102.4-009", "objective": "102.4", "type": "single", "difficulty": 2, "question": "Welche Zeile ist ein gültiger Eintrag in `/etc/apt/sources.list`?", "options": [ { "id": "a", "text": "`deb http://deb.debian.org/debian bookworm main`", "correct": true, "explanation": "Typ, URI, Distribution (Suite), Komponente(n)." }, { "id": "b", "text": "`http://deb.debian.org/debian deb bookworm main`", "correct": false, "explanation": "Der Typ `deb` bzw. `deb-src` steht am Anfang." }, { "id": "c", "text": "`repo=http://deb.debian.org/debian`", "correct": false, "explanation": "Das ist keine sources.list-Syntax." }, { "id": "d", "text": "`deb bookworm main http://deb.debian.org/debian`", "correct": false, "explanation": "Die URI steht direkt nach dem Typ." }, { "id": "e", "text": "`[main] baseurl=http://deb.debian.org/debian`", "correct": false, "explanation": "Ähnelt yum-Repo-Dateien, nicht apt." } ], "explanation": "Neueres Format: `*.sources`-Dateien (deb822) unter `/etc/apt/sources.list.d/` mit `Types:`, `URIs:`, `Suites:`, `Components:`.", "references": ["man 5 sources.list"] }, { "id": "102.4-010", "objective": "102.4", "type": "multi", "difficulty": 2, "question": "Mit welchen Befehlen sieht man die **Abhängigkeiten** eines Debian-Pakets aus den Paketquellen?", "options": [ { "id": "a", "text": "`apt-cache depends nginx`", "correct": true, "explanation": "Listet Depends, Recommends, Conflicts usw." }, { "id": "b", "text": "`apt-cache show nginx`", "correct": true, "explanation": "Zeigt die Paketbeschreibung inklusive Feld `Depends:`." }, { "id": "c", "text": "`dpkg -L nginx`", "correct": false, "explanation": "Listet die Dateien eines installierten Pakets." }, { "id": "d", "text": "`apt-get download nginx`", "correct": false, "explanation": "Lädt nur die .deb-Datei herunter." }, { "id": "e", "text": "`apt-get autoremove nginx`", "correct": false, "explanation": "Entfernt nicht mehr benötigte Abhängigkeiten." } ], "explanation": "Umgekehrte Richtung (wer hängt von X ab): `apt-cache rdepends `.", "references": ["man 8 apt-cache"] }, { "id": "102.4-011", "objective": "102.4", "type": "single", "difficulty": 2, "question": "Was bedeutet der Status `ii` am Zeilenanfang der Ausgabe von `dpkg -l`?", "options": [ { "id": "a", "text": "Gewünscht: installieren, tatsächlich: installiert", "correct": true, "explanation": "Erstes Zeichen = gewünschter Zustand, zweites = aktueller Zustand." }, { "id": "b", "text": "Entfernt, aber Konfigurationsdateien vorhanden", "correct": false, "explanation": "Das ist `rc`." }, { "id": "c", "text": "Installation abgebrochen, Paket defekt", "correct": false, "explanation": "Das zeigt z. B. `iU` (unpacked) oder `iF` (half-configured)." }, { "id": "d", "text": "Paket ist zur Aktualisierung vorgemerkt", "correct": false, "explanation": "Ein solcher Status steht nicht in den ersten beiden Zeichen." }, { "id": "e", "text": "Paket ist nicht bekannt", "correct": false, "explanation": "Unbekannte Pakete erscheinen gar nicht oder als `un`." } ], "explanation": "Installierte Pakete zählen: `dpkg -l | grep '^ii' | wc -l`.", "references": ["man 1 dpkg-query"] }, { "id": "102.5-006", "objective": "102.5", "type": "single", "difficulty": 1, "question": "Welcher dnf-Befehl sucht Pakete anhand eines Stichworts in Name und Beschreibung?", "options": [ { "id": "a", "text": "`dnf search nginx`", "correct": true, "explanation": "Durchsucht Namen und Zusammenfassungen in den Repositories." }, { "id": "b", "text": "`dnf info nginx`", "correct": false, "explanation": "Zeigt Details zu einem bekannten Paket." }, { "id": "c", "text": "`dnf provides nginx`", "correct": false, "explanation": "Sucht, welches Paket eine Datei oder Fähigkeit bereitstellt." }, { "id": "d", "text": "`dnf check-update`", "correct": false, "explanation": "Listet verfügbare Aktualisierungen." }, { "id": "e", "text": "`dnf history`", "correct": false, "explanation": "Zeigt vergangene Transaktionen." } ], "explanation": "Die meisten Unterbefehle funktionieren gleich mit `yum`.", "references": ["man 8 dnf"] }, { "id": "102.5-007", "objective": "102.5", "type": "fill", "difficulty": 2, "question": "Mit welchem dnf-Unterbefehl (Befehl und Unterbefehl, ohne Argument) findet man heraus, welches Paket eine Datei wie `/usr/bin/dig` bereitstellt – auch wenn es nicht installiert ist?", "answers": ["dnf provides", "dnf whatprovides", "yum provides", "yum whatprovides"], "explanation": "Für installierte Pakete genügt `rpm -qf`; `provides` durchsucht die Repositories.", "references": ["man 8 dnf"] }, { "id": "102.5-008", "objective": "102.5", "type": "single", "difficulty": 1, "question": "Wo liegen bei yum bzw. dnf die Definitionen der Paket-Repositories?", "options": [ { "id": "a", "text": "In `*.repo`-Dateien unter `/etc/yum.repos.d/`", "correct": true, "explanation": "Abschnitte mit `[id]`, `name=`, `baseurl=` bzw. `metalink=`, `enabled=`, `gpgcheck=`." }, { "id": "b", "text": "In `/etc/apt/sources.list`", "correct": false, "explanation": "Das ist apt (Debian)." }, { "id": "c", "text": "In `/var/lib/rpm/`", "correct": false, "explanation": "Dort liegt die RPM-Datenbank der installierten Pakete." }, { "id": "d", "text": "In `/etc/zypp/repos.d/`", "correct": false, "explanation": "Das ist zypper (openSUSE)." }, { "id": "e", "text": "In `/etc/rpmrc`", "correct": false, "explanation": "Allgemeine rpm-Einstellungen, keine Repositories." } ], "explanation": "Globale Einstellungen: `/etc/dnf/dnf.conf` bzw. `/etc/yum.conf`. Repos auflisten: `dnf repolist`.", "references": ["man 5 yum.conf", "man 5 dnf.conf"] }, { "id": "102.5-009", "objective": "102.5", "type": "single", "difficulty": 2, "question": "`rpm -V openssh-server` gibt die Zeile `S.5....T. c /etc/ssh/sshd_config` aus. Was bedeutet sie?", "options": [ { "id": "a", "text": "Größe, Prüfsumme und Änderungszeit der Konfigurationsdatei weichen vom Paketstand ab.", "correct": true, "explanation": "`S` Größe, `5` Digest, `T` mtime; `c` kennzeichnet eine Konfigurationsdatei." }, { "id": "b", "text": "Die Datei fehlt.", "correct": false, "explanation": "Fehlende Dateien meldet rpm mit `missing`." }, { "id": "c", "text": "Nur die Rechte der Datei wurden geändert.", "correct": false, "explanation": "Rechteänderungen zeigt `M` an der zweiten Stelle." }, { "id": "d", "text": "Das Paket ist beschädigt und muss neu installiert werden.", "correct": false, "explanation": "Angepasste Konfigurationsdateien sind normal." }, { "id": "e", "text": "Die Signatur des Pakets ist ungültig.", "correct": false, "explanation": "Signaturen prüft `rpm -K paket.rpm`." } ], "explanation": "Ein Punkt bedeutet „Test bestanden“. Weitere Zeichen: `U` Eigentümer, `G` Gruppe, `L` Linkziel.", "references": ["man 8 rpm (Abschnitt VERIFY OPTIONS)"] }, { "id": "102.5-010", "objective": "102.5", "type": "multi", "difficulty": 2, "question": "Welche Aussagen zu zypper treffen zu?", "options": [ { "id": "a", "text": "`zypper install nano` installiert das Paket samt Abhängigkeiten.", "correct": true, "explanation": "Kurzform `zypper in nano`." }, { "id": "b", "text": "`zypper refresh` aktualisiert die Metadaten der Repositories.", "correct": true, "explanation": "Kurzform `zypper ref`; entspricht `apt-get update`." }, { "id": "c", "text": "`zypper search nano` installiert alle Treffer.", "correct": false, "explanation": "`search` sucht nur." }, { "id": "d", "text": "`zypper repos` löscht alle Repositories.", "correct": false, "explanation": "`repos` (`lr`) listet sie; entfernen: `removerepo`." }, { "id": "e", "text": "zypper verwaltet Debian-Pakete.", "correct": false, "explanation": "zypper arbeitet mit RPM-Paketen (openSUSE, SLES)." } ], "explanation": "Weitere: `zypper update`, `zypper remove`, `zypper addrepo`, `zypper what-provides`.", "references": ["man 8 zypper"] }, { "id": "102.5-011", "objective": "102.5", "type": "single", "difficulty": 1, "question": "Wie entfernt man das installierte Paket `nano` direkt mit rpm?", "options": [ { "id": "a", "text": "`rpm -e nano`", "correct": true, "explanation": "`-e` (erase) entfernt das Paket; abhängige Pakete verhindern das." }, { "id": "b", "text": "`rpm -r nano`", "correct": false, "explanation": "rpm kennt `-r` nicht zum Entfernen." }, { "id": "c", "text": "`rpm -U nano`", "correct": false, "explanation": "`-U` aktualisiert aus einer Paketdatei." }, { "id": "d", "text": "`rpm -qe nano`", "correct": false, "explanation": "Keine gültige Kombination." }, { "id": "e", "text": "`rpm -d nano`", "correct": false, "explanation": "`-d` gehört zu Abfragen (Dokumentationsdateien, `-qd`)." } ], "explanation": "Mit Abhängigkeitsauflösung: `dnf remove nano`.", "references": ["man 8 rpm"] }, { "id": "102.6-003", "objective": "102.6", "type": "single", "difficulty": 1, "question": "Was unterscheidet einen Linux-**Container** grundlegend von einer virtuellen Maschine?", "options": [ { "id": "a", "text": "Container teilen sich den Kernel des Hosts; eine VM bringt einen eigenen Kernel auf virtueller Hardware mit.", "correct": true, "explanation": "Container isolieren Prozesse über Namespaces und cgroups." }, { "id": "b", "text": "Container benötigen immer einen Hypervisor vom Typ 1.", "correct": false, "explanation": "Container brauchen gar keinen Hypervisor." }, { "id": "c", "text": "In einem Container läuft stets ein anderes Betriebssystem als Linux.", "correct": false, "explanation": "Linux-Container nutzen den Linux-Kernel des Hosts." }, { "id": "d", "text": "VMs starten schneller, weil sie keinen Kernel laden.", "correct": false, "explanation": "VMs booten einen eigenen Kernel; Container starten meist schneller." }, { "id": "e", "text": "Container haben keinen Zugriff auf Netzwerk.", "correct": false, "explanation": "Container haben normalerweise eigene virtuelle Netzwerkschnittstellen." } ], "explanation": "Begriffe aus 102.6: Systemcontainer (vollständiges Userland) und Anwendungscontainer (einzelne Anwendung).", "references": ["man 7 namespaces", "man 7 cgroups"] }, { "id": "102.6-004", "objective": "102.6", "type": "multi", "difficulty": 2, "question": "Welche Aussagen zur Virtualisierung treffen zu?", "options": [ { "id": "a", "text": "Paravirtualisierte Treiber (z. B. virtio) verbessern die I/O-Leistung von Gästen.", "correct": true, "explanation": "Der Gast weiß, dass er virtualisiert läuft, und spricht mit dem Hypervisor über effiziente Schnittstellen." }, { "id": "b", "text": "Ein Hypervisor vom Typ 1 läuft direkt auf der Hardware.", "correct": true, "explanation": "Beispiele: Xen, KVM (als Teil des Linux-Kernels), ESXi. Typ 2 läuft auf einem Host-Betriebssystem." }, { "id": "c", "text": "Jeder Container enthält einen eigenen Kernel.", "correct": false, "explanation": "Container nutzen den Kernel des Hosts." }, { "id": "d", "text": "cloud-init läuft auf dem Hypervisor und konfiguriert alle Gäste von außen.", "correct": false, "explanation": "cloud-init läuft **im** Gast beim ersten Start." }, { "id": "e", "text": "Ohne Gasterweiterungen kann eine VM nicht starten.", "correct": false, "explanation": "Gasterweiterungen verbessern Leistung und Integration, sind aber nicht nötig." } ], "explanation": "In VMs zeigt `systemd-detect-virt` die erkannte Virtualisierung an.", "references": ["man 1 systemd-detect-virt"] } ] }