当前位置: 首页 > backend >正文

Linux 磁盘管理

Linux 磁盘管理

一、磁盘类型与命名规则

不同类型的磁盘在 Linux 中有特定的设备文件命名方式,通过fdisk -lparted -l可查看设备类型

磁盘类型命名规则示例
SATA/SCSI/SASsd为前缀,按顺序编号(a、b、c…),分区加数字(1、2、3…)第一块硬盘:sda,其第一分区:sda1
NVMenvmeXnYpZ为格式 - X:通道号(0 开始) - Y:硬盘号(1 开始) - Z:分区号(1 开始)通道 0 的第 1 块硬盘第 1 分区:nvme0n1p1
virtio-blockvd为前缀,按顺序编号,分区加数字第一块硬盘:vda,其第一分区:vda1
二、分区工具与信息查看
  • fdisk -l:查看磁盘及分区详细信息(支持 MBR 分区),输出字段含义:
    • Device:分区设备文件名(如/dev/sda1
    • Boot:是否为引导分区(*表示是)
    • Start/End:分区在磁盘中的起始 / 结束柱面位置
    • sectors:分区总扇区数
    • Size:分区大小
    • Id:分区 ID(83=Linux 分区,82=swap 分区)
    • Type:分区类型
  • parted -l:查看所有磁盘的分区布局(支持 MBR 和 GPT),可通过parted /dev/sda print查看单块硬盘的分区表
三、分区方案(MBR vs GPT)

磁盘分区需先选择分区方案,核心区别如下:

特性MBR(Master Boot Record)GPT(GUID Partition Table)
最大支持磁盘 / 分区大小2TB8ZB(远超 2TB)
最大分区数量最多 15 个最多 128 个
分区表存储磁盘第一个扇区(512 字节):446 字节引导记录 + 64 字节分区表(4 个主分区,每个 16 字节)+2 字节结束标志磁盘首尾各存一份分区表(自带备份,损坏可恢复)
适用场景小容量磁盘(≤2TB)、传统 BIOS 引导大容量磁盘(>2TB)、UEFI 引导
四、分区创建(parted 工具)

需先为磁盘写入 “磁盘标签”(即选择分区方案),再创建分区

1. 写入磁盘标签(选择分区方案)
  • MBR 标签:parted /dev/sdb mklabel msdos
  • GPT 标签:parted /dev/vdb mklabel gpt
2. 创建 MBR 分区(示例)
parted /dev/sdb  # 操作/dev/sdb磁盘
mklabel msdos    # 确认MBR方案(若未写入标签)
unit MB          # 设置单位为MB(1MB=1000KB,1MiB=1024KiB)
mkpart           # 新建分区
primary          # 分区类型(主分区)
xfs              # 标记文件系统类型(仅标记,未格式化)
1MB              # 起始位置(从1MB开始,避开引导区)
501MB            # 结束位置(分区大小500MB)
quit             # 退出,自动保存
udevadm settle   # 等待系统识别新分区(生成/dev/sdb1设备文件)

简化命令:parted /dev/sdc mkpart primary xfs 1MB 501MB(直接创建)

3. 创建 GPT 分区

步骤与 MBR 类似,仅需先写入 GPT 标签:parted /dev/sdd mklabel gpt,后续分区操作一致

4. fdisk 工具(交互式分区,适合 MBR)
fdisk /dev/sdb  # 进入交互式操作
n               # 新建分区
p               # 主分区(或e扩展分区)
1               # 分区号
(默认起始扇区)  # 按回车
+500M           # 分区大小(或指定结束扇区)
w               # 保存退出
partprobe /dev/sdb  # 刷新分区表(让系统识别)

常用操作:d(删除分区)、p(查看分区表)、t(修改分区 ID)、q(不保存退出)

五、格式化分区

分区创建后需格式化(写入文件系统),常用命令:

  • mkfs.xfs /dev/sdc1:格式化为 xfs 文件系统(适合大文件,默认日志型)
  • mkfs.ext4 /dev/sdc2:格式化为 ext4 文件系统(兼容好,支持小文件)
六、挂载分区(临时 / 永久)

分区需挂载到目录才能使用,挂载点需提前创建(如mkdir /data

1. 临时挂载
mount /dev/sdc1 /data  # 将/dev/sdc1挂载到/data
2. 永久挂载(写入 /etc/fstab)

/etc/fstab文件记录开机自动挂载信息,格式如下(5 个字段,空格分隔):

UUID=xxxxxxx  /data  xfs  defaults  0  0

字段含义:

  1. 设备标识:建议用 UUID(唯一,避免设备名变动),通过blkid /dev/sdc1查询
  2. 挂载点:目录路径(如/data;swap 分区此处写swap
  3. 文件系统类型:如xfsext4swap
  4. 挂载参数defaults(默认,含 rw、suid、dev 等)、ro(只读)、noexec(禁止执行程序)等
  5. dump 备份:0 = 不备份,1 = 需要备份(dump 工具)
  6. fsck 检查:0 = 不检查,1 = 优先检查(根分区),2 = 次要检查(xfs 无需检查,设 0)

配置步骤:

blkid /dev/sdc1  # 获取UUID(如UUID="abc123")
mkdir /cy        # 创建挂载点
vim /etc/fstab   # 写入上述格式内容
mount -a         # 生效配置(检查是否有误,错误会导致开机失败)
七、交换分区管理(虚拟内存)

用于缓解物理内存不足,需单独分区并格式化为 swap 类型

1. 查看交换分区状态
free -m  # 查看总内存、使用量、交换分区大小
2. 创建交换分区(非交互式)
# 1. 创建分区(类型设为linux-swap)
parted /dev/sdc mkpart primary linux-swap 1MB 501MB
# 2. 格式化swap分区
mkswap /dev/sdc1
# 3. 写入/etc/fstab(永久生效)
echo "UUID=$(blkid -s UUID -o value /dev/sdc1) swap swap defaults 0 0" >> /etc/fstab
# 4. 启用交换分区
swapoff -a  # 关闭所有交换分区
swapon -a   # 开启所有交换分区(读取/etc/fstab)

总结

磁盘管理核心流程:识别磁盘类型→选择分区方案(MBR/GPT)→创建分区→格式化→挂载(临时 / 永久),交换分区作为特殊分区需单独配置。操作时需注意/etc/fstab的正确性,避免开机故障

http://www.xdnf.cn/news/16947.html

相关文章:

  • 如何选择一个容易被搜索引擎发现的域名?
  • 从零开始的云计算生活——项目实战
  • Perl 面向对象编程深入解析
  • 京东商品销量数据如何获取?API接口调用操作详解
  • AWS VPC Transit Gateway 可观测最佳实践
  • [特殊字符] Ubuntu 下 MySQL 离线部署教学(含手动步骤与一键脚本)
  • Java 课程,每天解读一个简单Java之正整数分解质因数
  • 在安卓中使用 FFmpegKit 剪切视频并添加文字水印
  • 05.Redis 图形工具RDM
  • io_getevents 和 io_pgetevents 系统调用及示例
  • 论文阅读:DMD蒸馏 | One-step Diffusion with Distribution Matching Distillation
  • SaProt 模型部署与运行教程
  • 【AI】文档理解
  • ZStack Cloud 5.3.40正式发布
  • 大模型能力测评(提示词请帮我把这个项目改写成为python项目)
  • 人工智能之数学基础:几何型(连续型)随机事件概率
  • 深度学习周报(7.28~8.3)
  • 2025年6月电子学会青少年软件编程(C语言)等级考试试卷(七级)
  • 抖音全新推荐大模型RankMixer
  • p2p打洞
  • 后端研发转型爬虫实战:Scrapy 二开爬虫框架的避坑指南
  • [2025ICCV-目标检测方向]DuET:通过无示例任务算术进行双增量对象检测
  • 记一次v-if和key错误使用,导致vue2的内存爆炸修复!
  • 十八、Javaweb-day18-前端实战-登录
  • 11.消息队列
  • 2. 字符设备驱动
  • Docker环境离线安装指南
  • 计算机网络:如何将一个C类网络划分成两个子网
  • 35.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--数据缓存
  • Docker-03.快速入门-部署MySQL