{
"$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"]
}
]
}