Linux 系统硬盘MBR转换为GPT格式并扩容

问题描述
之前创建了一台ubuntu16的服务器虚机,挂载了一块2T的云数据盘,当时文件系统做的是MBR(dos)格式,最近因为存量数据增加,数据盘空间不足就在云平台将2T的数据盘扩容成了4T,结果进入虚机扩容的时候报错MBR格式的硬盘最大支持2T,剩余的空间将不会用到。
需要将硬盘转化为GPT分区格式,来支持2T以上空间的使用才行,但是转化硬盘格式又怕数据丢失,于是又找了一台虚机用来测试。

解决方案
fdisk工具支持MBR分区格式的硬盘操作,查看当前硬盘的信息:

Linux 系统硬盘MBR转换为GPT格式并扩容

可以看到硬盘大小是4T,但是分区里最大只能用2T。

操作对数据做好备份或快照,防止操作失败数据丢失。

将MBR转化为GPT分区格式

使用gdisk工具,将分区表改为gpt格式:

Linux 系统硬盘MBR转换为GPT格式并扩容

使用gdisk 硬盘盘符 命令进入程序后,直接 输入w保存并退出,然后输入y确认。gdisk就会将硬盘改为gpt格式分区。
注意:gdisk命令后面跟的是硬盘设备路径/dev/vdb,不是分区路径/dev/vdb1,如果指定错了会变更失败丢失数据

这个方法在大部分场景下都是可以转mbr为gpt的,只有磁盘开头前33个扇区,或最后34个扇区被分区占用的场景不支持。(如,原来的硬盘已经使用MBR分区占用了全部的空间,即后34个扇区被占用了,那么操作会失败)但是对于扩容的场景,后34个扇区尚未被占用,一般不会出问题。

现在查看硬盘分区信息,就会显示其格式为gpt格式:

Linux 系统硬盘MBR转换为GPT格式并扩容

扩容数据盘及文件系统

扩容数据盘:

Linux 系统硬盘MBR转换为GPT格式并扩容

扩容文件系统:

Linux 系统硬盘MBR转换为GPT格式并扩容

扩容后,数据盘大小变为4T。
对于xfs文件系统格式,需要使用xfs_growfs命令进行扩容文件系统操作。

现在通过gdisk命令来查看数据盘的信息:

Linux 系统硬盘MBR转换为GPT格式并扩容

从图中可以看到,数据盘的分区表信息是由两部分组成的,一部分是MBR: protective,另一部分是GPT: present,这种分区格式成为Hybrid MBR,可以将MBR分区表和GPT分区表混合使用。

将文件系统重新挂在后,查看目录下的文件,没有出现数据丢失的情况。
还可以umount卸载挂载的设备,然后使用e2fsck命令检查文件系统有没有错误。

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/10206

(0)
凯影的头像凯影
上一篇 2023年11月23日 下午3:09
下一篇 2023年11月24日 下午4:02

相关推荐

  • Win10彻底永久关闭自动更新

    在使用Win10系统的过程中,经常会遇到系统提示自动更新的问题,时不时就要更新,非常烦人。其实我们可以关闭自动更新功能,这样就不会收到系统提示了。下面小编就给大家分享一下Win10彻底永久关闭自动更新的方法。 一、禁用Windows Update服务   1、同时按下键盘 Win + R,打开运行对话框,然后输入命令 services.msc ,点击下方的“…

    2024年6月11日
    1.8K00
  • Docker安装部署Redis数据库

    通过Docker部署Redis,比起我们自己编译安装的方式,会更加方便容易管理。今天就来简单分享一下使用Docker部署Redis数据库。 1,拉取镜像 通过下列命令: 2,创建数据卷 通常,类似于MySQL,Redis作为数据库,我们最好还是需要将其配置和数据等等挂载到数据卷以持久化到宿主机。 仍然是使用具名挂载的方式方便管理。 这样就创建了两个数据卷分别…

    2023年1月11日
    1.3K00
  • CentOS7系统开机报错:you might want to save “/run/initramfs/rdsosreport.txt“ to a USB stick or /boot…

    一、报错场景我遇到的场景是Centos7强制下电,开机后报错,报错的大致意思是系统文件出现错误 具体报错如下 you might want to save “/run/initramfs/rdsosreport.txt“ to a USB stick or /boot after mounting them and attach it to a bug re…

    2023年10月16日
    1.9K00
  • Centos系统下RabbitMQ安装教程

    一、前言 RabbitMQ是一个开源的遵循 AMQP协议实现的基于 Erlang语言编写,即需要先安装部署Erlang环境再安装RabbitMQ环境。需加注意的是,读者若不想跟着我的版本号下载安装,可根据两者版本号的对应表(下面图示只展示了部分),安装相应版本的Erlang和RabbitMQ,只需在下文修改命令里面的版本号即可。 二、Erlang下载安装 在…

    2022年6月16日
    1.8K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信
Linux 系统硬盘MBR转换为GPT格式并扩容