1. 硬盘结构
硬盘(Hard Disk Driver,简称HDD)是计算机常用的存储设备之一。下面说一下机械硬盘的结构,机械硬盘的结构分为数据结构和物理结构
(1) 数据结构:
-
扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位
-
磁道:同一盘片不同半径的同心圆, 是由磁头在盘片表面划出的圆形轨迹,方便数据存储
-
柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
(2)物理结构:
-
盘片 :硬盘有多个盘片,每个盘片有2面
-
磁头:每面一个磁头
(3)存储容量:
-
硬盘存储容量=磁头数x磁道(柱面)数×每道扇区数×每扇区字节数(512字节)
-
可以用柱面/磁头扇区来唯一定位磁盘上每一个区域
1.1. 硬盘的接口
硬盘按数据接口不同,大致分为ATA(IDE)和SATA以及SCSI,接口速度不是实际硬盘传输速度。
IDE(并口):并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被SATA所取代。
SATA(串口): 抗干扰性强,支持热插拔等功能,速度快,纠错能力强。
SCSI小型机系统接口,SCSI硬盘广为工作站级个人电脑以及服务器所使用,资料传输时 CPU占用率较低,转速快,支持热插拔等
SAS 是新一代的SCSI技术, 和SATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到6Gb/s。
2. MRB与硬盘分区表示
MBR(Master Boot Record,主引导记录)
-
MBR位于硬盘第一个物理扇区处 , MBR中包含硬盘的主引导程序和硬盘分区表
-
MBR总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447-512字节中。
-
分区表有4个分区记录区,每个分区记录区占16字节。
2.1 硬盘分区在linux中的表示
Linux内核读取光驱、硬盘等资源时,都是通过“设备文件”的形式进行,因此,将硬盘和分区分别表示为不同的文件。
表示:/dev/hda5
/dev/:硬件设备文件所在的目录
hd:表示IDE设备(sd表示scsi设备)
a:硬盘的顺序号,表示的第几块硬盘,以a、b、c…表示
5:分区的顺序号,表示第一块硬盘接口的第五个分区
2.2. 硬盘分区结构
- 硬盘中的主分区数目只有4个
- 主分区和扩展分区的序号限制在1 ~4
- 扩展分区再分为逻辑分区(扩展分区是为了解决分区号不够用的情况)
- 逻辑分区的序号将始终从5开始(因为主分区是1-4,所以逻辑分区始终从5开始)
2.3 主分区,拓展分区,逻辑分区的关系、
1、数量区别:一个硬盘可以有1到3个主分区和1个扩展分区,也可以只有主分区而没有扩展分区,但主分区必须至少有1个,扩展分区则最多只有1个,且主分区+扩展分区总共不能超过4个。逻辑分区可以有若干个。
2、用途区别:分出主分区后,其余的部分可以分成扩展分区,一般是剩下的部分全部分成扩展分区,也可以不全分,剩下的部分就浪费了。扩展分区不能直接使用,必须分成若干逻辑分区。所有的逻辑分区都是扩展分区的一部分。
3、容量区别:硬盘的容量=主分区的容量+扩展分区的容量; 扩展分区的容量=各个逻辑分区的容量之和。
4、结构区别:由主分区和逻辑分区构成的逻辑磁盘称为驱动器(Drive)或卷(Volume)。激活的主分区会成为“引导分区”(或称为“启动分区”),引导分区会被操作系统和主板认定为第一个逻辑磁盘(在DOS/Windows中会被识别为“驱动器C:”或“本地磁盘C:”,即通称的C盘)。
3. 文件系统类型
文件系统相当于一个管理硬盘各种文件的软件,文件系统的类型也决定了向分区中存放、读取数据的方式和效率。
- XFS文件系统(CenOS 7系统中默认使用的文件系统)
- 存放文件和目录数据的分区
- 高性能的日志型文件系统,特别擅长于处理大文件,可支持上百万TB的存储空间
- 是一个全64bit的文件系统,最大支持8eb的文件系统(1EB=1024PB 1PB=1024TB)
- swap交换分区
-在linux中可以将硬盘的空间暂时给内存使用(仅限于内存比较小,并且不够用的机器上)
- linux中支持的其他文件格式
- FAT32(最大支持4G)、NTFS
3.1 查看自己的linux支持什么文件格式
[root@localhost ~]# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev ramfs
nodev bdev
nodev proc
nodev cgroup
nodev cpuset
nodev tmpfs
nodev devtmpfs
nodev debugfs
nodev securityfs
nodev sockfs
nodev pipefs
nodev anon_inodefs
4. 新增磁盘并进行主,拓展,逻辑分区的添加
4.1检测并识别新硬盘- fdisk
4.2. 格式
fdisk -l[硬盘设备]或fdisk [磁盘设备]
实例:
[root@localhost ~]# fdisk /dev/sda 这里输入fdisk命令既可以修改硬盘配置也可以查看硬盘信息
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p (print打印磁盘情况)
磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a5c42
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 31475711 14688256 8e Linux LVM
命令(输入 m 获取帮助):
可以看到这里有如下几个信息
解释:
- 设备 boot:磁盘名称(下面的*号可以看数sda1是由引导分区的,也就是这个系统中的主盘)
- start:该分区在硬盘中的开始位置(柱面数)
- Eed:该分区在硬盘中的结束位置(柱面数)
- blocks:分区的大小,以block为单位,默认的块大小为1024字节
- Id:分区对应的系统id号
- system:分区类型
4.3. 在fdisk中的交互指令
| 选项 | 作用 |
|---|---|
| m | 获取帮助菜单 |
| p | 查看分区情况 |
| n | 新建分区 |
| d | 删除分区 |
| t | 变更分区的类型 |
| w | 保存分区操作并退出 |
| q | 不保存分区操作并退出 |
4.4 在虚拟中添加硬盘并创建主分区 (主分区可以用于安装系统)
- 进入虚拟机设置
- 添加硬盘
3.
4.选择推荐,下一步
5.
6.一直默认下一步,直到完成
7.下面进入xshell,输入lsblk查看硬盘或者fdisk -l
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:64.4 GB, 64424509440 字节,125829120 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a5c42
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 31475711 14688256 8e Linux LVM
8.这时添加的硬盘还是没有显示出来,重启其实就可以显示出来,但是在生产环境中,服务器肯定是不能重启的,这时需要输入一下命令,刷新硬件接口,以识别硬盘
echo "- - -"> /sys/class/scsi_host/host0/scan
echo "- - -"> /sys/class/scsi_host/host1/scan
这里刚刚添加的20g硬盘已经添加成功
9.规划硬盘中的分区(创建主分区)
[root@localhost /]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n (n新建分区)
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p (这里回车默认)
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048): (这里回车默认)
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G (输入想要配置的大小,一定要有+)
分区 1 已设置为 Linux 类型,大小设为 10 GiB (设置成功)
命令(输入 m 获取帮助):p (p查看是否设置成功)
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd98fb3b2
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
- 格式化文件系统mkfs
创建文件系统 mkfs.xfs [硬盘分区路径] (双击tab可以补全)
[root@localhost /]# mkfs.xfs /dev/sdb1 (格式化分区)
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
11.挂载(df -l查看是否挂载成功)
df-u查看挂载
挂载
4.6 创建扩展分区
创建完主分区才可以创建扩展分区,扩展分区只可以新建一个,拓展分区里面可以新建多个逻辑分区
4.7 创建逻辑分区
- 格式化逻辑分区
4.8 挂载主分区和逻辑分区
挂载常用命令
5.swap交换分区
挂载常用命令
swapon /dev/ sd?? #启用新增加的交换分区
swapoff /dev/ sd?? #停用指定的交换分区
swapon - S #查看每个分区的swap状态信息
free -m #查看总的swap状态信息4
5.1 新建分区/变更分区类型/格式化新建分区
- 新建分区
- 变更分区类型
- 格式化
5.2 开启swap (swapon)
5.3 关闭swap (swapoff)
- 不用时swap可以关闭
[root@localhost ~]# swapoff /dev/sdc1