Files
2026-10-30 15:40:37 +01:00

222 lines
15 KiB
JSON
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$schema": "../schema/questions.schema.json",
"format": "lpic-sim-questions",
"meta": {
"file": "questions_101_set2.json",
"brief": "Zweiter Fragensatz zu Topic 101 Systemarchitektur (LPIC-1 101-500, Objectives 5.0)",
"author": "Björn Runden <br@runden.de>",
"owner": "Björn Runden <br@runden.de>",
"assist": "KI-unterstützt (Claude Opus 5.5), geprüft von Björn Runden <br@runden.de>",
"version": "0.1.0 (30.10.2026)"
},
"exam": "lpic1-101",
"questions": [
{
"id": "101.1-004",
"objective": "101.1",
"type": "single",
"difficulty": 1,
"question": "Welcher Befehl listet die am PCI-Bus erkannten Geräte auf, z. B. Netzwerk- und Grafikkarten?",
"options": [
{ "id": "a", "text": "`lspci`", "correct": true, "explanation": "Liest die PCI-Informationen aus `/sys` bzw. `/proc/bus/pci`; `-k` zeigt zusätzlich den Treiber." },
{ "id": "b", "text": "`lsusb`", "correct": false, "explanation": "Listet USB-Geräte." },
{ "id": "c", "text": "`lsblk`", "correct": false, "explanation": "Listet Blockgeräte (Platten, Partitionen)." },
{ "id": "d", "text": "`lsmod`", "correct": false, "explanation": "Listet geladene Kernelmodule." },
{ "id": "e", "text": "`lscpu`", "correct": false, "explanation": "Zeigt Informationen zur CPU-Architektur." }
],
"explanation": "`lspci -v` ausführlich, `lspci -nn` mit Hersteller- und Geräte-IDs; `lsusb -t` zeigt den USB-Baum.",
"references": ["man 8 lspci"]
},
{
"id": "101.1-005",
"objective": "101.1",
"type": "fill",
"difficulty": 1,
"question": "Welcher Befehl (nur der Name) entlädt ein Kernelmodul, **ohne** Abhängigkeiten zu berücksichtigen – das Gegenstück zu `insmod`?",
"answers": ["rmmod"],
"explanation": "`rmmod` entfernt genau ein Modul; mit Abhängigkeiten entlädt man über `modprobe -r`.",
"references": ["man 8 rmmod"]
},
{
"id": "101.1-006",
"objective": "101.1",
"type": "single",
"difficulty": 2,
"question": "Das Kernelmodul `nouveau` soll beim Start **nicht** automatisch geladen werden. Wie erreicht man das üblicherweise?",
"options": [
{ "id": "a", "text": "Eine Datei unter `/etc/modprobe.d/` mit der Zeile `blacklist nouveau` anlegen", "correct": true, "explanation": "modprobe wertet die Konfiguration in `/etc/modprobe.d/*.conf` aus; ggf. initramfs neu erzeugen." },
{ "id": "b", "text": "`nouveau` in `/etc/modules` eintragen", "correct": false, "explanation": "`/etc/modules` (Debian) listet Module, die beim Start **geladen** werden sollen." },
{ "id": "c", "text": "Die Zeile `nouveau` aus `/proc/modules` löschen", "correct": false, "explanation": "`/proc/modules` ist nur eine Laufzeitanzeige und nicht beschreibbar." },
{ "id": "d", "text": "`blacklist nouveau` in `/etc/sysctl.conf` eintragen", "correct": false, "explanation": "`sysctl.conf` setzt Kernelparameter unter `/proc/sys`, keine Modulregeln." },
{ "id": "e", "text": "`rmmod nouveau` einmal ausführen", "correct": false, "explanation": "Entlädt das Modul nur bis zum nächsten Start." }
],
"explanation": "Modulparameter setzt man ebenfalls dort: `options <modul> <param>=<wert>`.",
"references": ["man 5 modprobe.d"]
},
{
"id": "101.1-007",
"objective": "101.1",
"type": "multi",
"difficulty": 2,
"question": "Welche Aussagen zu udev treffen zu?",
"options": [
{ "id": "a", "text": "udev legt Gerätedateien unter `/dev` dynamisch an, wenn der Kernel neue Hardware meldet.", "correct": true, "explanation": "udev reagiert auf Kernel-Ereignisse (uevents) und verwaltet `/dev`." },
{ "id": "b", "text": "Eigene udev-Regeln legt man unter `/etc/udev/rules.d/` ab.", "correct": true, "explanation": "Regeln dort haben Vorrang vor denen der Pakete unter `/usr/lib/udev/rules.d/` bzw. `/lib/udev/rules.d/`." },
{ "id": "c", "text": "udev speichert seine Regeln in `/proc/udev`.", "correct": false, "explanation": "Einen solchen Pfad gibt es nicht." },
{ "id": "d", "text": "`udevadm monitor` löscht alle udev-Regeln.", "correct": false, "explanation": "`udevadm monitor` zeigt eintreffende Ereignisse live an." },
{ "id": "e", "text": "D-Bus ist das Dateisystem, in dem udev die Gerätedateien anlegt.", "correct": false, "explanation": "D-Bus ist ein Nachrichtensystem zwischen Prozessen; Gerätedateien liegen im devtmpfs unter `/dev`." }
],
"explanation": "Beispiel einer Regel: feste Namen für Geräte über Attribute wie Seriennummer. `udevadm info` zeigt die Attribute eines Geräts.",
"references": ["man 7 udev", "man 8 udevadm"]
},
{
"id": "101.2-005",
"objective": "101.2",
"type": "single",
"difficulty": 1,
"question": "Im GRUB-2-Menü soll für **einen** Start ein zusätzlicher Kernel-Parameter gesetzt werden. Was tut man?",
"options": [
{ "id": "a", "text": "Den Eintrag markieren, `e` drücken, die `linux`-Zeile ergänzen und mit Strg+X bzw. F10 starten", "correct": true, "explanation": "Die Änderung gilt nur für diesen Start; nichts wird gespeichert." },
{ "id": "b", "text": "`/boot/grub/grub.cfg` bearbeiten und neu starten", "correct": false, "explanation": "Wirkt dauerhaft (bis zur nächsten Neuerzeugung) – und die Datei soll man nicht von Hand ändern." },
{ "id": "c", "text": "`c` drücken und `reboot` eingeben", "correct": false, "explanation": "`c` öffnet die GRUB-Kommandozeile; `reboot` startet nur neu." },
{ "id": "d", "text": "Im BIOS-Setup den Parameter eintragen", "correct": false, "explanation": "Die Firmware kennt keine Kernel-Parameter." },
{ "id": "e", "text": "Nach dem Start `echo param > /proc/cmdline` ausführen", "correct": false, "explanation": "`/proc/cmdline` ist nur lesbar, und der Kernel läuft dann bereits." }
],
"explanation": "Typische Einmal-Parameter für die Fehlersuche: `systemd.unit=rescue.target`, `nomodeset`, `init=/bin/bash`.",
"references": ["info grub"]
},
{
"id": "101.2-006",
"objective": "101.2",
"type": "fill",
"difficulty": 2,
"question": "Welcher Kernel-Parameter in der Form `systemd.unit=…` lässt systemd direkt in das Rettungs-Target starten? (vollständiger Parameter)",
"answers": ["systemd.unit=rescue.target"],
"explanation": "Für eine minimale Notfall-Shell: `systemd.unit=emergency.target`. Klassisch wirken auch `single` bzw. `1`.",
"references": ["man 7 kernel-command-line", "man 7 systemd.special"]
},
{
"id": "101.2-007",
"objective": "101.2",
"type": "single",
"difficulty": 2,
"question": "Mit welchem Werkzeug zeigt und ändert man unter Linux die **Boot-Einträge der UEFI-Firmware** (z. B. Bootreihenfolge)?",
"options": [
{ "id": "a", "text": "`efibootmgr`", "correct": true, "explanation": "Liest und schreibt die EFI-Variablen; `-v` zeigt Details, `-o` setzt die Reihenfolge." },
{ "id": "b", "text": "`mokutil`", "correct": false, "explanation": "Verwaltet Machine Owner Keys für Secure Boot." },
{ "id": "c", "text": "`update-initramfs`", "correct": false, "explanation": "Erzeugt die initramfs neu." },
{ "id": "d", "text": "`fdisk -l`", "correct": false, "explanation": "Zeigt Partitionstabellen." },
{ "id": "e", "text": "`lsblk`", "correct": false, "explanation": "Listet Blockgeräte." }
],
"explanation": "Bei UEFI startet die Firmware eine `.efi`-Datei von der EFI-Systempartition; die Einträge stehen im NVRAM.",
"references": ["man 8 efibootmgr"]
},
{
"id": "101.2-008",
"objective": "101.2",
"type": "single",
"difficulty": 1,
"question": "Welche Datei legt bei **SysV-init** den Standard-Runlevel und das Startverhalten fest?",
"options": [
{ "id": "a", "text": "`/etc/inittab`", "correct": true, "explanation": "z. B. `id:3:initdefault:` für Runlevel 3." },
{ "id": "b", "text": "`/etc/init.d/`", "correct": false, "explanation": "Verzeichnis mit den Startskripten der Dienste." },
{ "id": "c", "text": "`/etc/rc.local`", "correct": false, "explanation": "Lokales Skript, das am Ende des Starts läuft." },
{ "id": "d", "text": "`/etc/systemd/system/default.target`", "correct": false, "explanation": "Entspricht dem Standard-Runlevel bei **systemd**." },
{ "id": "e", "text": "`/boot/grub/grub.cfg`", "correct": false, "explanation": "Konfiguration des Bootloaders." }
],
"explanation": "SysV-init: `/etc/inittab` → Skripte in `/etc/rcN.d/` (S = starten, K = beenden), die auf `/etc/init.d/` verlinken.",
"references": ["man 5 inittab"]
},
{
"id": "101.2-009",
"objective": "101.2",
"type": "multi",
"difficulty": 2,
"question": "Welche Aussagen zur Analyse des Systemstarts treffen zu?",
"options": [
{ "id": "a", "text": "`journalctl -b -1` zeigt die Meldungen des vorherigen Starts, sofern das Journal persistent gespeichert wird.", "correct": true, "explanation": "Ohne `/var/log/journal` gibt es nur den aktuellen Start." },
{ "id": "b", "text": "`systemd-analyze blame` listet Units nach ihrer Startdauer.", "correct": true, "explanation": "Hilft, langsame Dienste zu finden; `systemd-analyze` allein zeigt die Gesamtzeit." },
{ "id": "c", "text": "`dmesg` zeigt die Meldungen aller bisherigen Starts.", "correct": false, "explanation": "Der Ring-Buffer enthält nur den laufenden Start." },
{ "id": "d", "text": "Der Bootloader wird vom Kernel geladen.", "correct": false, "explanation": "Umgekehrt: Der Bootloader lädt den Kernel." },
{ "id": "e", "text": "Die initramfs wird erst nach systemd geladen.", "correct": false, "explanation": "Die initramfs ist vor dem echten Root-Dateisystem aktiv; systemd läuft oft schon in ihr." }
],
"explanation": "Für klassische Systeme stehen Startmeldungen auch in `/var/log/messages` bzw. `/var/log/syslog`.",
"references": ["man 1 systemd-analyze", "man 1 journalctl"]
},
{
"id": "101.3-005",
"objective": "101.3",
"type": "single",
"difficulty": 1,
"question": "Der Befehl `runlevel` gibt `N 5` aus. Was bedeutet das?",
"options": [
{ "id": "a", "text": "Es gab keinen vorherigen Runlevel (N); der aktuelle ist 5.", "correct": true, "explanation": "Erstes Feld: vorheriger Runlevel, zweites: aktueller." },
{ "id": "b", "text": "Das System startet in 5 Minuten neu.", "correct": false, "explanation": "`runlevel` plant nichts." },
{ "id": "c", "text": "Netzwerk ist deaktiviert (N), 5 Benutzer sind angemeldet.", "correct": false, "explanation": "Mit Benutzern oder Netzwerk hat die Ausgabe nichts zu tun." },
{ "id": "d", "text": "Der aktuelle Runlevel ist N (normal), der vorherige 5.", "correct": false, "explanation": "Reihenfolge vertauscht; N bedeutet „none“." },
{ "id": "e", "text": "Runlevel 5 ist fehlgeschlagen.", "correct": false, "explanation": "Fehler zeigt `runlevel` nicht an." }
],
"explanation": "Unter systemd wird der Runlevel aus dem aktiven Target abgeleitet (`graphical.target` → 5).",
"references": ["man 8 runlevel"]
},
{
"id": "101.3-006",
"objective": "101.3",
"type": "fill",
"difficulty": 1,
"question": "Mit welchem `systemctl`-Befehl (vollständig) zeigt man das aktuelle **Standard-Target** an?",
"answers": ["systemctl get-default"],
"explanation": "Gegenstück: `systemctl set-default <target>`.",
"references": ["man 1 systemctl"]
},
{
"id": "101.3-007",
"objective": "101.3",
"type": "single",
"difficulty": 1,
"question": "Welcher Befehl sendet eine Nachricht an die Terminals **aller** angemeldeten Benutzer?",
"options": [
{ "id": "a", "text": "`wall`", "correct": true, "explanation": "write all: liest den Text von stdin oder als Argument." },
{ "id": "b", "text": "`write`", "correct": false, "explanation": "Schreibt an **einen** bestimmten Benutzer." },
{ "id": "c", "text": "`mesg`", "correct": false, "explanation": "Erlaubt bzw. verbietet den Empfang von Nachrichten am eigenen Terminal." },
{ "id": "d", "text": "`logger`", "correct": false, "explanation": "Schreibt ins Systemprotokoll." },
{ "id": "e", "text": "`notify`", "correct": false, "explanation": "Kein Standardbefehl für Terminalnachrichten." }
],
"explanation": "`shutdown` benachrichtigt angemeldete Benutzer ebenfalls per wall.",
"references": ["man 1 wall"]
},
{
"id": "101.3-008",
"objective": "101.3",
"type": "single",
"difficulty": 1,
"question": "Welcher Befehl startet ein systemd-System **sofort neu**?",
"options": [
{ "id": "a", "text": "`systemctl reboot`", "correct": true, "explanation": "Entspricht dem Wechsel zu `reboot.target`; ebenso `reboot` oder `shutdown -r now`." },
{ "id": "b", "text": "`systemctl restart`", "correct": false, "explanation": "Startet **Units** neu und erwartet einen Unit-Namen." },
{ "id": "c", "text": "`systemctl isolate poweroff.target`", "correct": false, "explanation": "Schaltet das System aus." },
{ "id": "d", "text": "`telinit 0`", "correct": false, "explanation": "Runlevel 0 hält bzw. schaltet aus." },
{ "id": "e", "text": "`shutdown -h now`", "correct": false, "explanation": "`-h` hält an bzw. schaltet aus." }
],
"explanation": "Weitere: `systemctl poweroff`, `systemctl halt`, `systemctl suspend`.",
"references": ["man 1 systemctl"]
},
{
"id": "101.3-009",
"objective": "101.3",
"type": "multi",
"difficulty": 1,
"question": "Welche Zuordnungen der klassischen SysV-Runlevels sind korrekt?",
"options": [
{ "id": "a", "text": "Runlevel 0: System anhalten (halt/poweroff)", "correct": true, "explanation": "`telinit 0` fährt herunter." },
{ "id": "b", "text": "Runlevel 6: Neustart", "correct": true, "explanation": "`telinit 6` startet neu." },
{ "id": "c", "text": "Runlevel 1: grafischer Mehrbenutzerbetrieb", "correct": false, "explanation": "Runlevel 1 ist der Einzelbenutzermodus." },
{ "id": "d", "text": "Runlevel 5: Einzelbenutzermodus", "correct": false, "explanation": "Runlevel 5 ist (bei vielen Distributionen) Mehrbenutzer mit grafischer Anmeldung." },
{ "id": "e", "text": "Runlevel 3: Neustart", "correct": false, "explanation": "Runlevel 3 ist Mehrbenutzer ohne grafische Oberfläche." }
],
"explanation": "Die Bedeutung von 2–5 war distributionsabhängig; 0, 1 und 6 sind überall gleich.",
"references": ["man 8 init"]
}
]
}