Come creare / dev / null?


65

Ho cancellato il mio / dev / null. Come posso ripristinarlo?


6
Una volta ho scoperto che / dev / null è stato sostituito con un file normale su cui solo root poteva scrivere. Ho pensato per un momento che avrei dovuto reinstallare tutto, ma come detto di seguito, il recupero è trivalente se conosci il trucco.
Stuart Woodward,

1
Sono riuscito a rimuovere / dev / null ottenendo la mia pipe sbagliata lanciando $ and & around quando eseguo un comando rm in uno script. Ahia!
flickerfly,

Risposte:


81
mknod /dev/null c 1 3
chmod 666 /dev/null

Utilizzare questi comandi per creare /dev/nullo utilizzare la null(4)manpage per ulteriore aiuto.


5
Per completezza, noterei che questo vale per tutti i sistemi basati su Linux; altri sistemi possono avere numeri diversi.
Casuale 832,

2
Anche questo imposta solo il file del dispositivo stesso, non ripristinerà le sue autorizzazioni. Dovrai chmod go+wfarlo manualmente.
Attila O.,

7
Il numero della bestia!
wefwefa3,

7
mknod -m 0666 /dev/null c 1 3- stessa cosa ma più breve
fnkr

1
mknod -m 0666 /dev/null c 1 3ha funzionato perfettamente per ripristinare / dev / null su CentOS 7, solo per far sapere agli altri.
Bozzy,

32

In molti unices tradizionali, puoi ricreare i dispositivi con le loro autorizzazioni predefinite con lo MAKEDEVscript . Questo script è tradizionalmente dentro /devma è /sbinsu Ubuntu. Passa un argomento che indica quali dispositivi vuoi creare; su Ubuntu che è std(puoi anche scrivere MAKEDEV null, che crea nullcosì come un numero di altri dispositivi).

Con i moderni sistemi Linux che eseguono udev , puoi dire a udev di ricreare tutti o alcuni dispositivi basati sui driver disponibili e sull'hardware connesso, attraverso udevadm trigger:

udevadm trigger --sysname-match=null

Questa risposta è ancora attuale? Sono su CentOS 7 e ho appena sovrascritto il mio / dev / null per errore, il udevadm trigger --sysname-match=nulltrucco non ha funzionato per me, mentre ha mknod -m 0666 /dev/null c 1 3funzionato perfettamente.
Bozzy,

@Bozzy So che ha funzionato con il pre-systemd udev. Non ci ho provato di recente, ma per quanto ne so questo dovrebbe ancora funzionare. Se aggiungi --verbose, elenca /sys/devices/virtual/mem/null ?
Gilles 'SO- smetti di essere malvagio' il

Sì, lo elenca. Ho provato a sovrascrivere di nuovo / dev / null sulla mia macchina di sviluppo, ma stranamente non riesco a farlo qui, quindi non posso fare un'analisi più approfondita ora ...
Bozzy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.