一.磁盘结构
1.物理结构
**盘片:硬盘有多个盘片,每盘片2面
**磁头:每面一个磁头
2.数据结构
**扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位
**磁道:同一盘片不同半径的同心圆
**柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成
3.磁盘容量
硬盘存储容量=磁头数(8个2进制)×磁道(柱面)数×每道扇区数(6个二进制)×每扇区字节数
(1柱面=512 * 扇区数/磁头数×磁道=512*63*255=7.84M)
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域
4.磁盘接口类型
IDE、SATA、SCSI、SAS、光纤通道
5.磁盘分区的表示
Linux中将硬盘、分区等设备均表示为文件
/dev/ sdb5
sd表示SCSI设备
hd表示IDE设备
硬盘的顺序号,以字母a、b、....表示
分区的顺序号,以数字1、2、...示。主分区从1-4, 第一个逻辑分区始终从5开始
6.分区方式
两种分区方式
MBR 只能对2t以下盘进行分区
GPT 可以对2t以上的盘进行分区
7.MBR与磁盘分区表示
主引导记录(MBR:Master Boot Record)
MBR位于硬盘第一个物理扇区处
MBR中包含硬盘的主引导程序和硬盘分区表
分区表有4个分区记录区,每个分区记录区占16个字节
主启动记录(MBR) 磁盘分区
MBR是主引导记录,位于硬盘第- -个物理扇区处,MBR中包含硬盘的主引导程序和硬盘分区表。MBR总共512字节, 前446字节是主引导记录,分区表保存在MBR扇区中的第447-510字节中。分区表有4个分区记录区,每个分区记录区占16字节
主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区,或3个主分区、1个扩展分区和在扩"展分区里面分多个逻辑分区)。
二.Linux 中使用的文件系统类型
1.XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万 T 字节的存储空间。由于 XFS 文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记录在短时间内进行数据恢复
2.SWAP:交换文件系统,用于为 Linux 系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的 1.5~2 倍。例如,对于拥有 512MB物理内存的主机,其交换分区的大小建议设置为 1024MB。如果服务器的物理内存足够大(如 8GB 以上),也可以不设置交换分区。交换分区不用于直接存储用户的文件和目录等数据。
3.EXT4:第 4 代扩展文件系统,用于存放文件和目录数据的分区,是 Linux 系统中默认使用的文件系统(CentOS 7 默认使用 XFS)。EXT4 是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。
Linux 系统还广泛支持其他各种类型的文件系统,如 JFS、FAT16、FAT32、NTFS 等。JFS 文件系统多用于商业版本的 UNIX 操作系统中,具有出色的性能表现。由于 NTFS 是微软公司的专有文件系统,Linux 系统默认只支持从 NTFS 分区读取文件,如果需要向 NTFS 分区中写入文件数据,需要结合其他辅助软件(如 NTFS-3G)
三.常用命令
lsblk——列出块设备
fdisk——管理MBR分区
gdisk——管理GPT分区
parted——即时生效(不推荐)
1.lsblk
用于列出系统上的块设备信息,包括硬盘、分区、磁盘等。这个命令可以显示设备的名称、类型、大小、挂载点等详细信息。
显示指定设备的信息:
lsblk [设备名称]
显示挂载点信息:
lsblk -m
自定义输出列:
lsblk -o [列名1],[列名2],...
该指令允许用户定义要显示的列。例如,lsblk -o NAME,SIZE,TYPE 将只显示设备的名称、大小和类型信息。
显示设备完整路径:
lsblk -p
仅显示磁盘和分区:
lsblk -l
显示设备大小单位:
lsblk -b
2.fdisk
fdisk功能是查看硬盘的整体情况和分区情况
fdisk 设备名 是查询该设备的分区
fdisk -l /dev/sda 只看sda设备
fdisk -l 是显示全部设备
Device:分区的设备文件名称。
Boot:是否是引导分区。若是,则有“*”标识。
Start:该分区在硬盘中的起始位置(柱面数)。
End:该分区在硬盘中的结束位置(柱面数)。
Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为 1024 字节。
Id:分区对应的系统 ID 号。83 表示 Linux 中的 XFS 分区或 EXT4 分区、8e 表示 LVM 逻辑卷。LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制
System:分区类型。识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了。在 Linux 操作系统中,分区和格式化的过程是相对独立的,关于格式化分区的操作将在后续内容中讲解。
2.1交互模式中的常用指令
fdisk指令说明
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.mkfs
mkfs(Make Filesystem)创建文件系统(格式化)
mkfs -t 文件系统类型 分区设备
分区可能不识别/延迟 可以使用该命令进行刷新 partprobe /dev/sdb(设备)
mksf.xfs 格式化
mkfs -t xfs 设备名
4.mount命令
临时挂载文件系统、ISO镜像到指定文件夹,关机重启后失效
mount [-t类型] 存储设备 挂载点目录
mount -o loop ISO镜像文件 挂载点目录
mount -a 重新挂载
mount /dev/sdb1 /mnt
4.1永久挂载
编写 /etc/fstab——挂载盘目录 挂载地址 文件系统类型 挂载选项(给予权限) 备份 检查
5.umount
卸载已挂载的文件系统
umount 存储设备位置
umount 挂载点目录
6.df命令
查看磁盘使用情况:df [选项] [文件]
选项 | 功能 |
-s | 对每个Names参数只给出占用的数据块总数 |
-a | 递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定-s,也不指定-a,则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数 |
-k | 以1024字节为单位列出磁盘空间使用情况 |
-x | 跳过在不同文件系统上的目录不予统计 |
-l | 计算所有的文件大小,对硬链接文件则计算多次 |
-i | 显示inode信息而非块使用量 |
-h | 以容易理解的格式印出文件系统大小,例如136KB、24MB、21GB |
-p | 使用POSIX输出格式 |
-T | 显示文件系统类型 |