Comment créer / dev / null?

65

J'ai supprimé mon / dev / null. Comment puis-je le restaurer?

LanceBaynes
la source
6
Une fois, j’ai trouvé que / dev / null était remplacé par un fichier normal que seul root pouvait écrire. J'ai pensé un instant que je devrais tout réinstaller, mais comme mentionné ci-dessous, la récupération est inutile si vous connaissez le truc.
Stuart Woodward
1
J'ai réussi à supprimer / dev / null en obtenant que mon tube soit incorrect en retournant $ & & around lors de l'exécution d'une commande rm dans un script. Aie!
papillotement

Réponses:

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

Utilisez cette commande pour créer /dev/nullou utiliser la null(4)page de manuel pour obtenir de l'aide supplémentaire.

harish.venkat
la source
5
Pour être complet, notons que cela s’applique à tous les systèmes Linux; d'autres systèmes peuvent avoir des numéros différents.
Random832
2
De plus, cela ne configure que le fichier de périphérique lui-même, il ne restaure pas ses autorisations. Vous devrez le faire chmod go+wmanuellement.
Attila O.
7
Le nombre de la bête!
wefwefa3
7
mknod -m 0666 /dev/null c 1 3- même chose mais plus court
fnkr
1
mknod -m 0666 /dev/null c 1 3a parfaitement fonctionné pour restaurer / dev / null sous CentOS 7, juste pour le faire savoir.
Bozzy
32

Sous de nombreux ordinateurs traditionnels, vous pouvez recréer des périphériques avec leurs autorisations par défaut avec le MAKEDEVscript . Ce script est traditionnellement dans, /devmais est /sbinsur Ubuntu. Transmettez-lui un argument indiquant quels périphériques vous souhaitez créer. sur Ubuntu, c’est std(vous pouvez MAKEDEV nullaussi écrire , créer nullainsi que plusieurs autres périphériques).

Sous les systèmes Linux modernes exécutant udev , vous pouvez demander à udev de recréer tout ou partie des périphériques en fonction des pilotes disponibles et du matériel connecté, via udevadm trigger:

udevadm trigger --sysname-match=null
Gilles, arrête de faire le mal
la source
Cette réponse est-elle toujours d'actualité? Je suis sur CentOS 7 et je viens d’écraser mon / dev / null par erreur, l’ udevadm trigger --sysname-match=nullastuce n’a pas fonctionné pour moi, elle mknod -m 0666 /dev/null c 1 3a parfaitement fonctionné.
Bozzy
@ Bozzy Je sais que cela a fonctionné avec le pré-système udev. Je n'ai pas essayé récemment, mais pour autant que je sache, cela devrait toujours fonctionner. Si vous ajoutez --verbose, est-ce que ça liste /sys/devices/virtual/mem/null ?
Gilles, arrête de faire le mal
Oui, ça en fait la liste. J'ai essayé de réécrire à nouveau / dev / null sur ma machine de développement, mais étrangement, je suis incapable de le faire ici, je ne peux donc pas faire une analyse plus approfondie maintenant ...
Bozzy le