Übersicht
mknod erstellt Dateien mit einem speziellen Zweck innerhalb des Dateisystems. Diese Dateien dienen als Schnittstellen zu bestimmten Geräten oder Kommunikationskanälen, anstatt tatsächliche Daten zu speichern. Blockgeräte stellen Geräte dar, die Daten in Blöcken übertragen, wie z. B. Festplatten, während Zeichensätze Geräte darstellen, die Daten zeichenweise übertragen, wie z. B. Terminals oder serielle Ports. FIFOs sind benannte Pipes, die zum Datenaustausch zwischen zwei oder mehr Prozessen verwendet werden.
Hauptanwendungsfälle
- Erstellung von Blockgerätedateien
- Erstellung von Zeichensatzdateien
- Erstellung von FIFOs (benannte Pipes)
Hauptoptionen
Der Befehl mknod verwendet Optionen, um die Art der zu erstellenden Spezialdatei anzugeben, und Argumente, um die Haupt- und Neben-Gerätenummern für Gerätedateien anzugeben.
Angabe des Dateityps
Angabe der Gerätenummern (nur für Block-/Zeichensätze)
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`mknod` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Der Befehl mknod sollte normalerweise mit Root-Rechten ausgeführt werden. Die folgenden Beispiele zeigen die gängige Verwendung.
Erstellung einer FIFO-Datei (benannte Pipe)
mknod my_pipe p
Erstellt eine FIFO-Datei, die für die Interprozesskommunikation verwendet wird.
Erstellung einer Blockgerätedatei (z.B. virtuelle Festplatte)
sudo mknod /dev/myblockdev b 8 16
Erstellt eine Blockgerätedatei mit der Hauptnummer 8 (SCSI/SATA-Festplatte) und der Neben-Nummer 16. Funktioniert nicht, wenn sie nicht mit einem tatsächlichen Gerät verbunden ist.
Erstellung einer Zeichensatzdatei (z.B. virtuelles Terminal)
sudo mknod /dev/mychardev c 4 64
Erstellt eine Zeichensatzdatei mit der Hauptnummer 4 (virtuelles Terminal) und der Neben-Nummer 64. Funktioniert nicht, wenn sie nicht mit einem tatsächlichen Gerät verbunden ist.
Überprüfung der erstellten Spezialdatei
ls -l my_pipe /dev/myblockdev /dev/mychardev
Verwendet den Befehl ls -l, um die Art und die Berechtigungen der erstellten Spezialdatei zu überprüfen. 'p' steht für FIFO, 'b' für Blockgerät und 'c' für Zeichensatz.
Tipps & Hinweise
Der Befehl mknod befasst sich mit wichtigen Teilen des Systems, daher ist bei der Verwendung besondere Vorsicht geboten.
Berechtigungen
- In den meisten Fällen muss mknod mit Root-Rechten (sudo) ausgeführt werden. Normale Benutzer können FIFO-Dateien erstellen, aber für Gerätedateien sind Root-Rechte aus Gründen der Systemintegrität erforderlich.
Verständnis der Gerätenummern
- Haupt- und Neben-Gerätenummern werden vom System-Kernel verwendet, um bestimmte Gerätetreiber und die von diesen Treibern verwalteten einzelnen Geräte zu identifizieren. Die Verwendung falscher Nummern kann zu Systemfehlfunktionen führen. Daher sollten Sie die korrekten Nummern überprüfen und verwenden. Sie können die Nummern vorhandener Geräte über die Befehle `/proc/devices` oder `ls -l /dev` nachschlagen.
Risiko von Dateisystemschäden
- Das Erstellen von Gerätedateien für nicht vorhandene Geräte oder die Verwendung von Nummern, die mit vorhandenen Gerätedateien kollidieren, kann zu Systeminstabilität oder Datenverlust führen. Verwenden Sie es nur, wenn unbedingt erforderlich, und mit äußerster Vorsicht.