neue Fragn
This commit is contained in:
1 parent
07dbc01c92
commit
6a8035cced
16 files changed
+3422
-16
No files matched your search
@@ -0,0 +1,221 @@
|
||||
{
|
||||
"$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"]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user