了解磁盘
硬盘的接口类型
接口类型 | 发展方向 | 应用场景 |
---|---|---|
IDE | SATA I/II/III | 个人PC机 |
SCSI | SAS | 服务器上 |
磁盘命名规则
OS | IDE(并口) | SATA(串口) | SCSI |
---|---|---|---|
RHEL5 | /dev/hda | /dev/sda | /dev/sda |
RHEL6 | /dev/sda | /dev/sda | /dev/sda |
RHEL7 | /dev/sda | /dev/sda | /dev/sda |
磁盘设备的命名
/dev/sda2
-
s = 硬件接口类型 (sata/scsi)
-
d = disk (硬盘)
-
a = 第1块硬盘 (b, 第二块)
-
2 = 第几个分区
/dev/hd h=IDE硬盘 /dev/hdd3
/dev/vd v=虚拟硬盘 /dev/vdf7
HP服务器硬盘
/dev/cciss/c0d0 /dev/cciss/c0d0p1 c0第一个控制器, d0第一块磁盘, p1分区1 /dev/cciss/c0d0p2 c0第一个控制器, d0第一块磁盘, p2分区2
硬盘的分区方式
==根据磁盘大小==
==所需分区的数量来==
分区方式MBR (适用于<2TB磁盘)
-
使用分区软件fdisk
-
支持4个主分区或者3个主分区+1个扩展分区(N个逻辑分区)
-
一个扇区占512字节
MBR (Master Boot Record) 的缩写,由三部分组成:
-
Bootloader (主引导程序) = 446字节
-
引导操作系统的主程序
-
-
DPT分区表 (Disk Partition Table) = 64字节
-
分区表保存了硬盘的分区信息,操作系统通过读取分区表内的信息,就能够获得该硬盘的分区信息。==\boot==
-
每个分区需要占用16个字节大小,保存有文件系统标识、起止柱面号、磁头号、扇区号、起始扇区位置(4个字节)、分区总扇区数目(4个字节)等内容。
-
分区表中保存的分区信息都是主分区与扩展分区的分区信息,扩展分区不能直接使用,需要在扩展分区内划分一个或多个逻辑分区后才能使用。
-
-
硬盘有效标志(校验位) = 2个字节
分区方式GPT (适用于>2TB磁盘)
-
使用分区软件gdisk或parted
-
支持最多128个主分区
磁盘划分
磁盘划分思路
-
进入分区表,使用fdisk新建分区
-
更新分区表(刷新分区表)
-
格式化分区 → 创建文件系统
-
挂载使用 → mount【开机自动挂载】
fdisk分区常用命令
lsblk:查看系统中的块设备及其挂载情况。
df -h:查看正在挂载的设备情况。
fdisk -l:查看当前系统的所有设备分区情况。
磁盘信息解读
==做了解==
硬盘容量=柱面数×盘面数(磁头数)×扇区数×扇区大小(一般为512字节)Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000bb904Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
-
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors:这行说明了磁盘的整体容量是21.5GB,总共由41943040个扇区组成,每个扇区的大小是512字节。
-
Units = sectors of 1 * 512 = 512 bytes:表明用于计算的基本单位是扇区,每个扇区为512字节。
-
Sector size (logical/physical): 512 bytes / 512 bytes:这里说明了逻辑和物理扇区大小都是512字节。
-
I/O size (minimum/optimal): 512 bytes / 512 bytes:表示最小和最优的输入输出操作的大小都是512字节。
-
Disk label type: dos 和 Disk identifier: 0x000bb904:这些信息指出了磁盘使用的分区表类型是DOS(也称为MBR - Master Boot Record)格式,并提供了磁盘的唯一标识符。
接下来是分区的信息:
-
/dev/sda1 和 /dev/sda2:这是磁盘上的两个分区。第一个分区
/dev/sda1
是启动分区(因为它标记了*
),从第2048个扇区开始到第2099199个扇区结束,总共有大约1GB的空间(1048576个块,每块通常是1KB)。第二个分区/dev/sda2
是一个LVM(逻辑卷管理)类型的分区,它从第2099200个扇区开始,直到磁盘末尾。
即通过"扇区"而不是传统的CHS(Cylinder-Head-Sector,柱面-磁头-扇区)方式来寻址。这种改变提高了存储效率和访问速度,并且更适应大容量硬盘的需求。
在现代系统中,分区工具通常只显示扇区相关信息,而不会显示柱面信息。
==添加完磁盘之后,需要重启虚拟机==
使用fdisk分区工具
fdisk命令详解
fdisk是Linux系统中最常用的磁盘分区工具之一,它提供了一种交互式的方式来管理磁盘分区。
fdisk主要用于创建、删除、调整和查看磁盘分区。
fdisk工具的启动
# 查看所有磁盘及其分区
fdisk -l# 操作指定磁盘(例如/dev/sdb)
fdisk /dev/sdb
fdisk交互式命令
启动fdisk工具后,会进入交互式命令模式,常用命令如下:
命令 | 功能描述 |
---|---|
m | 显示命令菜单 |
p | 打印分区表 |
n | 创建新分区 |
d | 删除分区 |
l | 列出所有已知的分区类型 |
t | 更改分区类型(系统ID) |
v | 验证分区表 |
w | 写入分区表并退出 |
q | 不保存退出 |
fdisk分区步骤
启动fdisk并选择磁盘:
fdisk /dev/sdb
创建新分区(按n
键):
==主分区最多4个==
==拓展分区只能有一个==
Command (m for help): n
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-20971519, default 2048): [按Enter使用默认值]
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +5G
修改分区类型(如果需要,按t
键):
Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): 8e
Changed type of partition 'Linux' to 'Linux LVM'
查看分区表确认(按p
键):
Command (m for help): p
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x9aeade6aDevice Boot Start End Blocks Id System
/dev/sdb1 2048 10487807 5242880 8e Linux LVM
保存并退出(按w
键):
Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
更新系统内核分区表:
# 使用partx命令更新分区表
partx -a /dev/sdb# 或使用以下命令
partprobe /dev/sdb
主分区与扩展分区
主分区(Primary Partition)
主分区是可以直接用于安装操作系统、存储数据的分区。在MBR分区表中,一块硬盘最多可以创建4个主分区。
主分区的特点:
-
可以直接格式化并使用
-
可以设置为活动分区(引导分区)
-
在MBR分区表中最多只能有4个
-
每个主分区在分区表中占用一个分区表项(16字节)
扩展分区(Extended Partition)
扩展分区是一种特殊的主分区,它本身不能直接使用,而是作为一个"容器",可以在其中创建多个逻辑分区。
在MBR分区表中,一块硬盘最多只能有一个扩展分区。
扩展分区的特点:
-
不能直接格式化和使用
-
一块硬盘最多只能有一个扩展分区
-
扩展分区也占用一个主分区的位置(MBR分区表项)
-
扩展分区的主要目的是突破4个分区的限制
逻辑分区(Logical Partition)
逻辑分区是在扩展分区内部创建的分区,可以直接格式化并使用。
逻辑分区的特点:
-
只能在扩展分区内创建
-
数量理论上没有限制(Linux系统通常限制为63个)
-
编号从5开始(如/dev/sda5, /dev/sda6)
-
可以像主分区一样格式化和使用
分区格式化
文件系统介绍
在创建完分区后,需要对分区进行格式化,也就是创建文件系统。
文件系统决定了操作系统如何在分区上组织和管理文件数据。
Linux常见文件系统类型
文件系统 | 特点 | 适用场景 |
---|---|---|
ext2 | 不支持日志功能,适合小分区或闪存设备 | U盘、SD卡等 |
ext3 | 支持日志功能,可从ext2升级而来 | 通用存储 |
ext4 | ext3的改进版,支持更大文件和分区,性能更好 | 现代Linux系统主要选择 |
xfs | 高性能日志文件系统,支持大容量存储 | RHEL7/CentOS7默认文件系统 |
btrfs | 新型写时复制文件系统,支持快照、校验和等 | 高级存储需求 |
swap | 交换分区,用作虚拟内存 | 系统交换分区 |
mkfs命令详解
mkfs
命令用于在分区上创建新的文件系统,它实际上是一个前端程序,会根据指定的文件系统类型调用对应的格式化工具。
基本语法
mkfs [-t 文件系统类型] [选项] 设备
格式化为ext4文件系统
# 基本格式化
mkfs.ext4 /dev/sdb1# 等同于
mkfs -t ext4 /dev/sdb1
挂载格式化后的分区
格式化完成后,需要挂载文件系统才能使用:
# 创建挂载点
mkdir -p /mnt/data# 临时挂载
mount /dev/sdb1 /mnt/data# 查看挂载情况
df -h /mnt/data
设置开机自动挂载
要使分区在系统启动时自动挂载,需要编辑/etc/fstab文件:
# 编辑fstab文件
vim /etc/fstab
添加如下内容:
# 编辑fstab文件
vim /etc/fstab
添加如下内容:
# 设备 挂载点 文件系统类型 挂载选项 转储 检查顺序
/dev/sdb1 /mnt/data ext4 defaults 0 2
# 或使用UUID(更稳定,推荐)
UUID=abcd1234-56ef-78ab-90cd-1234567890ab /mnt/data ext4 defaults 0 2
获取UUID:
# 获取分区的UUID
blkid /dev/sdb1