Linux磁盘管理——设备文件

在Linux环境中,设备文件都在/dev目录下,这些设备文件并不占用磁盘块来存储数据,因此设备文件没有大小,只是在inode表上标识一下元数据。元数据存有设备的设备号。

设备号分为主设备好、次设备号,主设备号表示设备类型。设备文件分块设备文件(b)、字符设备文件(c)。

块设备  按块为单位 随机访问设备

字符设备 以字符为单位 线性访问

b 硬盘

c 键盘

主设备号 major number 用于标识设备类型

次设备号 ninor number  用于标识同一类型的不同设备

块设备

[root@51cto ~]# ll -h /dev/ | grep sd
lrwxrwxrwx.  1 root root           4 Jun  7 17:21 root -> sda2
brw-rw----.  1 root disk      8,   0 Jun  7 17:21 sda
brw-rw----.  1 root disk      8,   1 Jun  7 17:21 sda1
brw-rw----.  1 root disk      8,   2 Jun  7 17:21 sda2
brw-rw----.  1 root disk      8,   3 Jun  7 17:21 sda3
brw-rw----.  1 root disk      8,   4 Jun  7 17:21 sda4
brw-rw----.  1 root disk      8,   5 Jun  7 17:21 sda5
brw-rw----.  1 root disk      8,   6 Jun  7 17:21 sda6

主设备号都是8,0~6标识不同分区

字符设备——虚拟终端

ll -h /dev/ | grep tty[[:digit:]]*$ --color
lrwxrwxrwx.  1 root root           4 Jun  7 17:21 systty -> tty0
crw-rw-rw-.  1 root tty       5,   0 Jun  7 17:21 tty
crw--w----.  1 root tty       4,   0 Jun  7 17:21 tty0
crw-------.  1 root root      4,   1 Jun  7 17:21 tty1
crw--w----.  1 root tty       4,  10 Jun  7 17:21 tty10
crw--w----.  1 root tty       4,  11 Jun  7 17:21 tty11

字符设备——模拟终端

[root@51cto ~]# ll -h /dev/ | grep pts[[:digit:]]*$ --color
drwxr-xr-x.  2 root root           0 Jun  7 17:21 pts

命令who查看当前有多少人链接Linux。我使用XShell链接Linux,XShell开了2个窗口。此时VMWare Workstation中Redhat只是开机还没有登陆。

命令who am i查看我当前用的哪个终端

[root@51cto ~]# who
root     pts/0        2018-06-07 17:22 (192.168.80.1)
root     pts/1        2018-06-07 18:06 (192.168.80.1)
[root@51cto ~]# who am i
root     pts/0        2018-06-07 17:22 (192.168.80.1)

VMWare Workstation中Redhat登陆在执行上诉命令

[root@51cto ~]# who
root     tty1         2018-06-07 18:08
root     pts/0        2018-06-07 17:22 (192.168.80.1)
root     pts/1        2018-06-07 18:06 (192.168.80.1)
[root@51cto ~]# who am i
root     pts/0        2018-06-07 17:22 (192.168.80.1)

创建一个字符设备文件,指定主设备号66,次设备号0

[root@51cto ~]# mknod /dev/zq c 66 0
[root@51cto ~]# ll /dev/zq
crw-r--r--. 1 root root 66, 0 Jun  7 18:12 /dev/zq

实际上环境中设备文件不需要人工创建,只要接上了这个设备,Linux在启动的时候就会自动给设备分配主次设备号。通常不应该给设备直接发送数据,很危险。下面演示给设备文件发消息

下面介绍一个危险的命令

搞坏磁盘第一个分区

[root@51cto ~]# echo "执行这条命令你的Linux系统在重启后或者关机下次开机后就不能正常启动了">>/dev/sda
[root@51cto ~]# reboot

搞坏整个磁盘

[root@51cto ~]# echo "执行这条命令你的Linux系统在重启后或者关机下次开机后就不能正常启动了">>/dev/sda
[root@51cto ~]# reboot

由于向磁盘sda写数据,直接覆盖了MBR,导致MBR收到破坏。执行完后只要不重启,系统啥事没有。一旦重启系统就再也进不去了。

猜你喜欢

转载自www.cnblogs.com/kelamoyujuzhen/p/9149351.html