# Linux Centos系统硬盘分区扩容

Linux Centos系统硬盘分区扩容

2T与6T硬盘

前提准备

  1. 备份数据:所有磁盘操作有风险,务必备份服务器重要数据。

  2. 确认硬盘设备名

    新硬盘接入服务器后,通过以下命令确认设备名,通常是/dev/sdb /dev/sdc等,系统盘一般是/dev/sda

    bash 复制代码
    fdisk -l  # 列出所有磁盘(包括未分区的),注意看"Disk /dev/sdb: 2.0 TiB"这类信息
    lsblk     # 更直观的块设备列表,未分区的磁盘会显示"disk"类型,无分区(如sdb、sdc)

    2T 硬盘设备名为

    复制代码
    /dev/sdb

    6T 硬盘为

    复制代码
    /dev/sdc

    (后续命令以此为例,实际请替换为你的设备名)。

方案一:使用 LVM 管理(推荐,灵活扩展)

LVM(逻辑卷管理)的优势:可动态调整分区大小、跨硬盘合并空间、方便未来扩容。适合需要灵活管理大容量存储的场景。

步骤 1:分区(2T 和 6T 硬盘均需分区)

(1)2T 硬盘分区(MBR 或 GPT 均可,推荐 GPT)

虽然 2T 以下可用 MBR,但 GPT 支持更大容量且更现代,统一用 GPT 更稳妥。

bash 复制代码
# 进入parted工具(支持GPT),操作/dev/sdb(2T硬盘)
parted /dev/sdb

# 交互模式下输入以下命令(每行一个,按回车执行):
(parted) mklabel gpt  # 初始化分区表为GPT(会清空磁盘,确认无数据)
(parted) mkpart primary 0% 100%  # 创建一个主分区,占满整个磁盘(0%起始,100%结束)
(parted) name 1 sdb1_part  # 给分区命名(可选,方便识别)
(parted) set 1 lvm on  # 标记分区为LVM类型(便于后续加入LVM)
(parted) print  # 查看分区结果(确认"Partition Table: gpt"和分区信息)
(parted) quit  # 退出parted
# 验证分区是否成功:
lsblk /dev/sdb  # 应显示/dev/sdb1(分区已创建)
(2)6T 硬盘分区(必须用 GPT,MBR 最大支持 2T)
bash 复制代码
# 操作/dev/sdc(6T硬盘)
parted /dev/sdc
(parted) mklabel gpt  # 强制用GPT(6T超MBR上限)
(parted) mkpart primary 0% 100%  # 全磁盘分区
(parted) name 1 sdc1_part
(parted) set 1 lvm on
(parted) print  # 确认分区大小和类型
(parted) quit
# 验证:
lsblk /dev/sdc  # 应显示/dev/sdc1

步骤 2:创建 LVM 组件(PV→VG→LV)

(1)创建物理卷(PV,将分区转为 LVM 可识别的 "物理卷")
bash 复制代码
# 为2T的分区/dev/sdb1创建PV
pvcreate /dev/sdb1
# 为6T的分区/dev/sdc1创建PV
pvcreate /dev/sdc1

# 验证PV是否创建成功:
pvdisplay  # 查看所有PV,应显示/dev/sdb1和/dev/sdc1,以及各自的大小(约2T和6T)
# 关键信息:PV Name(设备名)、PV Size(容量)、Status(allocatable: yes)
  • 若提示 "Device /dev/sdb1 is already in use",说明分区被占用,需确认是否误操作了系统盘,或用wipefs -a /dev/sdb1清除残留信息(谨慎,会清空数据)。
(2)创建卷组(VG,将多个 PV 合并为一个 "卷组",相当于一个 "大硬盘池")
bash 复制代码
# 创建名为"vg_storage"的卷组,包含/dev/sdb1和/dev/sdc1
vgcreate vg_storage /dev/sdb1 /dev/sdc1

# 验证VG:
vgdisplay vg_storage  # 查看卷组信息
# 关键信息:VG Name(vg_storage)、VG Size(约8T,2T+6T)、Free PE / Size(剩余空间,初始应为8T)
(3)创建逻辑卷(LV,从 VG 中划分空间,相当于 "可动态调整的分区")

需要将 8T 空间全部使用(也可预留部分后续扩展):

bash 复制代码
# 从vg_storage中划分所有空间,创建名为"lv_data"的逻辑卷
lvcreate -l +100%FREE -n lv_data vg_storage
# 参数说明:
# -l +100%FREE:使用卷组中所有剩余空间
# -n lv_data:逻辑卷名称

# 验证LV:
lvdisplay /dev/vg_storage/lv_data  # 查看逻辑卷信息
# 关键信息:LV Size(约8T)、LV Path(/dev/vg_storage/lv_data)

步骤 3:格式化逻辑卷(创建文件系统)

选择适合大容量存储的文件系统,推荐xfs(CentOS 默认,支持动态扩展)或ext4(兼容性好)。

(1)用 xfs 格式化(推荐)
bash 复制代码
mkfs.xfs -f /dev/vg_storage/lv_data
# 参数说明:
# -f:强制格式化(若已有文件系统,会覆盖,谨慎!)
# xfs特点:高性能、支持大文件、可在线扩展(适合LVM动态调整)
(2)若选 ext4(兼容性更好,支持缩小)
bash 复制代码
mkfs.ext4 -F /dev/vg_storage/lv_data
# 参数说明:
# -F:强制格式化
# ext4特点:支持最大1EB容量,可缩小(但缩小需卸载,不如xfs方便扩展)

验证格式化 :用blkid查看文件系统类型:

bash 复制代码
blkid /dev/vg_storage/lv_data  # 应显示TYPE="xfs"或"ext4"

步骤 4:挂载逻辑卷(临时 + 永久)

(1)创建挂载点(目录)
bash 复制代码
mkdir -p /data  # 创建/data目录作为挂载点(可自定义路径,如/mnt/storage)
chmod 755 /data  # 设置权限(根据需求调整,如777允许所有用户读写)
(2)临时挂载(重启后失效,用于测试)
bash 复制代码
mount /dev/vg_storage/lv_data /data

# 验证挂载:
df -h /data  # 显示挂载点和容量(约8T)
lsblk /dev/vg_storage/lv_data  # 显示挂载到/data
(3)永久挂载(写入 /etc/fstab,开机自动挂载)
  • 先获取逻辑卷的 UUID(比设备名更稳定,避免设备名变动导致挂载失败):

    bash 复制代码
    blkid /dev/vg_storage/lv_data  # 输出类似:UUID="xxxx-xxxx-xxxx" TYPE="xfs"
  • 编辑/etc/fstab

    bash 复制代码
    vim /etc/fstab
    # 在末尾添加一行(替换UUID和文件系统类型):
    UUID=xxxx-xxxx-xxxx /data xfs defaults 0 0
    # 字段说明:
    # UUID=xxx:逻辑卷的UUID(从blkid获取)
    # /data:挂载点
    # xfs:文件系统类型(和格式化时一致)
    # defaults:默认挂载选项(rw, suid, dev, exec, auto, nouser, async)
    # 0:dump备份(0=不备份)
    # 0:fsck检查(0=开机不检查,根分区一般为1)
  • 验证fstab配置(避免语法错误导致开机失败):

    bash 复制代码
    mount -a  # 重新加载fstab,若无报错则配置正确
    df -h /data  # 确认仍挂载正常

方案二:不使用 LVM(直接分区挂载,适合固定空间需求)

若不需要动态扩展,可直接分区后挂载(2T 用 GPT 或 MBR,6T 必须 GPT)。

步骤 1:分区(同方案一的步骤 1,仅不标记为 LVM)

(1)2T 硬盘分区(以 GPT 为例,MBR 类似)
bash 复制代码
parted /dev/sdb
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) name 1 sdb1_data
(parted) print  # 确认分区,无需set lvm on
(parted) quit
(2)6T 硬盘分区(同方案一,必须 GPT)
bash 复制代码
parted /dev/sdc
(parted) mklabel gpt
(parted) mkpart primary 0% 100%
(parted) name 1 sdc1_data
(parted) quit

步骤 2:格式化分区(分别格式化 2T 和 6T 的分区)

(1)格式化 2T 分区(/dev/sdb1)
bash 复制代码
mkfs.xfs -f /dev/sdb1  # 或mkfs.ext4 -F /dev/sdb1
(2)格式化 6T 分区(/dev/sdc1)
bash 复制代码
mkfs.xfs -f /dev/sdc1  # 或mkfs.ext4 -F /dev/sdc1

步骤 3:挂载(分别挂载到不同目录)

2T 挂载到/data2t,6T 挂载到/data6t

(1)创建挂载点
bash 复制代码
mkdir -p /data2t /data6t
chmod 755 /data2t /data6t
(2)临时挂载
bash 复制代码
mount /dev/sdb1 /data2t
mount /dev/sdc1 /data6t

# 验证:
df -h /data2t /data6t  # 分别显示2T和6T容量
(3)永久挂载(写入 /etc/fstab)
  • 获取两个分区的 UUID:

    bash 复制代码
    blkid /dev/sdb1  # 2T分区UUID
    blkid /dev/sdc1  # 6T分区UUID
  • 编辑/etc/fstab

    bash 复制代码
    vim /etc/fstab
    # 添加两行:
    UUID=xxx-sdb1 /data2t xfs defaults 0 0
    UUID=xxx-sdc1 /data6t xfs defaults 0 0
  • 验证:

    bash 复制代码
    mount -a  # 无报错则成功

关键区别总结(LVM vs 直接分区)

对比项 使用 LVM 直接分区
空间管理 可合并多硬盘为一个逻辑空间(8T) 各硬盘独立(2T 和 6T 分开)
扩展性 动态扩展(无需卸载,在线调整) 扩展需重新分区(风险高,操作复杂)
灵活性 支持未来添加新硬盘扩容 硬盘容量固定,无法合并新硬盘
复杂度 步骤多(PV→VG→LV) 步骤简单(分区→格式化→挂载)
适用场景 需要灵活扩展、大容量合并存储 空间固定,无需扩展,追求简单

常见问题排查

  1. 分区后不显示分区 :执行partprobe /dev/sdb(刷新分区表)。
  2. 挂载失败 :检查/etc/fstab语法(UUID 是否正确、文件系统类型是否匹配),用mount -a看错误提示。
  3. LVM 扩展空间 :若后续添加新硬盘,步骤为:分区→pvcreatevgextendlvextend→扩展文件系统(xfs 用xfs_growfs /data,ext4 用resize2fs /dev/vg/lv)。
  4. 误操作恢复 :若误删分区表,可用testdisk工具尝试恢复(需提前安装:yum install testdisk)。

按以上步骤操作,即可完成硬盘的分区、格式化和挂载。每一步操作后建议用验证命令确认成功,再进行下一步,降低出错风险。

相关推荐
ICscholar15 小时前
ExaDigiT/RAPS
linux·服务器·ubuntu·系统架构·运维开发
sim202015 小时前
systemctl isolate graphical.target命令不能随便敲
linux·mysql
薛定谔的猫198216 小时前
RAG(二)基于 LangChain+FAISS + 通义千问搭建轻量级 RAG 检索增强生成系统
运维·服务器·langchain
米高梅狮子16 小时前
4. Linux 进程调度管理
linux·运维·服务器
再创世纪17 小时前
让USB打印机变网络打印机,秀才USB打印服务器
linux·运维·网络
fengyehongWorld18 小时前
Linux ssh端口转发
linux·ssh
昨夜见军贴061618 小时前
IACheck AI审核如何实现自动化来料证书报告审核,全面提升生产效率与合规水平
运维·人工智能·自动化
知识分享小能手19 小时前
Ubuntu入门学习教程,从入门到精通, Ubuntu 22.04中的Shell编程详细知识点(含案例代码)(17)
linux·学习·ubuntu
浩子智控19 小时前
电子产品设计企业知识管理
运维·服务器·eclipse·系统安全·硬件工程
Xの哲學20 小时前
深入解析 Linux systemd: 现代初始化系统的设计与实现
linux·服务器·网络·算法·边缘计算