これらのデバイスノードを開くことができないのはなぜですか?

これらのデバイスノードを開くことができないのはなぜですか?
[root@archlinux xtricman]# ls -l /dev/pts
total 0
crw--w---- 1 xtricman tty  136, 0 Feb 24 19:24 0
c--------- 1 root     root   5, 2 Feb 24 19:10 ptmx
[root@archlinux xtricman]# ls -l /mnt
total 12
brw-r--r-- 1 root root 136, 0 Feb 24 19:17 dev_node
crw-r--r-- 1 root root 136, 0 Feb 24 19:17 dev_node_c
drwx------ 2 root root  12288 Feb 24 19:12 lost+found
[root@archlinux xtricman]# exec 6<>/dev/pts/0
[root@archlinux xtricman]# exec 7<>/mnt/dev_node
bash: /mnt/dev_node: No such device or address
[root@archlinux xtricman]# exec 7<>/mnt/dev_node_c
bash: /mnt/dev_node_c: Input/output error

/dev/ptsdevpts のマウントポイント/mntで ext4 のマウントポイントです。

/dev/pts/03つのデバイスノード(、、、/mnt/dev_node/mnt/dev_node_cのプライマリデバイス番号とマイナーデバイス番号が同じで、なぜ1つだけを開くことができ、/dev/pts/0残りの2つを開くことができないのかを知りたいです。

(major = 136、minor = 0)のブロックデバイスが存在しないことはわかりますが、文字デバイス(major = 136、minor = 0)の「入出力エラー」とはどういう意味ですか?このエラーが発生するのはなぜですか?

ベストアンサー1

まあ、dev_nodeそれはブロックデバイスなので(b出力の行の先頭にls示されている)他のデバイスとはまったく異なります。同じメジャー番号があるだけで、ブロック番号と文字デバイス番号の間には相関はありません。

Documentation/admin-guide/devices.txtこれについてはLinuxカーネルのソースコードで説明されています。

 136 block      Mylex DAC960 PCI RAID controller; ninth controller
                  0 = /dev/rd/c8d0      First disk, whole disk

おそらくMylex RAIDコントローラがないかもしれません。彼らにとって、これはNo such device or address適切な対応のように見えました。

dev_node_cあなたと同じように見えますが/dev/pts/0。ただし、デバイスノードは/dev/pts自動的に作成され、特別な仮想ファイルシステム(devpts)を持ちます。通常どおり、次の出力に表示されますmount

devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) 

これをテストしましたが、実際にそこから/dev/pts/15別のファイルシステムにデバイスノードをコピーすることは機能しません。また、別のコピーをインストールすると、他のコピーには表示されないdevptspseudo-ttyを使用してクリーンなインスタンスが作成されるようです。/dev/ptsしたがって、擬似ttyノードがdevptsファイルシステムの特定のインスタンスに関連付けられ、ノードが外部で機能しないことが実際に可能です。

おすすめ記事