Centos非LVM根分区容量不足后扩容,对调硬盘挂载/
Centos非LVM根分区容量不足后扩容对调硬盘挂载/引言为什么需要扩容非LVM根分区在服务器运维中CentOS系统根分区/容量不足是常见问题。非LVMLogical Volume Manager分区由于没有逻辑卷的灵活性扩容方式受限。本教程将介绍一种高级技巧通过“对调硬盘挂载”来扩容即暂时挂载新硬盘到临时目录复制根分区数据然后修改挂载点最终实现根分区扩容。这种方法适用于无法在线扩容的物理分区场景。## 基础概念分区与挂载### 1. 分区类型-非LVM分区直接使用物理分区如/dev/sda1不支持动态调整大小。-挂载点目录与分区的关联点如/挂载根分区。### 2. 问题场景假设根分区/dev/sda1只有20GB但应用数据增长到25GB无法在线扩容。我们将使用一块新硬盘如/dev/sdb1临时挂载复制数据后对调挂载点。## 步骤一准备新硬盘与临时挂载### 1. 检查当前分区情况首先确认根分区设备bashdf -h /# 输出示例# Filesystem Size Used Avail Use% Mounted on# /dev/sda1 20G 25G -5G 125% /### 2. 添加新硬盘并分区假设新硬盘为/dev/sdb创建分区bashfdisk /dev/sdb # 创建新分区如/dev/sdb1大小50GBmkfs.ext4 /dev/sdb1 # 格式化### 3. 临时挂载新硬盘创建临时目录并挂载bashmkdir /mnt/tempmount /dev/sdb1 /mnt/temp## 步骤二复制根分区数据关键操作### 1. 使用rsync复制数据复制根分区所有文件到新硬盘保留权限bashrsync -aAXv / /mnt/temp/ --exclude/proc --exclude/sys --exclude/dev --exclude/mnt/temp参数说明--a归档模式保留权限、时间戳等--A保留ACL--X保留扩展属性--v显示进度### 2. 验证复制完整性检查文件数量或使用校验工具bashdiff -r /bin /mnt/temp/bin # 快速检查关键目录## 步骤三对调挂载点核心部分### 1. 进入救援模式重启系统进入单用户模式或使用Live CD确保根分区未挂载bash# 在GRUB菜单按e添加 single 到内核参数行### 2. 重新挂载与设置在救援模式下执行bash# 卸载原根分区假设当前挂载点是/mnt/sysimageumount /mnt/sysimage# 挂载新硬盘到临时路径mount /dev/sdb1 /mnt/temp# 挂载原硬盘到另一个目录mount /dev/sda1 /mnt/old# 复制GRUB配置如果需要cp -a /mnt/temp/boot /mnt/old/boot # 保留原引导文件### 3. 修改fstab文件编辑新硬盘上的fstabbashvim /mnt/temp/etc/fstab# 将根分区从/dev/sda1改为/dev/sdb1# 示例# /dev/sdb1 / ext4 defaults 0 0### 4. 更新GRUB配置可选如果使用UEFI或需要更新引导bashgrub2-mkconfig -o /boot/grub2/grub.cfg # 在救援环境执行### 5. 重启验证重启系统后检查根分区bashdf -h /# 输出应为/dev/sdb1容量50GB## 高级用法自动化脚本示例### 代码示例1自动复制与挂载脚本python#!/usr/bin/env python3CentOS根分区扩容脚本 - 非LVM对调法功能自动复制根分区数据到新硬盘并修改fstab注意需在救援模式运行谨慎使用import osimport subprocessimport sysdef create_mount_point(path): 创建挂载点目录 if not os.path.exists(path): os.makedirs(path) print(f创建目录: {path}) else: print(f目录已存在: {path})def copy_root_data(src, dst): 使用rsync复制根分区数据 # 排除不需要复制的目录 exclude_dirs [/proc, /sys, /dev, /tmp, /mnt] exclude_args .join([f--exclude{d} for d in exclude_dirs]) cmd frsync -aAXv {src}/ {dst}/ {exclude_args} result subprocess.run(cmd, shellTrue, capture_outputTrue, textTrue) if result.returncode 0: print(数据复制成功) else: print(f复制失败: {result.stderr}) sys.exit(1)def modify_fstab(new_root_dev, fstab_path): 修改fstab文件中的根分区设备 with open(fstab_path, r) as f: lines f.readlines() new_lines [] for line in lines: # 替换根分区设备 if line.strip().startswith(/dev/sda1) and / in line: new_line line.replace(/dev/sda1, new_root_dev) new_lines.append(new_line) print(f替换: {line.strip()} - {new_line.strip()}) else: new_lines.append(line) with open(fstab_path, w) as f: f.writelines(new_lines) print(fstab已更新)if __name__ __main__: # 配置新硬盘设备与临时挂载路径 NEW_DEVICE /dev/sdb1 TEMP_MOUNT /mnt/temp # 1. 挂载新硬盘 create_mount_point(TEMP_MOUNT) subprocess.run(fmount {NEW_DEVICE} {TEMP_MOUNT}, shellTrue, checkTrue) # 2. 复制根分区数据 copy_root_data(/, TEMP_MOUNT) # 3. 修改fstab fstab_path os.path.join(TEMP_MOUNT, etc/fstab) modify_fstab(NEW_DEVICE, fstab_path) print(扩容准备完成请重启进入救援模式完成对调。)### 代码示例2验证脚本 - 检查复制一致性python#!/usr/bin/env python3验证根分区复制一致性脚本比较关键文件的MD5值import hashlibimport osimport sysdef calculate_md5(file_path): 计算文件MD5哈希值 hash_md5 hashlib.md5() try: with open(file_path, rb) as f: for chunk in iter(lambda: f.read(4096), b): hash_md5.update(chunk) return hash_md5.hexdigest() except (PermissionError, FileNotFoundError) as e: print(f跳过文件 {file_path}: {e}) return Nonedef compare_directories(src, dst, file_list): 比较两个目录中的文件MD5 errors 0 for rel_path in file_list: src_path os.path.join(src, rel_path.lstrip(/)) dst_path os.path.join(dst, rel_path.lstrip(/)) if os.path.isfile(src_path) and os.path.isfile(dst_path): src_md5 calculate_md5(src_path) dst_md5 calculate_md5(dst_path) if src_md5 ! dst_md5: print(f不匹配: {rel_path}) print(f 源文件: {src_md5}) print(f 目标: {dst_md5}) errors 1 else: print(f文件缺失: {rel_path}) errors 1 if errors 0: print(所有文件一致) else: print(f发现 {errors} 个不一致文件) sys.exit(1)if __name__ __main__: # 检查关键系统文件 critical_files [ /etc/passwd, /etc/shadow, /etc/fstab, /etc/hostname, /boot/grub2/grub.cfg, /bin/bash, /sbin/init ] # 假设源是当前根目标是/mnt/temp compare_directories(/, /mnt/temp, critical_files)## 注意事项与故障排除1.数据安全操作前务必备份重要数据尤其是数据库文件。2.权限问题rsync复制时需确保用户有足够权限建议root。3.SELinux上下文复制后可能需要恢复SELinux标签bash restorecon -Rv /mnt/temp4.引导问题如果系统无法启动使用Live CD重新安装GRUBbash grub2-install /dev/sda## 总结本文详细介绍了在CentOS系统中对非LVM根分区进行扩容的“对调硬盘挂载”方法。通过临时挂载新硬盘、复制根分区数据、修改挂载点配置最终实现根分区扩容。这种方法虽然需要手动操作但适用于任何非LVM分区场景且无需重新安装系统。关键步骤包括1. 准备新硬盘并格式化2. 使用rsync完整复制根分区数据3. 在救援模式下修改fstab和GRUB配置4. 验证数据一致性提供的Python脚本可以自动化部分操作但建议初学者先手动执行以确保理解。掌握这种技巧后你可以灵活应对各种磁盘空间不足的场景提升运维效率。记住操作前备份、操作中谨慎、操作后验证这是系统管理的基本原则。

相关新闻

解读容器的 2020:寻找云原生的下一站

解读容器的 2020:寻找云原生的下一站

解读容器的 2020:寻找云原生的下一站 大家好,我是你们的老朋友,一个在技术圈摸爬滚打多年的博主。今天我们来聊聊一个既熟悉又充满悬疑感的话题:2020年的容器技术。2020年,对于容器和云原生来说,像是一个分…

2026/7/26 1:01:40阅读更多 →
战略管理全球EMBA:民营企业家择校选择指南

战略管理全球EMBA:民营企业家择校选择指南

一、开篇导语民营企业家、企业创始人择校进修,核心诉求是补齐战略认知、升级管理体系、链接优质圈层、适配企业发展需求。当下EMBA项目品类繁杂,海内外院校定位差异极大,盲目择校极易出现课程不符、资源错配、圈层不匹配等问题。本文从全球办…

2026/7/26 1:01:40阅读更多 →
C++ 继承与组合的选择指南:从设计原则到实践

C++ 继承与组合的选择指南:从设计原则到实践

C 继承与组合的选择指南:从设计原则到实践一、引言:面向对象设计的核心抉择在面向对象设计中,代码复用的两种主要方式是继承(Inheritance)和组合(Composition)。继承表达“is-a”关系,组合表达“has-a”关系。选择哪种方式直接影响…

2026/7/26 1:01:40阅读更多 →
数字孪生与AI视频分析在智慧监所的应用实践

数字孪生与AI视频分析在智慧监所的应用实践

1. 项目背景与核心价值在现代化监所管理领域,传统的人工巡查与分散式监控系统已难以满足高安全性、高透明度的管理需求。我们团队研发的"镜像视界空间视频智能驱动平台"本质上是一个融合三维数字孪生、AI行为分析、物联网感知技术的空间智能中枢。这个系统…

2026/7/26 2:05:49阅读更多 →
论文AI率检测与优化工具实测及降AI率指南

论文AI率检测与优化工具实测及降AI率指南

1. 论文AI率检测与优化的核心挑战去年帮学弟修改毕业论文时遇到个棘手问题:查重系统显示他的论文"AI生成率高达99%"。这并非个例,随着AI写作工具的普及,国内外高校和期刊编辑部纷纷引入AI检测机制。Turnitin、iThenticate等主流查重…

2026/7/26 2:05:49阅读更多 →
电力安全三维数字化管理:技术架构与应用实践

电力安全三维数字化管理:技术架构与应用实践

1. 项目背景与核心价值电力行业作为国民经济命脉,其安全生产管理一直是行业发展的重中之重。传统安全管理模式存在"事件还原难、处置过程模糊、责任界定不清"三大痛点。当发生安全事故时,往往面临:现场信息采集不完整,关…

2026/7/26 2:05:49阅读更多 →
Spring Boot+Vue项目Docker容器化实战指南

Spring Boot+Vue项目Docker容器化实战指南

1. 项目概述最近在帮朋友公司重构一个前后端分离的管理系统,技术栈选用了Spring Boot Vue的组合。考虑到后续的部署维护成本,决定采用Docker容器化方案。这种部署方式在实际生产环境中已经非常普遍,但新手在初次尝试时往往会遇到各种"坑…

2026/7/26 2:05:49阅读更多 →
船舶轨迹跟踪控制:神经网络与自适应滑模的融合方案

船舶轨迹跟踪控制:神经网络与自适应滑模的融合方案

1. 项目背景与核心挑战船舶轨迹跟踪控制一直是航海自动化领域的核心课题。去年在IEEE Transactions on Control Systems Technology上读到一篇关于无人船自适应控制的论文时,我发现传统PID控制在应对复杂海况时存在明显局限性——当遇到突发风浪干扰或系统参数突变时…

2026/7/26 2:05:49阅读更多 →
Stable Diffusion大模型技术解析与实战指南

Stable Diffusion大模型技术解析与实战指南

1. 大模型技术解析Stable Diffusion大模型作为当前AI绘画领域的核心技术突破,其核心架构基于潜在扩散模型(Latent Diffusion Model)。与传统的直接在像素空间操作的扩散模型不同,这种设计将计算复杂度降低了约64倍。模型包含三个关…

2026/7/26 2:03:48阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/25 23:03:25阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/25 19:03:04阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/25 19:03:04阅读更多 →