Linux - 磁盘管理

部署运行你感兴趣的模型镜像

Linux磁盘管理全解析:从分区到挂载的完整指南

在Linux系统中,磁盘管理是系统管理员的核心技能之一。无论是服务器部署还是日常运维,理解磁盘分区、文件系统和挂载机制都至关重要。本文将从硬盘存储原理讲起,详细介绍Linux下磁盘管理的各种操作,包括分区创建、文件系统格式化、挂载配置以及GPT与MBR分区表的区别,帮助你全面掌握Linux磁盘管理技术。

一、硬盘存储基础

硬盘的存储容量计算基于其物理结构,公式如下:

硬盘存储容量=磁头数(8个二进制)×磁道(柱面)数×每道扇区数(6个二进制)×每扇区字节数

通常情况下,1个柱面的容量可以通过以下方式计算:

1柱面 = 512字节 × 每磁道扇区数 × 磁头数 = 512 × 63 × 255 = 7.84MB

在磁盘定位中,通过柱面/磁头/扇区三维坐标可以唯一定位磁盘上的每一个存储区域,这是磁盘寻址的基础。

二、Linux磁盘与分区表示方法

Linux系统将所有硬件设备都表示为文件,磁盘和分区也不例外,其命名规则如下:

  • 设备类型标识

    • sd:表示SCSI设备(包括SATA、SSD等现代存储设备)
    • hd:表示IDE设备(较旧的设备类型)
  • 设备顺序号:以字母a、b、c...表示,如sda代表第一块SCSI设备,sdb代表第二块SCSI设备

  • 分区编号:以数字1、2、3...表示:

    • 主分区编号为1-4
    • 逻辑分区从5开始编号(无论主分区数量多少)

例如,/dev/sdb5表示第二块SCSI设备上的第一个逻辑分区。

三、MBR与GPT分区表

磁盘分区表是磁盘上记录分区信息的关键数据结构,目前主要有两种类型:MBR和GPT。

1. MBR分区表(主启动记录)

MBR位于硬盘第一个物理扇区,总共512字节,包含:

  • 前446字节:主引导程序
  • 447-510字节:分区表(4个分区记录区,每个16字节)
  • 最后2字节:结束标记

MBR的限制

  • 最大支持2.2TB的卷
  • 最多支持4个主分区,或3个主分区+1个扩展分区(扩展分区内可创建多个逻辑分区)

2. GPT分区表(GUID分区表)

GPT是新一代分区表格式,解决了MBR的诸多限制:

特性GPTMBR
最大分区数128个主分区4个主分区
支持最大容量理论上9.4ZB2.2TB
分区表存储硬盘开始和结束处均有副本仅一个副本
启动支持支持UEFI引导仅支持BIOS引导
兼容性现代操作系统(Win10、Linux等)兼容老旧系统

GPT的优势

  • 支持超大容量硬盘(超过2TB)
  • 更强的容错能力(分区表冗余存储)
  • 支持更多分区,无需扩展分区
  • 是UEFI启动模式的必要条件

四、Linux常用文件系统类型

Linux支持多种文件系统,常见的有:

  1. XFS

    • 高性能日志文件系统
    • 擅长处理大文件
    • 支持上百万TB的存储空间
    • 具有优秀的崩溃恢复能力(基于日志)
    • CentOS 7默认文件系统
  2. EXT4

    • 第4代扩展文件系统
    • 日志型文件系统,稳定性好
    • 适合存放文件和目录数据
    • 之前是Linux系统的默认文件系统
  3. SWAP

    • 交换文件系统,用于虚拟内存
    • 缓解物理内存不足的问题
    • 一般建议大小为物理内存的1.5-2倍(大内存服务器可适当减小)
    • 不直接存储用户数据
  4. 其他支持的文件系统

    • JFS:常用于商业UNIX系统
    • FAT16/FAT32:支持与Windows系统交换数据
    • NTFS:默认只读,需通过NTFS-3G工具实现读写支持

五、磁盘分区操作(fdisk与gdisk)

1. fdisk工具(MBR分区表)

fdisk是用于管理MBR分区表的经典工具,通过交互模式操作:

# 查看磁盘整体情况和分区信息
fdisk -l

# 进入磁盘交互模式(以/dev/sdb为例)
fdisk /dev/sdb

交互模式常用指令:

指令功能描述
m显示帮助菜单
n创建新分区
d删除分区
p显示当前分区表
t改变分区类型ID
w保存修改并退出
q放弃修改并退出
l列出已知分区类型

创建主分区示例

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-209715199, default 2048):	# 起始扇区(默认即可)
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199): +20G	# 分区大小

2. gdisk工具(GPT分区表)

gdisk是用于管理GPT分区表的工具,操作方式与fdisk类似:

# 进入GPT分区交互模式
gdisk /dev/sdc

gdisk交互模式常用指令:

指令功能描述
n创建新分区
d删除分区
p显示分区表
t改变分区类型
w保存并退出
q放弃修改退出
l列出已知分区类型
c更改分区名称
v验证分区表

创建GPT分区示例

Command (? for help): n		# 创建新分区
Partition number (1-128, default 1):	# 分区编号(默认即可)
First sector (34-20971486, default = 2048) or {+-}size{KMGTP}:	# 起始扇区
Last sector (2048-20971486, default = 20971486) or {+-}size{KMGTP}: +10G	# 分区大小
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):	# 分区类型(默认8300)
Changed type of partition to 'Linux filesystem'

Command (? for help): w		# 保存修改

3. 不重启识别新硬盘

当添加新硬盘后,可通过以下命令扫描SCSI总线,无需重启系统即可识别新设备:

echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan

六、文件系统格式化

创建分区后,需要格式化以创建文件系统:

# 格式化XFS文件系统(两种方式等价)
mkfs -t xfs /dev/sdb1
mkfs.xfs /dev/sdb1

# 格式化FAT32文件系统
mkfs -t vfat -F 32 /dev/sdb6
mkfs.vfat -F 32 /dev/sdb6

# 创建交换分区
mkswap /dev/sdb5

查看分区的UUID(唯一标识符):

blkid /dev/sdb1
# 输出示例:/dev/sdb1: UUID="67b4f53b-614f-4165-9195-288c8277fb14" TYPE="xfs"

七、挂载与卸载文件系统

1. 临时挂载

# 挂载分区到指定目录
mount /dev/sdb1 /mnt

# 挂载ISO镜像文件
mount -o loop /path/to/image.iso /mnt/iso

2. 卸载文件系统

# 通过设备名卸载
umount /dev/sdb1

# 通过挂载点卸载
umount /mnt

3. 开机自动挂载(/etc/fstab配置)

/etc/fstab文件用于配置开机自动挂载,每行记录一个挂载配置,包含6个字段:

# 设备标识  挂载点  文件系统类型  挂载参数  dump备份  磁盘检查顺序
UUID=67b4f53b-614f-4165-9195-288c8277fb14  /data  xfs  defaults  0  0

各字段含义:

  1. 设备标识:可以是设备路径(/dev/sdb1)或UUID
  2. 挂载点:文件系统的挂载目录
  3. 文件系统类型:如xfs、ext4、swap等
  4. 挂载参数:常用defaults(默认参数),其他如rw(可写)、ro(只读)等
  5. dump备份:0表示不备份,1表示需要备份
  6. 磁盘检查:0不检查,1优先检查(通常根分区设为1),2次要检查

八、查看磁盘信息工具

1. lsblk:查看块设备信息

# 树形显示磁盘分区
lsblk

# 列表格式显示
lsblk -l

# 显示文件系统信息
lsblk -f

常用参数:

  • -a:显示所有设备
  • -f:显示文件系统信息
  • -l:列表格式显示
  • -o:自定义输出列

2. df:查看磁盘使用情况

# 人类可读格式显示
df -h

# 显示文件系统类型
df -T

# 查看inode使用情况
df -i

3. swapon/swapoff:管理交换分区

# 启用交换分区
swapon /dev/sdb5

# 关闭交换分区
swapoff /dev/sdb5

# 查看交换分区使用情况
swapon -s

总结

Linux磁盘管理涉及分区表选择、分区创建、文件系统格式化和挂载配置等多个环节。MBR分区表适用于2TB以下硬盘和传统BIOS系统,而GPT分区表是现代大容量硬盘和UEFI系统的首选。掌握fdisk/gdisk分区工具、mkfs格式化工具和mount挂载命令,以及/etc/fstab配置方法,能够帮助你高效管理Linux系统的存储资源,确保数据安全和系统稳定运行。

无论是服务器还是个人计算机,合理的磁盘规划和管理都是系统高效运行的基础。希望本文能为你提供全面的Linux磁盘管理知识,助你更好地应对各种存储场景。

您可能感兴趣的与本文相关的镜像

GPT-oss:20b

GPT-oss:20b

图文对话
Gpt-oss

GPT OSS 是OpenAI 推出的重量级开放模型,面向强推理、智能体任务以及多样化开发场景

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值