低内核版本机器扩容磁盘

简介: 低内核版本机器扩容磁盘


收集信息


确认内核版本


uname -a 查看 内核版本低于3.6 ,采取删除分区重建分区来扩容(这是迫不得已的方法,只有在没有dracut-modules-growroot 这个包时才使用此方法)


查看分区文件系统


执行blkid  看到都是ext4

但是执行fdisk -l 看到start 是 1  ,正常fdisk -l 查看MBR分区应该是从2048开始



查看分区参数

执行fdisk -lu 让分区按照sector 来显示


扩容


执行yum install -y dracut-modules-growroot 安装growpart工具,提示找不到包。

决定采用删除分区再新建分区的方案 执行fdisk 删除分区

[root@localhost ~]# fdisk /dev/xvdaWARNING: DOS-compatible mode is deprecated. It's strongly recommended to         switch off the mode (command 'c') and change display units to         sectors (command 'u').Command (m for help): pDisk /dev/xvda: 53.7 GB, 53687091200 bytes255 heads, 63 sectors/track, 6527 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000215a8    Device Boot      Start         End      Blocks   Id  System/dev/xvda1   *           1        5222    41942016   83  LinuxCommand (m for help): dSelected partition 1Command (m for help): nCommand action   e   extended   p   primary partition (1-4)pPartition number (1-4): 1First cylinder (1-6527, default 1): 1Last cylinder, +cylinders or +size{K,M,G} (1-6527, default 6527):Using default value 6527Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.The kernel still uses the old table. The new table will be used atthe next reboot or after you run partprobe(8) or kpartx(8)Syncing disks.

由于操作的是正在使用的分区,因此需要重启来加载新的分区表,重启后系统就挂了,grub 无法识别分区文件系统。 因为一个cylinder 会包含多个sector ,这也是为什么前面fdisk 看 xvda 和xvdb 都是1,但是起始扇区却不一致的原因。 前面新建分区按照起始cylinder 设置为1 ,没有指定扇区 已经注定了这个分区文件系统将会异常。



恢复分区文件系统

使用PE 启动后,执行testdisk /dev/xvda   来进行恢复

由于是MBR分区,系统自动就选择 了第一项 【Inter】Inter/PC partition



分析当前分区结果并找回丢失的分区



不用等待扫描完就主动停止,因为除了修改分区起始扇区没做其它操作不需要深度扫描,绿色的就是找到的分区,按P查看文件是不是想要的(如果看不到,说明这个分区不对)



按Enter 继续并将分区信息写会磁盘,执行partprobe /dex/xvda告诉内核重新加载分区表


重新扩容磁盘

扩展分区


由于PE的fdisk版本较高,因此这里新建分区会按照sector 来显示,可以看到默认就是2048 扇区开始

需要注意的是,在提示分区包含一个ext4 的signature,提示是否需要移除时,一定要输入N ,否则保存后,文件系统会再次无法识别。



操作完毕后,执行blkid 分区文件系统正常。


扩展文件系统

执行resize2fs 提示需要先e2fsck -f  ,执行e2fsck -n 是先确认分区是否有异常。



扩容文件系统完成,分区大小已经发生变化





注:

❶ fdisk 低版本是按照cylinder来显示的 ,如果不加参数u 默认以cylinder为单位,而一个cylinder上会有多个sector导致在新建分区时无法指定准确的起始位置。

❷ fdisk 新建分区时,输入u 可以按照扇区sector来 指定起始扇区。

❸ 如果是GPT分区 选择第二项【EFI GPT】,遇到MBR 分区搜索不到正确的分区时尝试当做GPT分区扫描。

相关文章
|
存储 弹性计算 数据挖掘
阿里云服务器ECS经济型e实例与通用算力u1区别、特性优势、使用场景及租赁费用对比
阿里云ECS云服务器的经济型e实例和通用算力型u1实例各有特点。e实例适合个人开发者和小微企业,适用于中小型网站、开发测试和轻量级应用,性价比高。u1实例则更适合中小企业,提供更高的性能和稳定性,适用于企业级应用、数据分析和中小型数据库。同等配置下,u1实例在计算、存储和网络性能上优于e实例。
955 86
|
Linux 区块链 Python
Python实用记录(十三):python脚本打包exe文件并运行
这篇文章介绍了如何使用PyInstaller将Python脚本打包成可执行文件(exe),并提供了详细的步骤和注意事项。
752 1
Python实用记录(十三):python脚本打包exe文件并运行
|
弹性计算 负载均衡 应用服务中间件
slb健康检查域名配置
slb健康检查域名配置
291 7
|
安全 物联网 编译器
Zig 教程
Zig 教程
880 1
|
JavaScript 前端开发 开发者
TypeScript 入门指南:类型注解、接口和泛型
在现代前端开发中,TypeScript 已经成为越来越受欢迎的选择。TypeScript 是 JavaScript 的超集,它为 JavaScript 提供了类型系统和更多功能,帮助开发者在编码阶段发现潜在的错误,提高代码质量和可维护性。本文将深入探讨 TypeScript 中的核心特性:类型注解、接口和泛型。我们会从基础概念出发,循序渐进地讲解,同时提供丰富的代码示例和注释。
614 0
|
存储 算法 数据可视化
云上大数据分析平台:解锁数据价值,驱动智能决策新篇章
实时性与流式处理:随着实时数据分析需求的增加,云上大数据分析平台将更加注重实时性和流式处理能力的建设。通过优化计算引擎和存储架构等技术手段,平台将能够实现对数据流的高效处理和分析,为企业提供实时决策支持。通过优化计算引擎和存储架构等技术手段,平台将能够实现对数据流的高效处理和分析,为企业提供实时决策支持。
1523 8
|
机器学习/深度学习 数据采集 监控
基于机器学习的糖尿病风险预警分析系统
基于机器学习的糖尿病风险预警分析系统
381 1
|
Prometheus 监控 Cloud Native
基于prometheus的微服务指标监控
基于prometheus的微服务指标监控
|
监控 Unix Linux
windows和linux实时监控文本内容的命令
windows和linux实时监控文本内容的命令
668 1
channelSftp.put(InputStream src, String dst, int mode);里的mode都是什么类型的
【5月更文挑战第15天】channelSftp.put(InputStream src, String dst, int mode);里的mode都是什么类型的
730 2