Linux磁盘分区与挂载完全指南
一、磁盘类型
一、核心原理
1. 磁盘分区:将物理磁盘划分为逻辑区域
物理磁盘(如硬盘、SSD、U 盘)是一块连续的存储空间,直接使用会导致文件管理混乱。分区就是将磁盘分割成多个独立的 “逻辑区域”,每个区域可单独管理(如设置不同文件系统、用途隔离)。
分区表:记录分区信息的 “索引”,存储在磁盘的起始位置(MBR 分区表)或全局位置(GPT 分区表)。
- MBR(Master Boot Record):支持最大磁盘容量 2TB,最多 4 个主分区(或 3 个主分区 + 1 个扩展分区,扩展分区内可创建多个逻辑分区)。
- GPT(GUID Partition Table):支持大于 2TB 的磁盘,理论上无分区数量限制(通常受操作系统限制,如 Linux 支持 128 个主分区),更适合现代大存储设备。
分区命名规则:Linux 中磁盘以
/dev/sdX
(SATA/SCSI 设备)或/dev/nvmeXnY
(NVMe 设备)命名,分区在设备名后加数字,例如:
sda
:第一块 SATA 磁盘;sda1
:sda 的第一个分区;sda2
:第二个分区。nvme0n1
:第一块 NVMe 磁盘;nvme0n1p1
:其第一个分区。2. 挂载:将分区关联到目录树
Linux 的文件系统是一个单一的目录树(从
/
根目录开始),而分区是独立的逻辑区域,需要通过挂载(mount) 将分区与目录树中的某个目录(挂载点)关联,才能访问分区内的文件。
二、配置步骤(以 SATA 磁盘为例)
1.查看磁盘信息
# 查看所有磁盘及分区(列出设备、大小、类型)
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 50G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 49G 0 part / sdb 8:16 0 100G 0 disk # 新插入的未分区磁盘
# 查看磁盘详细信息(包括分区表类型) fdisk -l /dev/sda # 替换为目标磁盘,如/dev/sdb
2.创建分区
方法 1:用
fdisk
创建 MBR 分区(适合小磁盘)fdisk /dev/sda
d:删除分区
p:查看分区表
t:修改分区的system id 号
l:列出所有的分区类型e extended 扩展分区
q:不保存退出
w:保存退出交互步骤:
- 输入
n
:创建新分区。- 选择分区类型:
p
(主分区)或e
(扩展分区,仅 MBR),新手建议直接创建主分区。- 输入分区号(如
1
,默认即可)。- 设置起始扇区(默认回车,从第一个可用位置开始)。
- 设置分区大小:如
+50G
(创建 50GB 分区),或直接回车(使用全部剩余空间)。- 输入
w
:保存分区表并退出(会提示同步分区表,确认即可)。
2. partprobe /dev/sda 同步到硬盘
3. 格式化(两种)
# 格式化分区为ext4(Linux最常用,支持日志、配额) mkfs.ext4 /dev/sdb1 # 替换为目标分区,如sdb1# 或格式化为xfs(适合大文件、高性能,RHEL/CentOS默认) mkfs.xfs /dev/sdb1# 或格式化为exfat(跨平台兼容Windows/macOS,适合移动设备) mkfs.exfat /dev/sdb1
4.挂载
blkid 查看设备uuid
创建挂载点 mkdir /test1
vim /etc/fstab
字段说明:
- 第 1 列:分区 UUID(通过
blkid
获取)。- 第 2 列:挂载点目录(如
/test1
)。- 第 3 列:文件系统类型(如
ext4
、xfs
)。- 第 4 列:挂载选项(
defaults
表示默认:rw, suid, dev, exec, auto, nouser, async)。- 第 5 列:是否备份(0 = 不备份)。
- 第 6 列:是否开机检查(0 = 不检查,根分区通常为 1)
mount -a 重新加载fstab
5.加载/etc/fstab数据,可以看到扩展分区挂载好了
6.存数据 进入挂载点/test1存数据
2.2 分区方案二:
1.知识点
MBR--Master Boot Record 主引导记录,最多创建15个分区。最大的磁盘和分区的大小为2TB
MBR分区直接存储数据和引导记录。
磁盘中的第一个扇区就是MBR,也叫做主引导扇区。大小为512个字节。
其中主引导记录(启动代码)占用其中的446个字节,分区表占用了64个字节(每个分区定义的是16个字节),
结束标志占用2个字节。KB MB GB TB PB EB ZB YB
GPT--GUID Partition Table--全局唯一表示分区表。
1、支持2TB以上的大硬盘
2、每个磁盘的分区个数几乎没有限制(最多只允许划分128个分区)
3、分区大小几乎没有限制,8ZB
4、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表。其中一份被破坏后,
可以通过另外一份恢复GPT分区的数据和引导记录时分开存储的。
parted -l ---列出所有的磁盘上的分区布局
parted /dev/sdb ---列出某个硬盘的分区表
1MB=10^3=1000KB
1MiB=2^10=1024KiB若要对新的磁盘进行分区,首先需要为其写入磁盘标签。
将MBR磁盘标签写入磁盘
parted /dev/sdb mklabel msdos将GPT磁盘标签写入磁盘
parted /dev/vdb mklabel gpt2.知识点
mount 设备 挂载点永久挂载---必须把挂载信息写入到/etc/fstab文件中。
注意:该文件中的挂载信息不能写错,一旦写错,系统重启后将无法
正常进入操作系统。
/etc/fstab文件中每个字段的意思如下:
第1字段:设备名或者是设备的UUID(建议使用UUID)
第2字段:挂载点(如果设备为交换分区时,此处应写为swap)
第3字段:文件系统类型,如xfs、ext4、swap等
第4字段:挂载参数,即mount -o 选项后可以使用的参数。
如:defaults(默认参数)、rw(可写)、ro(只读)、noexec(禁用执行程序)
第5字段:表示文件系统是否需要dump备份。(dump是一个备份工具),1为需要备份,
0为不需要备份,即被dump所忽略。
第6字段:该数字用户决定系统在启动时是否使用fsck命令,以进行磁盘检查的顺序。
0表示不检查,1表示优先检查,2表示其次检查。
xfs的文件系统不适用fsck检查,即可设置为0.
三,加一块硬盘需要做哪些处理?
创建分区--创建MBR磁盘分区l流程
1. parted /dev/sdb
mklabel ---创建标签
msdos ---将MBR磁盘标签写入磁盘
unit ---设置空间大小单位
MB ---设置为MB
mkpart ---新建分区
primary ---选择分区类型
xfs ---选择分区文件系统类型,此时是没有格式化的,只是标记
1MB ---起始大小
501MB ---结束大小
quit ---退出,默认保存退出创建完成后需要执行udevadm settle,
等待系统检测新分区并在/dev目录下创建关联的设备文件2. mkfs.exit4 /dev/sdb1 格式化
3.挂载
blkid /dev/sdb1
创建挂载点 mkdir /test1
新建挂载点,然后写入到/etc/fstab -----永久挂载
vim /etc/fstab
UUID=..... /cy xfs defaults 0 0mount -a
管理交换分区---可以用来解决物理内存不足的问题。--又称作为虚拟内存
写法二:非交互式创建swap分区(新手不建议)
parted /dev/sdc mkpart primary linux-swap 1MB 501MBmkswap /dev/sdc1
vim /etc/fstab
UUID=..... swap swap defaults 0 0swapoff -a ----关闭所有的交换分区
swapon -a ----开启所有的交换分区
fdisk -l ---查询硬盘的分区情况
四,增加交换分区内存
free -m ---查询交换分区的使用情况增大交换分区内存(创建一个分区把他类型设置为swap类型就相当于加大了内存)
parted /dev/adb
unit()
MiB
p
mkpart(创建分区)
quit
udevadm settle(加载一下)
mkswap /dev/sdb2
vim /etc/fstab (加一条)
swapon -a 启用所有交换分区