web-dev-qa-db-ja.com

dd: '/ dev / null'の書き込み:デバイスにスペースが残っていません

/ dev/nullに550MBのファイルを読み込んでいます。

dd: writing '/dev/null': No space left on device

私はびっくりしました。/dev/nullは、あなたが好きなだけ送信できるブラックホールだと思いました(仮想fsのため)。

はい、このエラーが表示されたら、ディスクがほぼいっぱいです。ディスクからコンテンツを削除する以外に何ができますか?

 ls -l /dev/null
 -rw-r--r--    1 root     root             0 July 7 21:58 /dev/null

の代わりに

 crw-rw-rw-    1 root     root        1,   3 July 7 02:58 /dev/null

私が使用しているコマンド:

time sh -c "dd if=$filename of=/dev/null"
9
Ankur Agarwal

/dev/nullは、キャラクターデバイスタイプの特殊ファイルです。そのキャラクターデバイスのドライバーは、デバイスに書き込もうとするものをすべて無視し、書き込みは常に成功します。 /dev/nullへの書き込みが失敗した場合、何とかして適切な/dev/nullを削除し、通常のファイルに置き換えることができたことを意味します。 /dev/nullを誤って削除した可能性があります。その後、次の… >/dev/nullは通常のファイルとして再作成します。

ls -l /dev/nullを実行し、行が次のようになっていることを確認します

crw-rw-rw- 1 root root 1, 3 Sep 13  2011 /dev/null

キャラクターデバイスの場合はcrw-rw-rw-cで始まり、全員が読み書きできるようにする権限が必要です。ファイルはrootが所有する必要がありますが、それほど重要ではありません。所有者とグループの後の2つの番号は、デバイスを識別します( メジャーおよびマイナーデバイス番号 )。上記では、Linuxでの値を示しています。異なるUNIXバリアントには異なる値があります。日付は通常、システムがインストールされた日付または最後の再起動の日付のいずれかであり、重要ではありません。

ファイルを再作成する必要がある場合、一部のシステムでは、ルートのPATHまたは/devMAKEDEVコマンドが用意されています。 cd /dev; ./MAKEDEV stdまたはこのようなものを実行して、/dev/nullなどの標準的な基本デバイスを再作成します。または、正しいデバイス番号を指定して、デバイスを手動で作成します。 Linuxでは、それは

mknod -m 666 /dev/null c 1 3