Ich habe einmal festgestellt, dass / dev / null durch eine normale Datei ersetzt wurde, in die nur root schreiben konnte. Ich dachte für einen Moment, dass ich alles neu installieren müsste, aber wie unten erwähnt, ist die Wiederherstellung trival, wenn Sie den Trick kennen.
Stuart Woodward
1
Ich habe es geschafft, / dev / null zu entfernen, indem ich beim Ausführen eines rm-Befehls in einem Skript die Pipe falsch herumgestellt habe. Autsch!
Flickerfly
Antworten:
81
mknod /dev/null c 1 3
chmod 666 /dev/null
Verwenden Sie diesen Befehl, um /dev/nulleine null(4)Hilfeseite zu erstellen oder zu verwenden .
Der Vollständigkeit halber möchte ich darauf hinweisen, dass dies für alle Linux-basierten Systeme gilt. andere Systeme können andere Nummern haben.
Random832
2
Außerdem wird hierdurch nur die Gerätedatei selbst eingerichtet, und die Berechtigungen werden nicht wiederhergestellt. Du musst chmod go+wes manuell machen.
Attila O.
7
Die Nummer des Tieres!
wefwefa3
7
mknod -m 0666 /dev/null c 1 3- das gleiche, aber kürzer
fnkr
1
mknod -m 0666 /dev/null c 1 3hat perfekt funktioniert, um / dev / null auf CentOS 7 wiederherzustellen, nur um andere wissen zu lassen.
Bozzy
32
Unter vielen herkömmlichen Unices können Sie mit dem MAKEDEVSkript Geräte mit ihren Standardberechtigungen neu erstellen . Dieses Skript ist traditionell in Ubuntu enthalten /dev, befindet sich aber in /sbinUbuntu. Übergeben Sie ein Argument, das angibt, welche Geräte Sie erstellen möchten. auf Ubuntu ist das std(du kannst auch schreiben MAKEDEV null, das schafft nullso gut wie eine Reihe anderer Geräte).
Unter modernen Linux - Systemen mit udev , können Sie udev sagen alle oder einige Geräte basierend auf verfügbaren Treiber und angeschlossene Hardware zu erstellen, durch udevadm trigger:
Ist diese Antwort noch aktuell? Ich bin auf CentOS 7 und habe gerade aus Versehen mein / dev / null überschrieben, der udevadm trigger --sysname-match=nullTrick hat bei mir nicht funktioniert, während mknod -m 0666 /dev/null c 1 3er perfekt funktioniert hat.
Bozzy
@Bozzy Ich weiß, dass es mit dem Pre-Systemd udev funktioniert hat. Ich habe es in letzter Zeit nicht versucht, aber soweit ich weiß, sollte das immer noch funktionieren. Wenn Sie hinzufügen --verbose, wird es aufgelistet /sys/devices/virtual/mem/null ?
Gilles
Ja, es listet das auf. Ich habe versucht, / dev / null auf meinem Dev-Rechner erneut zu überschreiben, aber seltsamerweise kann ich das hier nicht tun, sodass ich jetzt keine eingehendere Analyse durchführen kann ...
Antworten:
Verwenden Sie diesen Befehl, um
/dev/null
einenull(4)
Hilfeseite zu erstellen oder zu verwenden .quelle
chmod go+w
es manuell machen.mknod -m 0666 /dev/null c 1 3
- das gleiche, aber kürzermknod -m 0666 /dev/null c 1 3
hat perfekt funktioniert, um / dev / null auf CentOS 7 wiederherzustellen, nur um andere wissen zu lassen.Unter vielen herkömmlichen Unices können Sie mit dem
MAKEDEV
Skript Geräte mit ihren Standardberechtigungen neu erstellen . Dieses Skript ist traditionell in Ubuntu enthalten/dev
, befindet sich aber in/sbin
Ubuntu. Übergeben Sie ein Argument, das angibt, welche Geräte Sie erstellen möchten. auf Ubuntu ist dasstd
(du kannst auch schreibenMAKEDEV null
, das schafftnull
so gut wie eine Reihe anderer Geräte).Unter modernen Linux - Systemen mit udev , können Sie udev sagen alle oder einige Geräte basierend auf verfügbaren Treiber und angeschlossene Hardware zu erstellen, durch
udevadm trigger
:quelle
udevadm trigger --sysname-match=null
Trick hat bei mir nicht funktioniert, währendmknod -m 0666 /dev/null c 1 3
er perfekt funktioniert hat.--verbose
, wird es aufgelistet/sys/devices/virtual/mem/null
?