一、添加分区,文件系统和持久挂载
分区是对磁盘(如/dev/sda、/dev/vdb)的逻辑划分,常见分区表格式为 MBR 和 GPT。
(1)创建MBR分区
-
特点:支持最大磁盘容量 2TB,最多 4 个主分区(或 3 个主分区 + 1 个扩展分区,扩展分区内可分多个逻辑分区)。
-
工具 :
fdisk(适用于 MBR 和 GPT,传统工具)。 -
步骤及命令:
- 进入磁盘分区工具:
fdisk /dev/sdb(假设操作磁盘为/dev/sdb)。 - 输入命令交互:
n:新建分区(选择主分区p或扩展分区e,设置分区号、起始扇区、大小,如+10G表示 10GB)。p:查看分区表。w:保存并退出(q为不保存退出)。
- 生效分区表:
partprobe /dev/sdb(无需重启刷新分区信息)。
- 进入磁盘分区工具:
例:在/dev/sdb创建 1 个 10GB 的主分区
fdisk /dev/sdb
# 输入n → p → 1(分区号)→ 回车(默认起始扇区)→ +10G → p(确认)→ w(保存)
partprobe /dev/sdb # 刷新分区表
(2)创建GPT分区
-
特点:支持超过 2TB 的磁盘,最多 128 个分区,支持 UEFI 启动。
-
工具 :
gdisk(GPT 专用,fdisk也可支持但gdisk更适配)。 -
步骤及命令:
- 进入工具:
gdisk /dev/sdc(操作磁盘/dev/sdc)。 - 交互命令:
n:新建分区(设置分区号、起始扇区、大小,如+20G)。p:查看分区表。w:保存退出(需输入Y确认)。
- 生效分区表:
partprobe /dev/sdc。
- 进入工具:
例:在/dev/sdc创建 1 个 20GB 的 GPT 分区
gdisk /dev/sdc
# 输入n → 回车(默认分区号)→ 回车(起始扇区)→ +20G → 回车(默认类型)→ p → w → Y
partprobe /dev/sdc
(3)删除分区
-
工具 :
fdisk(MBR)或gdisk(GPT),操作类似。 -
步骤:
- 进入工具:
fdisk /dev/sdb(或gdisk /dev/sdc)。 - 输入
d→ 选择要删除的分区号 →p确认删除 →w保存。
- 进入工具:
例:删除/dev/sdb的 1 号分区
fdisk /dev/sdb
# 输入d → 1(分区号)→ p(确认)→ w(保存)
partprobe /dev/sdb
(4)创建文件系统
分区需格式化为文件系统才能存储数据,常见文件系统:ext4(Linux 主流)、xfs(RHEL/CentOS 默认)、btrfs(高级特性)等。
- 命令 :
mkfs.文件系统类型 分区路径 - 示例 :
- 格式化
/dev/sdb1为 ext4:mkfs.ext4 /dev/sdb1 - 格式化
/dev/sdc1为 xfs:mkfs.xfs /dev/sdc1(需安装xfsprogs工具) - 快速格式化(跳过检查):
mkfs.ext4 -F /dev/sdb1
- 格式化
(5)持久挂载(重启不失效)
临时挂载用mount,但重启后失效;持久挂载需配置/etc/fstab文件。
步骤:
-
创建挂载点:
mkdir /data(目录需存在)。 -
获取分区 UUID(推荐用 UUID,避免设备名变动):
blkid /dev/sdb1(输出类似UUID="xxx")。 -
编辑
/etc/fstab,添加一行:UUID=xxx /data ext4 defaults 0 0
-
字段含义:分区 UUID → 挂载点 → 文件系统类型 → 挂载参数(
defaults包含rw、suid等)→ dump 备份(0 为不备份)→ fsck 检查(0 为不检查,根分区为 1)。 -
blkid命令,lsblk命令用于显示块设备(如硬盘分区、U 盘等)的属性,包括 UUID、文件系统类型等,需要 root 权限(或 sudo)。 -
/etc/fstab是持久化挂载配置文件,若分区已配置持久挂载,其中会记录 UUID(推荐用 UUID 配置)
4.生效配置:mount -a(检查配置是否有误,无报错则成功)。
注:
- 分区表:MBR(小磁盘)、GPT(大磁盘 / UEFI),分别用
fdisk、gdisk管理。 - 文件系统:
mkfs.ext4、mkfs.xfs等格式化分区。 - 持久挂载:通过
/etc/fstab配置 UUID 实现,避免依赖设备名。
二、挂载文件系统
挂载(Mount)是将分区或存储设备(如硬盘分区、U 盘、ISO 镜像等)关联到 Linux 系统目录树中的一个目录(称为 "挂载点"),使系统能够访问该设备中的数据。
- 挂载点必须是已存在的空目录(若目录非空,挂载后原内容会被临时隐藏,卸载后恢复)。
- 临时挂载:重启后失效;持久挂载:通过配置文件保存,重启后自动生效。
(1)手动挂载文件系统(临时生效)
使用 mount 命令手动挂载,适用于临时访问设备,重启后挂载关系会消失。
mount [选项] 设备路径 挂载点目录
- 常用选项:
-t 文件系统类型:指定文件系统(如 ext4、xfs、ntfs 等,通常可省略,系统会自动识别)。-o 挂载参数:设置挂载属性(如ro只读、rw读写、noatime禁用访问时间记录等)。
例:1)挂载分区到指定目录
假设将 /dev/sdb1(ext4 文件系统)挂载到 /data 目录:
# 1. 先创建挂载点(若不存在)
mkdir -p /data
# 2. 挂载分区
mount /dev/sdb1 /data
# 验证:查看挂载状态
df -h /data # 显示挂载信息
mount | grep /data # 过滤特定挂载点
2)只读挂载
mount -o ro /dev/sdc1 /backup # 以只读方式挂载/dev/sdc1到/backup
30卸载手动挂载的文件系统
使用 umount 命令(注意不是unmount):
umount /data # 通过挂载点卸载
# 或通过设备路径卸载
umount /dev/sdb1
(2)持久挂载文件系统
通过配置 /etc/fstab 文件实现持久挂载,系统启动时会自动读取该文件并挂载所有配置的设备。
1. /etc/fstab 文件格式
每行代表一个挂载配置,字段用空格或制表符分隔,格式如下:
设备标识 挂载点 文件系统类型 挂载参数 dump备份 fsck检查
- 设备标识 :推荐用 UUID(避免设备名变动,如
/dev/sdb1可能变为/dev/sdc1),也可用设备路径或标签(LABEL)。 - 挂载参数 :常用
defaults(包含rw、suid、dev、exec、auto、nouser、async),按需添加其他参数(如noatime)。 - dump 备份:0 表示不备份,1 表示备份(几乎不用,通常设 0)。
- fsck 检查 :0 表示不检查,1 表示优先检查(根分区
/设 1),2 表示次优先检查(其他分区设 2)。
2)挂载步骤
(1)获取设备 UUID
blkid /dev/sdb1 # 假设输出:UUID="a1b2c3d4-1234-5678-90ab-cdef12345678" TYPE="ext4"
2)编辑 /etc/fstab
# 用文本编辑器打开(如vim、nano)
sudo vim /etc/fstab
# 添加一行配置(以UUID为例)
UUID=a1b2c3d4-1234-5678-90ab-cdef12345678 /data ext4 defaults 0 2
3)验证配置(关键步骤)
配置后必须执行以下命令,检查是否有错误(若有错误可能导致系统无法启动):
sudo mount -a # 挂载所有/etc/fstab中未挂载的设备
4)生效验证
df -h /data # 查看是否已挂载
例:挂载网络共享(NFS)
# 格式:服务器IP:共享路径 本地挂载点 nfs 挂载参数 0 0
192.168.1.100:/shared /mnt/nfs nfs defaults 0 0
| 类型 | 命令 / 工具 | 特点 | 关键文件 / 命令 |
|---|---|---|---|
| 手动挂载 | mount |
临时生效,重启消失 | umount 卸载,df -h 查看 |
| 持久挂载 | 配置 /etc/fstab |
重启自动生效 | mount -a 验证配置 |
三、管理交换空间
(1)交换空间概念
交换空间(Swap Space)是 Linux 系统中用于临时存储内存中不常用数据的区域,当物理内存(RAM)不足时,系统会将部分不活跃的内存数据转移到交换空间,释放物理内存供活跃进程使用。
- 作用:避免内存溢出导致进程崩溃,提升系统稳定性(但性能低于物理内存)。
- 形式 :可以是交换分区 (独立的磁盘分区)或交换文件(普通文件格式,更灵活)。
- 大小建议:通常为物理内存的 1~2 倍(如 8GB 内存可配 8~16GB 交换空间,大内存服务器可适当减小比
(2)创建交换空间步骤(分区 / 文件两种方式)
方式一:创建交换分区(推荐用于物理机,需磁盘分区)
-
创建分区 (使用
fdisk或gdisk,以fdisk为例):操作磁盘(如/dev/sdb)
sudo fdisk /dev/sdb
输入n创建分区→选择分区类型(默认主分区)→设置大小(如+8G)→t修改类型为swap(编号82)→w保存
2、格式化交换分区(mkswap命令):
sudo mkswap /dev/sdb1 # /dev/sdb1为刚创建的交换分区
3.启用交换分区 (swapon命令):
sudo swapon /dev/sdb1
4.持久化生效 (配置/etc/fstab):
# 获取交换分区UUID
blkid /dev/sdb1 # 假设UUID="abc123-def456"
# 添加到/etc/fstab
echo 'UUID=abc123-def456 none swap sw 0 0' | sudo tee -a /etc/fstab
方式二:创建交换文件(推荐用于虚拟机 / 云服务器,无需分区)
-
创建交换文件 (
dd或fallocate,fallocate更高效):创建8GB的交换文件(/swapfile)
sudo fallocate -l 8G /swapfile
若fallocate不可用,用dd:sudo dd if=/dev/zero of=/swapfile bs=1G count=8
2.设置权限(仅 root 可读写,避免安全风险):
sudo chmod 600 /swapfile
3.格式化交换文件:
sudo mkswap /swapfile
4.启用交换文件:
sudo swapon /swapfile
5.持久化生效 (配置/etc/fstab):
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
验证与管理命令
-
查看当前交换空间使用情况:
free -h # 显示总内存和交换空间
swapon --show # 列出已启用的交换空间
关闭交换空间(临时)
sudo swapoff /dev/sdb1 # 关闭交换分区
# 或 sudo swapoff /swapfile # 关闭交换文件
| 方式 | 适用场景 | 核心命令 | 持久化配置 |
|---|---|---|---|
| 交换分区 | 物理机、固定磁盘环境 | fdisk→mkswap→swapon |
/etc/fstab中添加分区 UUID |
| 交换文件 | 虚拟机、云服务器、临时扩展 | fallocate→mkswap→swapon |
/etc/fstab中添加文件路径 |
四、知识点总结
- 对 Linux 磁盘进行分区时有哪两种方案?分别加以详细说明。
答:MBR(Master Boot Record,主引导记录)分区方案
支持的磁盘容量最大为 2TB。
最多可创建 4 个主分区,若需更多分区,需将其中一个主分区设为扩展分区,再在扩展分区内创建逻辑分区(逻辑分区数量受限于操作系统,通常最多 15 个)。32位制存储
分区信息存储在磁盘的第一个扇区(512 字节),包含引导程序和分区表,分区表占 64 字节,每个分区条目占 16 字节。
兼容性好,几乎所有操作系统都支持,但不支持超过 2TB 的磁盘和 UEFI 启动模式。
GPT(GUID Partition Table,全局唯一标识分区表)分区方案
支持的磁盘容量远超 MBR,理论上可支持 18EB(1EB = 1024PB)。
最多可创建 128 个主分区,无需扩展分区和逻辑分区。
分区信息存储在分区表头部和尾部,且有备份分区表,提高了数据安全性,能更好地抵抗磁盘错误。64位制存储
支持 UEFI 启动模式,适用于大容量磁盘和新型操作系统,但旧版操作系统可能不支持。
2.简单说下创建 MBR 磁盘分区涉及哪几个步骤?
答:1.识别磁盘设备(如 fdisk -l 查看磁盘名称,如 /dev/sdb)。
2.进入分区工具(如 fdisk /dev/sdb)。
3.创建分区(输入 n,选择主分区或扩展分区,设置分区编号、起始扇区和大小)。
4.保存分区表(输入 w 写入并退出)。
5.重新读取分区表(如 partprobe /dev/sdb)。
3. 创建 GPT 分区与创建 MBR 分区有什么不同?
答:
分区工具:GPT 常用 gdisk 或 parted(需指定 gpt 格式),MBR 常用 fdisk。
分区数量:GPT 最多 128 个主分区,MBR 最多 4 个主分区(需更多分区需扩展分区 + 逻辑分区)。
磁盘容量支持:GPT 支持超 2TB 磁盘,MBR 最大支持 2TB。
分区表存储:GPT 有主分区表和备份分区表,MBR 分区表仅在磁盘首个扇区。
启动支持:GPT 通常配合 UEFI 启动,MBR 配合 BIOS 启动。
4. 在创建分区时就会在分区上创建文件系统吗?
答:不会。创建分区只是划分磁盘区域,文件系统需后续通过 mkfs 系列命令(如 mkfs.ext4、mkfs.xfs)单独创建。
5. 如何持久挂载文件系统?
答:(1)查看分区 UUID 或设备路径(用lsblk --fs命令)。
(2)编辑 /etc/fstab 文件,添加一行格式为 UUID=xxx 挂载点 文件系统类型 defaults 0 0 的条目(如 UUID=1234-ABCD /mnt/data ext4 defaults 0 0)。
(3)执行 mount -a 验证挂载配置是否生效。
6. Linux 为什么要使用 swap?
答:swap 作为交换空间,当物理内存不足时,系统可将部分不常用的内存数据暂存到 swap 中,释放物理内存供活跃进程使用,防止因内存不足导致进程崩溃,提高系统稳定性。
7. 过度使用 swap 有什么缺点?
答:swap 位于磁盘,读写速度远慢于物理内存,过度使用会导致系统响应迟缓、程序运行卡顿,甚至出现应用无响应,严重影响系统性能。
8. 如何持久激活交换空间?
答:(1)创建 swap 文件或分区(如 mkswap /dev/sdc1)。
(2)编辑 /etc/fstab,添加 UUID=xxx swap swap defaults 0 0(UUID 为 swap 分区 / 文件的 UUID)。
(3)执行 swapon -a 激活。
- 使用哪个命令可以查看文件系统的 UUID?
答:lsblk -fp