Como criar / dev / null?

65

Eu apaguei meu / dev / null. Como posso restaurá-lo?

LanceBaynes
fonte
6
Certa vez, descobri que / dev / null foi substituído por um arquivo normal no qual somente o root pode gravar. Pensei por um momento que teria que reinstalar tudo, mas, como mencionado abaixo, a recuperação é trival se você souber o truque.
Stuart Woodward
11
Eu consegui remover o / dev / null errando o pipe ao rodar $ and & around ao executar um comando rm em um script. Ai!
Flickerfly

Respostas:

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

Use estes comandos para criar /dev/nullou usar a página de null(4)manual para obter mais ajuda.

harish.venkat
fonte
5
Para ser completo, eu observaria que isso se aplica a todos os sistemas baseados em Linux; outros sistemas podem ter números diferentes.
usar o seguinte código
2
Além disso, isso apenas configura o arquivo do dispositivo, não restaurando suas permissões. Você precisará fazer chmod go+wisso manualmente.
Attila O.
7
O número da besta!
wefwefa3
7
mknod -m 0666 /dev/null c 1 3- mesma coisa, mas menor
fnkr
11
mknod -m 0666 /dev/null c 1 3funcionou perfeitamente para restaurar / dev / null no CentOS 7, apenas para informar aos outros.
Bozzy 24/01
32

Em muitos departamentos tradicionais, você pode recriar dispositivos com suas permissões padrão com o MAKEDEVscript . Este script é tradicional, /devmas está no /sbinUbuntu. Passe um argumento que indica quais dispositivos você deseja criar; no Ubuntu é isso std(você pode escrever MAKEDEV nulltambém, isso cria nulle vários outros dispositivos).

Nos sistemas Linux modernos executando o udev , você pode dizer ao udev para recriar todos ou alguns dispositivos com base nos drivers disponíveis e no hardware conectado, através de udevadm trigger:

udevadm trigger --sysname-match=null
Gilles 'SO- parar de ser mau'
fonte
Esta resposta ainda é atual? Estou no CentOS 7 e substituí meu / dev / null por engano, o udevadm trigger --sysname-match=nulltruque não funcionou para mim, enquanto mknod -m 0666 /dev/null c 1 3funcionou perfeitamente.
Bozzy 24/01
@ Ozzy eu sei que funcionou com o udev pré-systemd. Não tentei recentemente, mas até onde sei, isso ainda deve funcionar. Se você adicionar --verbose, ele lista /sys/devices/virtual/mem/null ?
Gilles 'SO- stop be evil'
Sim, lista isso. Eu tentei substituir novamente / dev / null na minha máquina dev, mas estranhamente eu sou incapaz de fazê-lo aqui, então eu não posso fazer uma análise mais aprofundada agora ...
Bozzy