一、硬盘结构
1.1硬盘的物理结构
1.盘头:硬盘有多个盘片,每个盘片有两个面
2.磁头:每个面有一个磁头
就相当于盘头是用来存储的,用来读的,磁头是用来写的
1.2硬盘的数据结构
1.扇区:一个盘面被分成多个扇区,每个扇区存放512字节的数据,是硬盘的最小存储单元
2.磁盘:同一盘片不同半径的同心圆
3.柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
注意:
- 硬盘存储容量=磁头数(8个2进制)×磁道(柱面)数×每道扇区数(6个二进制)×每扇区字节数
1柱面=512 * 扇区数/磁头数×磁道=512*63*255=7.84M
- 可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
-数据线和电源接口,串型和并型哪个快?串口要比并口快,串口就像是一个车道,并口就好像是8个车道,同一时刻可以串送8位数据。但是并不是并口快,由于8位通道之间的互相干扰。传输数据就收到了限制。当传输出错时,要重新传8个数据,而且传输速度越快,干扰越严重。
二、磁盘
1.MBR磁盘分区表示
1.1主引导记录
- MBR位于硬盘第一个物理扇区处
- MBR中包含硬盘的主引导程序(446字节)和硬盘分区表(64个字节平均一个分区16个字节)
- 分区表有4个分区记录区(3个分区,一个扩展分区),每个记录区占16个字节,分区不能超过2tb
- linux中将硬盘,分区等设备均表示为文件
- /dev/sda5 //sd表示scsi设备,a表示硬盘的顺序码,以a,b,c……表示,5表示分区的顺序号
2.磁盘分区结构
- 硬盘中的主分区数只有4个
- 主分区和扩展分区的序号限制在1~4
- 扩展分区再分为逻辑分区
- 逻辑分区的序号始终从5开始
3、分区
分区有两种:
第一种:MBR
第一种:GPT(但凡超过2tb的硬盘,就用GPT,没超过就用MBR)
区别:
1.mbr分区表最多能识别2tb左右的空间,大于2tb的将无法识别从而导致硬盘空间的浪费;GPT分区能识别2tb以上的硬盘空间
2.mbr分区表最多能支持4个主分区或三个主分区+1个扩展分区,GPT分区表在windows系统中可以支持128个主分区
三、文件系统
3.1XFS文件系统
XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万 T 字节的存储空间。由于 XFS 文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记录在短时间内进行数据恢复
3.2swap交换文件系统
SWAP:交换文件系统,用于为 Linux 系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的 1.5~2 倍。例如,对于拥有 512MB物理内存的主机,其交换分区的大小建议设置为 1024MB。如果服务器的物理内存足够大(如 8GB 以上),也可以不设置交换分区。交换分区不用于直接存储用户的文件和目录等数据。
3.3EXT4第四代扩展文件系统
EXT4:第 4 代扩展文件系统,用于存放文件和目录数据的分区,是 Linux 系统中默认使用的文件系统(CentOS 7 默认使用 XFS)。EXT4 是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。
3.4 fdisk -l查看硬盘的整体情况和分区
Device:分区的设备文件名称。
Boot:是否是引导分区。若是,则有“*”标识。
Start:该分区在硬盘中的起始位置(柱面数)。
End:该分区在硬盘中的结束位置(柱面数)。
Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为 1024 字节。
Id:分区对应的系统 ID 号。83 表示 Linux 中的 XFS 分区或 EXT4 分区、8e 表示 LVM 逻辑卷。LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,与之相关的知识将在后面的章节介绍。
System:分区类型。识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了。在 Linux 操作系统中,分区和格式化的过程是相对独立的,关于格式化分区的操作将在后续内容中讲解。
3.5交互模式中的常用指令
Command (m for help): m #输入m指令
a toggle a bootable flag #设置可引导标记
b edit bsd disklabel #修改bsd的磁盘标签
c toggle the dos compatibility flag #设置DOS操作系统兼容标记
d delete a partition #删除一个分区
l list known partition types #显示已知的分区类型,其中82为 Linux swap分区,83为Linux分区
m print this menu #显示帮助菜单
n add a new partition #增加一个新的分区
o create a new empty DOS partition table #创建一个新的空白的DOS分区表
p print the partition table #显示磁盘当前的分区表
q quit without saving changes #退出fdisk程序,不保存任何修改
s create a new empty Sun disklabel #创建一个新的空白的Sun磁盘标签
t change a partition's system id #改变一个分区的系统号码
u change display/entry units #改变显示记录单位
v verify the partition table #对磁盘分区表进行验证
w write table to disk and exit #保存修改结果并退出fdisk程序
x extra functionality (experts only) #特殊功能,不建议初学者使用
3.6SWAP创建系统文件
mkswap /dev/sdb5 #创建分区
swapon 是开启swap 注:/dev/sdb2(swap分区)
swapof 是关闭swap 注:/dev/sdb2(swap分区)
swapon -s #查看每个分区的swap状态信息
free -m#查看总的swap状态信息
3.7mount命令
mount命令
挂载文件系统、ISO镜像到指定文件夹
mount [ -t 类型 ] 存储设备 挂载点目录 #用于指定文件系统类型,通常可以省略,由系统自动识别
mount -o loop ISO镜像文件 挂载点目录
-o options 主要用来描述设备或档案的挂接方式 #挂载参数列表,以英文逗号分隔:如用来描述特殊设备,用loop指定
loop:用来把一个文件当成硬盘分区挂接上系统
umount命令
卸载已挂载的文件系统
umount 存储设备位置
umount 挂载点目录
3.8df命令
1.作用df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户。
df格式 [options]
主要参数
-s:对每个Names参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。
-k:以1024字节为单位列出磁盘空间使用情况。
-x:跳过在不同文件系统上的目录不予统计。
-l:计算所有的文件大小,对硬链接文件则计算多次。
-i:显示inode信息而非块使用量。
-h:以容易理解的格式印出文件系统大小,例如136KB、24MB、21GB。
-P:使用POSIX输出格式。
-T:显示文件系统类型。
3.9lsblk命令
语法格式:lsblk [参数]
常用参数:
-a 显示所有设备
-b 以bytes方式显示设备大小
-d 不显示 slaves 或 holders
-D print discard capabilities
-e 排除设备
-f 显示文件系统信息
-h 显示帮助信息
-i use ascii characters only
-m 显示权限信息
-l 使用列表格式显示
-n 不显示标题
-o 输出列
-P 使用key=”value”格式显示
-r 使用原始格式显示
-t 显示拓扑结构信息
3.10
在/etc/fstab 文件中,每一行记录对应一个分区或设备的挂载配置信息,这些信息从左到右包括六个字段(使用空格或制表符分隔),各部分的含义如下所述。
/dev/sdb1 / xfs defaults 0 0第 1 字段:设备名或设备卷标名。
第 2 字段:文件系统的挂载点目录的位置。
第 3 字段:文件系统类型,如 XFS、Swap 等。
第 4 字段:挂载参数,即mount 命令“-o”选项后可使用的参数。例如,defaults、rw、ro、
noexec 分别表示默认参数、可写、只读、禁用执行程序。
第 5 字段:表示文件系统是否需要 dump 备份(dump 是一个备份工具)。一般设为 1
时表示需要,设为 0 时将被 dump 忽略。
第 6 字段:该数字决定在系统启动时进行磁盘检查的顺序。0 表示不进行检查,1 表示优先检查,2 表示其次检查。根分区应设为 1,其他分区设为 2。
通过在/etc/fstab 文件中添加相应的挂载配置,可以实现开机后自动挂载指定的分区。例如,执行以下操作将添加自动挂载分区/dev/sdb1 的配置记录