Jak stworzyć / dev / null?


65

Usunąłem / dev / null. Jak mogę go przywrócić?


6
Kiedyś odkryłem, że / dev / null został zastąpiony normalnym plikiem, do którego tylko root mógł pisać. Przez chwilę myślałem, że będę musiał ponownie zainstalować wszystko, ale jak wspomniano poniżej, odzyskiwanie jest proste, jeśli znasz tę sztuczkę.
Stuart Woodward

1
Udało mi się usunąć / dev / null, błędnie odwracając moją rurkę $ i & podczas uruchamiania polecenia rm w skrypcie. Ojej!
flickerfly

Odpowiedzi:


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

Użyj tych poleceń, aby utworzyć stronę pomocy /dev/nulllub skorzystać null(4)z niej w celu uzyskania dalszej pomocy.


5
Dla kompletności chciałbym zauważyć, że dotyczy to wszystkich systemów opartych na systemie Linux; inne systemy mogą mieć różne numery.
Random832,

2
To tylko konfiguruje sam plik urządzenia, nie przywróci uprawnień. Musisz to chmod go+wzrobić ręcznie.
Attila O.

7
Numer bestii!
wefwefa3

7
mknod -m 0666 /dev/null c 1 3- to samo, ale krócej
fnkr

1
mknod -m 0666 /dev/null c 1 3działał idealnie, aby przywrócić / dev / null na CentOS 7, tylko po to, aby poinformować innych.
Bozzy

32

W wielu tradycyjnych jednorożcach możesz ponownie tworzyć urządzenia z domyślnymi uprawnieniami za pomocą MAKEDEVskryptu . Ten skrypt jest tradycyjnie dostępny /devw /sbinUbuntu. Przekaż mu argument wskazujący, jakie urządzenia chcesz utworzyć; na Ubuntu, który std(możesz także pisać MAKEDEV null, który tworzy, nulla także wiele innych urządzeń).

W nowoczesnych systemach Linux z systemem udev możesz nakazać udev odtworzenie wszystkich lub niektórych urządzeń w oparciu o dostępne sterowniki i podłączony sprzęt, poprzez udevadm trigger:

udevadm trigger --sysname-match=null

Czy ta odpowiedź jest wciąż aktualna? Korzystam z CentOS 7 i właśnie przez pomyłkę nadpisałem / dev / null, udevadm trigger --sysname-match=nullsztuczka nie działała dla mnie, a mknod -m 0666 /dev/null c 1 3działała idealnie.
Bozzy

@Bozzy Wiem, że to działało z pre-systemd udev. Nie próbowałem ostatnio, ale o ile wiem, to powinno nadal działać. Jeśli dodasz --verbose, czy to lista /sys/devices/virtual/mem/null ?
Gilles

Tak, to wymienia. Próbowałem ponownie nadpisać / dev / null na mojej maszynie deweloperskiej, ale o dziwo nie jestem w stanie tego tutaj zrobić, więc nie mogę teraz przeprowadzić bardziej szczegółowej analizy ...
Bozzy
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.