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

Linux 硬盘分区管理

Linux 硬盘分区管理

摘要:本文系统介绍了 Linux 硬盘分区管理的核心概念与实用工具。首先阐述了硬盘分区的必要性,包括数据隔离、分类整理、降低风险等。随后详细对比了 MBR(主引导记录)和 GPT(GUID 分区表)两种主流分区方案,重点讲解了 MBR 的 2TB 容量限制、4个主分区规则以及 GPT 的大容量、多分区优势。文章核心部分通过大量 Shell 命令示例,演示了如何使用fdisk管理 MBR 磁盘(查看、创建、删除、扩展分区),以及使用gdiskparted管理 GPT 磁盘。最后,介绍了wipefs工具清除磁盘标识的方法,并详细说明了通过/etc/fstab配置文件实现文件系统持久化挂载的完整流程,确保服务器重启后数据盘自动挂载,保障业务连续性。

硬盘为什么要分区?

  1. 隔离系统与数据

系统装 C 盘,文件、软件放其他分区,重装系统只清 C 盘,个人数据完好无损

  1. 便于文件分类整理

按用途划分:软件盘、游戏盘、资料盘、备份盘,查找打理更清晰。

  1. 降低数据丢失风险

单个分区损坏、中毒出错,不会影响整块硬盘所有数据

  1. 满足系统启动规则

Windows 必须有活动主分区才能引导开机,整块裸盘无法直接装系统启动。

  1. 适配分区表规范

MBR/GPT 分区格式是系统识别硬盘的基础,无分区无法格式化、正常存取文件。

  1. 权限与用途区分

可单独设置分区权限、加密分区,也能分开存放公私文件。

一、MBR分区方案

  • 最大磁盘容量2TB(超出不认)

分区表限制

  • 最多4 个主分区
  • 3 主分区 + 1 扩展分区
  • 扩展分区内可划分多个逻辑分区

512 字节扇区拆分

446 字节:系统引导程序(GRUB)

中间64 字节:分区表(每 16 字节一个分区,最多 4 个)

最后2 字节55 AA有效启动标志

​ *** 分区规则***

主分区:可直接装系统、设为活动分区引导

扩展分区:不能直接使用,仅当容器

逻辑分区:在扩展分区里划分,用于存数据

fdisk工具:用于管理采用 MBR 分区方案的磁盘,用户可以根据实际情况进行划分分区。

[root@sever ~18:58:21]# fdisk -h用法:fdisk[选项]<磁盘>更改分区表fdisk[选项]-l<磁盘>列出分区表fdisk-s<分区>给出分区大小(块数)选项:-b<大小>扇区大小(512、1024、2048或4096)-c[=<模式>]兼容模式:“dos”或“nondos”(默认)-h打印此帮助文本 -u[=<单位>]显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)-v打印程序版本-C<数字>指定柱面数-H<数字>指定磁头数-S<数字>指定每个磁道的扇区数

查看分区

#方法1:[root@sever ~10:04:52]# fdisk -l /dev/sdbWARNING:fdiskGPT support is currently new, and thereforeinan experimental phase. Use at your own discretion. 磁盘 /dev/sdb:42.9 GB,42949672960字节,83886080 个扇区 Units=扇区 of1*512=512bytes 扇区大小(逻辑/物理):512 字节 /512字节 I/O 大小(最小/最佳):512 字节 /512字节 磁盘标签类型:gpt Disk identifier: 578C7D63-5DDF-4275-86CF-D70A8CD934E8# Start End Size Type Name1204841963512G Microsoft basic data01#方法2:[root@sever ~10:04:57]# fdisk /dev/sdbWARNING:fdiskGPT support is currently new, and thereforeinan experimental phase. Use at your own discretion. 欢迎使用fdisk(util-linux2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:42.9 GB,42949672960字节,83886080 个扇区 Units=扇区 of1*512=512bytes 扇区大小(逻辑/物理):512 字节 /512字节 I/O 大小(最小/最佳):512 字节 /512字节 磁盘标签类型:gpt Disk identifier: 578C7D63-5DDF-4275-86CF-D70A8CD934E8# Start End Size Type Name1204841963512G Microsoft basic data01 命令(输入 m 获取帮助):q

创建分区

[root@sever ~14:07:09]# fdisk /dev/sdb欢迎使用fdisk(util-linux2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0x51be97b2 创建新的 DOS 磁盘标签。#创建分区 -n命令(输入 m 获取帮助):n Partition type: p primary(0primary,0extended,4free)e extended#有空闲剩余默认为p 主区Select(default p): Using default response p 分区号(1-4,默认1): 起始 扇区(2048-41943039,默认为2048): 将使用默认值2048Last 扇区, +扇区 or +size{K,M,G}(2048-41943039,默认为41943039):+2G 分区1已设置为 Linux 类型,大小设为2GiB#w保存退出 q不保存退出命令(输入 m 获取帮助):w The partition table has been altered!Calling ioctl()to re-read partition table. 正在同步磁盘。[root@sever ~14:07:32]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda8:0060G0disk ├─sda18:101G0part /boot └─sda28:2059G0part ├─centos-root253:0038.3G0lvm / ├─centos-swap253:102G0lvm[SWAP]└─centos-home253:2018.7G0lvm /home sdb8:16020G0disk └─sdb18:1702G0part#若未更新分区表,可以通过partprobe 更新最新的分区表

删除分区

[root@sever ~14:10:55]# fdisk /dev/sdb欢迎使用fdisk(util-linux2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。#删除命令命令(输入 m 获取帮助):d 已选择分区1分区1已删除 命令(输入 m 获取帮助):w The partition table has been altered!Calling ioctl()to re-read partition table. 正在同步磁盘。[root@sever ~14:11:05]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda8:0060G0disk ├─sda18:101G0part /boot └─sda28:2059G0part ├─centos-root253:0038.3G0lvm / ├─centos-swap253:102G0lvm[SWAP]└─centos-home253:2018.7G0lvm /home sdb8:16020G0disk

扩展分区演示

#从第四个开始默认是扩展分区 类型为e命令(输入 m 获取帮助):n Partition type: p primary(3primary,0extended,1free)e extended Select(default e): Using default response e 已选择分区4起始 扇区(14682112-41943039,默认为14682112): 将使用默认值14682112Last 扇区, +扇区 or +size{K,M,G}(14682112-41943039,默认为41943039): 将使用默认值41943039分区4已设置为 Extended 类型,大小设为13GiB 命令(输入 m 获取帮助)#扩展分区后,默认创建逻辑分区命令(输入 m 获取帮助):n All primary partitions areinuse 添加逻辑分区5起始 扇区(14684160-41943039,默认为14684160): 将使用默认值14684160Last 扇区, +扇区 or +size{K,M,G}(14684160-41943039,默认为41943039):+2G 分区5已设置为 Linux 类型,大小设为2GiB 命令(输入 m 获取帮助):p 磁盘 /dev/sdb:21.5 GB,21474836480字节,41943040 个扇区 Units=扇区 of1*512=512bytes 扇区大小(逻辑/物理):512 字节 /512字节 I/O 大小(最小/最佳):512 字节 /512字节 磁盘标签类型:dos 磁盘标识符:0x51be97b2 设备 Boot Start End Blocks Id System /dev/sdb120484196351209715283Linux /dev/sdb241963528390655209715283Linux /dev/sdb3839065614682111314572883Linux /dev/sdb41468211241943039136304645Extended /dev/sdb51468416018878463209715283Linux#扩展分区为逻辑分区父容器#扩展分区sdb4 是逻辑分区仓库,自身无文件系统,不能作为挂载点#sdb4头部空白扇区存放逻辑分区索引表,系统靠它找到里面的 sdb5、sdb6…逻辑分区

二、GPT方案

  • 分区理论最大18 ZiB
  • 分区表双备份,不易损坏
  • 不用纠结主分区名额,随便新建分区(不区分主区,扩展分区,逻辑分区),128个分区
  • 删除任意单个分区互不影响,删一个不会连带删别的

gdisk工具

gdisk工具用于管理采用GPT分区方案的磁盘分区,主要用于管理磁盘容量超过2T的磁盘。

#安装工具[root@sever ~14:33:36]# yum install -y gdisk#命令大多与fdisk工具类似#查看分区表[root@sever ~14:35:57]# gdisk -l /dev/sdbGPTfdisk(gdisk)version0.8.10 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR;using GPT. Disk /dev/sdb:41943040sectors,20.0GiB Logical sector size:512bytes Disk identifier(GUID):25605123-B133-46D6-B04D-F130810A81E0 Partition table holds up to128entries First usable sector is34, last usable sector is41943006Partitions will be aligned on2048-sector boundaries Totalfreespace is37748669sectors(18.0GiB)[root@sever ~14:33:46]# gdisk /dev/sdbGPTfdisk(gdisk)version0.8.10 Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present *************************************************************** Found invalid GPT and valid MBR;converting MBR to GPTformatinmemory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE!Exit by typing'q'ifyou don't want to convert your MBR partitions to GPT format! *************************************************************** #输入o 可以将上面的mbr方案转换成GPT Command (? for help): ? b back up GPT data to a file c change a partition's name d delete a partition i show detailed information on a partition l list known partition types nadda new partition o create a new empty GUID partition table(GPT)p print the partition table q quit without saving changes r recovery and transformation options(experts only)ssortpartitions t change a partition's type code v verify disk w write table to disk and exit x extra functionality (experts only) ? print this menu Command (? for help): n Partition number (1-128, default 1): First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +2G Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem' Command (? for help): W Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdb. The operation has completed successfully. [root@sever ~ 14:34:20]# lsblk /dev/sdb NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 20G 0 disk └─sdb1 8:17 0 2G 0 part #查看类型 [root@sever ~ 14:34:26]# blkid /dev/sdb /dev/sdb: PTTYPE="gpt" #更改分区名称 [root@sever ~ 14:40:32]# gdisk /dev/sdb GPT fdisk (gdisk) version 0.8.10 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): c Using 1 Enter name: data01 Command (? for help): p Disk /dev/sdb: 41943040 sectors, 20.0 GiB Logical sector size: 512 bytes Disk identifier (GUID): 25605123-B133-46D6-B04D-F130810A81E0 Partition table holds up to 128 entries First usable sector is 34, last usable sector is 41943006 Partitions will be aligned on 2048-sector boundaries Total free space is 37748669 sectors (18.0 GiB) Number Start (sector) End (sector) Size Code Name 1 2048 4196351 2.0 GiB 8300 data01 #查看分区详细信息 Command (? for help): i Using 1 Partition GUID code: 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (Linux filesystem) Partition unique GUID: A3F304FD-49B6-4DFA-AEF8-25C13F20C665 First sector: 2048 (at 1024.0 KiB) Last sector: 4196351 (at 2.0 GiB) Partition size: 4194304 sectors (2.0 GiB) Attribute flags: 0000000000000000 Partition name: 'data01'#删除分区Command(?forhelp): d Using1Command(?forhelp): w Final checks complete. About towriteGPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!Do you want to proceed?(Y/N): y OK;writing new GUID partition table(GPT)to /dev/sdb. The operation has completed successfully.[root@sever ~14:43:50]# lsblk /dev/sdbNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb8:16020G0disk

三、wipefs工具

作用:查看和清楚磁盘管理信息

[root@sever ~14:45:15]# wipefs /dev/sdboffsettype---------------------------------------------------------------- 0x200 gpt[partition table][root@sever ~14:45:22]# wipefs -a /dev/sdb/dev/sdb:8 个字节已擦除,位置偏移为 0x00000200(gpt):4546492050415254/dev/sdb:8 个字节已擦除,位置偏移为 0x4fffffe00(gpt):4546492050415254/dev/sdb:2 个字节已擦除,位置偏移为 0x000001fe(PMBR):55 aa /dev/sdb: calling ioclt to re-read partition table: 成功[root@sever ~14:45:34]# wipefs /dev/sdb[root@sever ~14:45:45]#

四、parted工具

不演示交互式方案,命令基本同上

#非交互式方案#设置磁盘分区管理方案[root@sever ~15:38:26]# parted /dev/sdb mklabel gpt信息: You may need to update /etc/fstab.#查看分区[root@sever ~15:38:50]# parted /dev/sdb printModel: VMware, VMware Virtual S(scsi)Disk /dev/sdb:21.5GB Sector size(logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志#创建分区 unit MiB统一单位 data01 分区名称 xfs 文件系统类型 起始加结尾[root@sever ~15:42:01]# parted /dev/sdb unit MiB mkpart data01 xfs 1 2049信息: You may need to update /etc/fstab.[root@sever ~15:42:32]# parted /dev/sdb unit MiB printModel: VMware, VMware Virtual S(scsi)Disk /dev/sdb: 20480MiB Sector size(logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志11.00MiB 2049MiB 2048MiB xfs data01#调整分区大小,可以缩容/扩容[root@sever ~15:42:54]# parted /dev/sdb unit MiB resizepart 1 5121信息: You may need to update /etc/fstab.[root@sever ~15:45:29]# parted /dev/sdb unit MiB printModel: VMware, VMware Virtual S(scsi)Disk /dev/sdb: 20480MiB Sector size(logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志11.00MiB 5121MiB 5120MiB xfs data01#删除分区[root@sever ~16:03:23]# parted /dev/sdb rm 1信息: You may need to update /etc/fstab.[root@sever ~16:04:32]# parted /dev/sdb printModel: VMware, VMware Virtual S(scsi)Disk /dev/sdb:21.5GB Sector size(logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志

五、文件系统持久化挂载

为什么要做持久化挂载

  1. 临时挂载重启失效
mount设备 目录

只是临时挂载,服务器重启就消失,业务数据丢挂载直接崩。

  1. 生产必须开机自动挂载,网站、日志、数据盘需要开机直接挂上目录,不用手动敲命令。

  2. UUID 挂载比 /dev/sdb 更稳定,磁盘插拔、顺序变动,设备名sdb/sdc会乱,

UUID 永远不变,不会挂错盘。

​ *** 环境准备***

利用 parted 创建一个分区,并格式化为xfs文件系统。

[root@sever ~18:46:55]# parted /dev/sdb mklabel gpt信息: You may need to update /etc/fstab.[root@sever ~18:47:06]# parted /dev/sdb unit MiB mkpart data01 xfs 1 2049信息: You may need to update /etc/fstab.[root@sever ~18:47:32]# mkfs.xfs /dev/sdb1meta-data=/dev/sdb1isize=512agcount=4,agsize=131072blks=sectsz=512attr=2,projid32bit=1=crc=1finobt=0,sparse=0data=bsize=4096blocks=524288,imaxpct=25=sunit=0swidth=0blks naming=version2bsize=4096ascii-ci=0ftype=1log=internal logbsize=4096blocks=2560,version=2=sectsz=512sunit=0blks, lazy-count=1realtime=noneextsz=4096blocks=0,rtextents=0

​ *** 持久化挂载***

当服务器重启时,系统不会再次将文件系统自动挂载到目录树上,用户无法访问。为了确保系统在启动时自动挂载文件系统, 需要在 /etc/fstab文件中添加一个条目。

/etc/fstab 是以空格分隔的文件,每行具有六个字段。

  • **第一个字段指定设备。**可以使用UUID或device来指定设备。
  • **第二个字段是目录挂载点。**通过它可以访问目录结构中的块设备。挂载点必须存在;如果不存在,请使用mkdir命令进行创建。
  • 第三个字段包含文件系统类型,如xfs或ext4 。
  • 第四个字段是挂载选项,以逗号分隔的。 defaults是一组常用选项。详细信息参考mount(8) 。
  • 第五个字段指定dump命令是否备份设备。
  • 第六个字段指定fsck顺序字段,决定了在系统启动吋是否应运行fsck命令,以验证文件系统是否干净。 该字段中的值指示了 fsck的运行顺序。 对于XFS文件系统, 请将该字段设为0 ,因为XFS并不使用fsck来检查自己的文件系统状态。 对于ext4 文件系统,如果是根文件系统, 请将该字段设 为 1 ; 如果是其他ext4 文件系统, 则将该字段设为2。 这样, fsck就会先处理根文件系统,然后同步检查不同磁盘上的文件系统,并按顺序检查同一磁盘上的文件系统。

示例:

[root@sever ~18:48:46]# blkid /dev/sdb1/dev/sdb1:UUID="e3297f53-528f-4fbe-927f-8df6918bdcee"TYPE="xfs"PARTLABEL="data01"PARTUUID="e5d1daca-fece-49ee-9e36-11aa4c6cd622"[root@sever ~18:48:51]# mkdir /data01# 最后一行增加一个条目UUID="e3297f53-528f-4fbe-927f-8df6918bdcee"/data01 xfs defaults00[root@sever ~18:48:57]# vim /etc/fstab[root@sever ~18:49:53]# mount /data01[root@sever ~18:50:03]# df -h /data01文件系统 容量 已用 可用 已用% 挂载点 /dev/sdb12.0G 33M2.0G2% /data01[root@sever ~18:50:09]# reboot[root@sever ~18:51:27]# df -h /data01文件系统 容量 已用 可用 已用% 挂载点 /dev/sdb12.0G 33M2.0G2% /data01

取消持久化挂载

删除/etc/fstab中对应条目即可。

http://www.jsqmd.com/news/861361/

相关文章:

  • 高性价比塑料链板输送机厂家排行适配指南
  • c语言中语句分类
  • Chiplet经济学:成本如何影响芯片产业发展?
  • 护照阅读器在海外的经典案例分享
  • fastapi · FastAPI framework, high performance, easy to learn, fast to code, ready for production
  • 鸿蒙PC的包管理工具 Homebrew 正式上线,Harmonybrew介绍及使用指南
  • 1987年5月15日中午11-13点出生性格、运势和命运
  • 从零开始学AI Agent:软件工程视角下的企业数字化转型实践指南(收藏版)
  • HBase 分布式集群部署实战:从解压到启动的完整指南
  • 健身 Agent:不止视频,更有 AI 人物实时跟练交互
  • 分享高三模拟卷资源盘点
  • 面试必看!大模型高频考点全覆盖(含LoRA、DPO、MoE、ZeRO、KV Cache等核心问题)
  • ZFX山海证券:“消费转向考验零售韧性”
  • 离散几何拓扑数论(终稿·全定义完整版一)
  • 网卡服务与配置
  • 2026年WMS软件怎么选?10款主流WMS软件功能对比与避坑指南
  • 第九届蓝桥杯国赛b组--备战国赛版h
  • 2026年京东云OpenClaw/Hermes Agent配置Token Plan集成一篇搞定
  • 8G 内存无独显也能跑!零基础本地部署轻量化私人 AI(完整版实操教程)
  • 【无标题】认识Python的数据可视化
  • ascend-transformer-boost:Transformer加速库架构原理剖析
  • 指控系统中态势感知与OODA双螺旋智能系统
  • 1987年6月27日下午13-15点出生性格、运势和命运
  • 沥青生产导向的常减压过程模拟及排产计划优化【附仿真】
  • 人工智能将如何创造就业:从岗位替代到生态重构的深度解析
  • 通过 API 实时监听企业微信外部群变更事件并同步本地数据库
  • android使用websocket
  • 3步实现百度网盘高速下载:Python解析工具实战指南
  • 2026年5月降AI软件红黑榜出炉:论文AI率90%降至3.8%,精准去除ai痕迹!
  • 千问 LeetCode 2538. 最大价值和与最小价值和的差值 Go实现