Bagaimana cara membuat / dev / null?

65

Saya menghapus / dev / null saya. Bagaimana saya bisa mengembalikannya?

LanceBaynes
sumber
6
Saya pernah menemukan bahwa / dev / null diganti dengan file normal yang hanya bisa di-root oleh root. Saya berpikir sejenak bahwa saya harus menginstal ulang semuanya tetapi seperti yang disebutkan di bawah ini, pemulihannya adalah trival jika Anda tahu caranya.
Stuart Woodward
1
Saya berhasil menghapus / dev / null dengan membuat pipa saya salah membalik $ dan & sekitar saat menjalankan perintah rm dalam sebuah skrip. Aduh!
flickerfly

Jawaban:

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

Gunakan perintah ini untuk membuat /dev/nullatau menggunakan null(4)halaman manual untuk bantuan lebih lanjut.

harish.venkat
sumber
5
Untuk kelengkapan, saya perhatikan bahwa ini berlaku untuk semua sistem berbasis linux; sistem lain mungkin memiliki nomor yang berbeda.
Random832
2
Ini juga hanya mengatur file perangkat itu sendiri, itu tidak akan mengembalikan izinnya. Anda harus melakukannya chmod go+wsecara manual.
Attila O.
7
Jumlah binatang itu!
wefwefa3
7
mknod -m 0666 /dev/null c 1 3- Hal yang sama tetapi lebih pendek
fnkr
1
mknod -m 0666 /dev/null c 1 3bekerja dengan sempurna untuk mengembalikan / dev / null pada CentOS 7, hanya untuk memberi tahu yang lain.
Bozzy
32

Di bawah banyak kesatuan tradisional, Anda dapat membuat ulang perangkat dengan izin default dengan MAKEDEVskrip . Skrip ini secara tradisional ada /devtetapi ada di /sbindalam Ubuntu. Berikan argumen yang menunjukkan perangkat apa yang ingin Anda buat; di Ubuntu itu std(Anda dapat menulis MAKEDEV nulljuga, yang menciptakan nullserta sejumlah perangkat lain).

Di bawah sistem Linux modern yang menjalankan udev , Anda dapat memberitahu udev untuk membuat ulang semua atau beberapa perangkat berdasarkan driver yang tersedia dan perangkat keras yang terhubung, melalui udevadm trigger:

udevadm trigger --sysname-match=null
Gilles 'SANGAT berhenti menjadi jahat'
sumber
Apakah jawaban ini masih terkini? Saya menggunakan CentOS 7 dan saya baru saja menimpa / dev / null secara tidak sengaja, udevadm trigger --sysname-match=nulltriknya tidak berfungsi untuk saya, sementara mknod -m 0666 /dev/null c 1 3bekerja dengan sempurna.
Bozzy
@ Bozzy Saya tahu itu bekerja dengan udev pra-systemd. Saya belum mencoba baru-baru ini, tetapi sejauh yang saya tahu ini harus tetap bekerja. Jika Anda menambahkan --verbose, apakah itu daftar /sys/devices/virtual/mem/null ?
Gilles 'SO- stop being evil'
Ya, itu daftar itu. Saya sudah mencoba menimpa lagi / dev / null pada mesin dev saya, tapi anehnya saya tidak dapat melakukannya di sini, jadi saya tidak dapat melakukan analisis yang lebih mendalam sekarang ...
Bozzy