首页 > 技术文章 > 磁盘类型和结构

weilanxuesre 2022-02-11 18:51 原文

1.磁盘设备的设备文件命名:

/dev/DEV_FILE
/dev/sdX   # SAS,SATA,SCSI,IDE,USB
/dev/nvme0n#   #nvme协议硬盘,如:第一个硬盘:nvme0n1,第二个硬盘:nvme0n2

 

2.虚拟磁盘:

/dev/vd
/dev/xvd

 

3.让内核识别新增硬盘:

echo '- - -' > /sys/class/scsi-host/host0/scan ; echo '- - -' > /sys/class/scsi-host/host1/scan ; echo '- - -' > /sys/class/scsi-host/host2/scan

然后用lsblk查看:

 

 

4.1)查看硬盘属性信息:

 

 发现在原字节数的地方变成了“8,0”类似的信息,这个信息是:第一个数字表示的是设备的类型,第二个表示属于这个类的第几个设备。

2)这种文件不要用传统的方式拷贝,比如用 cp /dev/sda1 /data ,发现竟然一直在执行,那就赶紧停下来。再用 ll /data/sda1 你会发现拷过来的和原来的文件属性都不一样了,所以,你要cp的话,就加-a选项。

 

 

5.1)我们现在看到的是b开头的块文件,事实上,再dev下除了块文件还有别的文件,比如:

 

 这个文件就是以c开头的,c是字符设备,和b都是设备。

2)字符设备和块设备的工作逻辑区别:块设备它的数据访问单位是一块一块为单位的,比如说硬盘是块设备,硬盘它读和写的时候,都是一块一块的;而字符设备则是以字符为单位,一个字符一字符的读和写。块设备通常有缓存;字符设备没缓存。我们这个地方的字符设备,它编号"1,3"再加上c,实际上就可以通过3个不同的设备的属性可以唯一标识一个设备了,所以我们可以通过命令创建这种块设备或者是字符设备文件。

 

6.创建块设备(和null的类型一样):
有一个命令mknod,这个命令可以创建设备文件的。创建的的时候,我们跟上文件名,再在后面跟上c,然后"1  3"

1和3分别表示1个类型,3个编号

maknod /data/null-device c 1 3

 

 发现我们已经创建出来了,和我们刚才的/dev/null文件的属性是一样的

 

 

7.硬盘存储术语 CHS

head:磁头 磁头数=盘面数

track:磁道 磁道=柱面数 sector:扇区,512bytes

cylinder:柱面 1柱面=512 * sector数/track*head数=512*63*255=7.84M

CentOS 5 之前版本 Linux 以柱面的整数倍划分分区,CentOS 6之后可以支持以扇区划分分区

#查看CHS
[root@centos6 ~]#fdisk -l /dev/sda
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006fc79
   Device Boot     Start         End     Blocks   Id System
/dev/sda1   *           1         131     1048576   83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             131       12879   102400000   83 Linux
/dev/sda3           12879       19253    51200000   83 Linux
/dev/sda4           19253       26109    55065600    5 Extended
/dev/sda5           19254       19515     2097152   82 Linux swap / Solaris
[root@centos8 ~]#fdisk -u=cylinder -l /dev/sda
Disk /dev/sda: 200 GiB, 214748364800 bytes, 419430400 sectors
Geometry: 255 heads, 2 sectors/track, 26108 cylinders
Units: cylinders of 510 * 512 = 261120 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x59474ddc
Device     Boot Start   End Cylinders Size Id Type
/dev/sda1 *         5   4117      4113   1G 83 Linux
/dev/sda2         4117 415323    411207 100G 83 Linux
/dev/sda3       415323 620926    205604   50G 83 Linux
/dev/sda4       620926 822413    201488   49G  5 Extended
/dev/sda5       620930 629154      8225   2G 82 Linux swap / Solaris

 

8.查看设备硬盘是什么硬盘:

lsblk -d -o name,rota

 

 0是固态,1是机械

 

9.使用磁盘空间分三步:

第一步:设备分区

第二步:创建文件系统

第三步:挂载新的文件系统

 

2022-2-11 18:51

推荐阅读