# 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)。

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

相关推荐
会又不会2 分钟前
Jenkins-Email Extension 插件插件
运维·jenkins
电脑能手44 分钟前
[保姆级教程] 解决不同局域网电脑无法SSH的问题
运维·ssh·电脑
tan77º1 小时前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp
czhc11400756631 小时前
Linux 76 rsync
linux·运维·python
你不知道我是谁?2 小时前
负载均衡--四层、七层负载均衡的区别
运维·服务器·负载均衡
蓝易云2 小时前
Qt框架中connect()方法的ConnectionType参数使用说明 点击改变文章字体大小
linux·前端·后端
dyj0953 小时前
【Rancher Server + Kubernets】- Nginx-ingress日志持久化至宿主机
运维·nginx·rancher
花落已飘3 小时前
多线程 vs 异步
linux·网络·系统架构
PanZonghui3 小时前
Centos项目部署之Nginx部署项目
linux·nginx
码出钞能力4 小时前
linux内核模块的查看
linux·运维·服务器