{ "$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 ", "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": "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 =`.", "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 `.", "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"] } ] }