学习
实践
活动
专区
工具
TVP
写文章
专栏首页echoLinux下数据无损动态修改MBR分区表格式为GPT
原创

Linux下数据无损动态修改MBR分区表格式为GPT

个人博客站点:https://www.hiecho.cn

1.简介

腾讯云官网中有一篇帮助文档“扩容Linux文件系统,https://www.qcloud.com/document/product/362/6738,讲解了GPT分区云硬盘扩容后修改分区指引和MBR分区云硬盘扩容后修改分区指引。其中MBR分区扩容下,若扩容后的空间已经大于2TB则不可选择。官网文档没有涉及到MBR的分区扩展到2T以上该怎么处理。

注:写在文前。不管任何形式的扩容硬盘,最好都事先做好硬盘数据的快照,避免手误或者其他因素造成数据丢失。数据无价!!!

2.下面讲解数据无损动态调整MBR的分区为GPT

(1)fdisk -l  /dev/vdb  && partprobe -s

(2)下面以/dev/vdc这块盘做讲解,新建了一个/dev/vdc1分区,并且格式化为ext3文件系统。

fdsik -l /dev/vdc && mkfs.ext3 /dev/vdc1

(3)下面我在控制台把/dev/vdc这块硬盘扩容到2T以上,并且重新挂载。

image.png
image.png

(4)接下来看一下,在MBR分区表下,扩容/dev/vdc1到2.5T能不能行?

这里看到只能扩容到2TB。gg

(5)显然这是MBR分区表的局限。MBR分区表共512个字节。前446字节包括boot loader信息和grub引导信息,还有64字节的磁盘分区信息,以及2个字节的结束标志。而每个主分区要在分区表里占用16字节。所以单个硬盘只能分64/16个主分区。至于为什么每个分区不能超过2TB,请看下图。

image.png

(6)接下来说一下我这个数据无损在线动态调整MBR为GPT方法吧。注:不管是怎么扩容硬盘,扩容前都建议对云硬盘做一下快照。

A.为了证明数据真的无损,我们新建几个file。最后再来看一下数据情况。

image.png
image.png

B.卸载/dev/vdc1

image.png

C.用gdisk(安装方法:yum install gdisk)把MBR分区格式转换程GPT分区格式(MBR不支持2T以上大小)

注:这个方法在大部分场景下都是可以转mbr为gpt的,只有磁盘开头前33个扇区,或最后34个扇区被分区占用的场景不支持。我们的硬盘分区时,默认是从2048扇区开始分的,所以一般不会出现前34个扇区被占用,客户控制台扩容实体云硬盘之后,后33扇区也不存在被占用。所以绝大多数情况下前34后33分区都不会被占用。除非客户主动刻意去占用。这里可以通过part ed 硬盘--unit s--p查看硬盘前34分区有没有被占用。

D.使用parted删除vdc1,并重新创建vdc1(fdisk不支持超过2TB大小,注意记住删除前vdc1的start sector,创建新的vdc1的时候start sector必须和删除前一致)

E.目前还需要扩展下分区,才能挂载正常显示分区大小。

注:这里也可能会遇到下面这种情况

'''

root@bobo ~# e2fsck -yf /dev/vdc1

e2fsck 1.42.9 (28-Dec-2013)

The filesystem size (according to the superblock) is xxx blocks

The physical size of the device is xxx blocks

Either the superblock or the partition table is likely to be corrupt!

Abort? yes

'''

这里是检测到分区表变化了,询问是否放弃修复,并不是报错。这里我加y这个参数的原因在于,如果出现错误直接fix。如果遇到了这种情况,可以直接用这个命令e2fsck -f /dev/vdb1直接修复分区就ok。

F.重新挂载下看下分区大小,并检查下数据完整性

3.GPT分区的优越性(GUID partition table, GPT 磁盘分区表。)

 因为过去一个扇区大小就是 512Bytes 而已,不过目前已经有 4K 的扇区设计出现!为了相容于所有的磁盘,因此在扇区的定义上面, 大多会使用所谓的逻辑区块位址(Logical Block Address, LBA)来处理。GPT 将磁盘所有区块以此 LBA(默认为 512Bytes !) 来规划,而第一个 LBA 称为 LBA0 (从 0 开始编号)。与 MBR 仅使用第一个 512Bytes 区块来纪录不同, GPT 使用了 34 个 LBA 区块来纪录分区信息!同时与过去 MBR 仅有一的区块,被干掉就死光光的情况不同, GPT 除了前面 34 个 LBA 之外,整个磁盘的最后 33 个 LBA 也拿来作为另一个备份!这样或许会比较安全些吧!
image.png

结构详解:

LBA0:和传统MBR分区一样,仍然为主引导记录

LBA1:我们称之为“主分区头”

LBA2-33:共计32个扇区,我们称之为“主分区节点”

LBA-1:我们称之为“备份分区头”,它就是“主分区头”的一个Copy

LBA-2-33:共计32个扇区,我们称之为“备份分区节点”,它就是“主分区节点”的一个Copy

LBA34:正常的GPT分区内容,文件系统(如:FAT,NTFS,EXT等)就是构建在这里面。

大概了解一下:LBA2-LBA33

image.png

4.常用的分区处理的工具

(1)fdisk(MBR)

image.png

(2)gdisk(GPT)

image.png

(3)parted(MBR和GPT通用)

image.png

注:gdisk和fdisk最好不要混用,不要用fdsik处理gpt分区,也不要用gdisk处理mbr分区,一不小心,数据搞没了,后悔都来不及。

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • 磁盘--基本盘和动态盘相关及MBR/GPT介绍(不打保票,操作前先打快照)

    MBR是英文 Master boot record的缩写,是磁盘的主引导记录。MBR分区不支持容量大于2.2TB(2.2 × 1012字节),超过了也只管理前2...

    Windows技术交流
  • 重装系统小百科1,专治疑难杂症

    本文为第一期,着重探讨以下内容,如果你还有其他问题无法解决,欢迎留言,下期一起解决~

    王忘杰
  • 小米笔记本原版镜像重装系统

    前几天无意中把笔记本的ESP分区给删除了,然后再恢复时又无意中把整个硬盘给格式化了,我也是服了自己,在重装的时候遇到各种坑,所以爱游这里就分享下装机过程。

    爱游博客
  • 超过2T硬盘用不了,怎么办?

    今天有朋友买了新的台式机,硬盘容量4TB,安装windows7后只能看到2TB空间,救助。就该问题,涉及到分区表的MBR模式与GPT模式的区别,今天我们就来看一...

    希望的田野
  • fdisk 和 Parted 分区管理工具

    在日常运维工作中交付客户的云主机通常需要挂载超过2T的数据盘,对于超过2T的数据盘需要使用GPT分区表实现,然后老版本的fdisk 分区管理工具不支持GPT分区...

    Kevin song
  • 100个Linux 命令(4)-管理文件系统

    如果一个存储设备已经分过区,并且是 mbr 格式的,那么只能继续使用 fdisk 或 parted 工具进行分区。

    懒人的小脑
  • Linux 磁盘分区工具 gdisk / fdisk

    将磁盘划分为若干个区块操作为磁盘分区,在各个操作系统中都有类似的内容,分区会为硬盘管理带来一些好处:

    为为为什么
  • BIOS与UEFI介绍与使用

    描述:英特尔已经宣布计划在2020年之前将所有芯片组完全替换为UEFI,所以说BIOS即将迎来生命周期的最后一个周期;但是我们现在UEFI附带的新电脑仍将其称为...

    WeiyiGeek
  • 搞它!!!Linux系统MBR分区和GPT分区的区别

    1、最多支持四个主分区, 2、在Linux上使用扩展分区和逻辑分区最多可以创建15个分区, 3、由于分区中的数据以32位存储,使用MBR分区是最大支持2T空...

    不吃小白菜
  • Linux系统迁移

    Linux 系统迁移系统相对于 Windows 来说还是简单许多,使用 Linux 系统自带的 dd 命令即可。

    hotarugali
  • Linux对大于2T的磁盘分区方法及创建逻辑卷LVM

    在需要对一个4T的硬盘分区时,使用fdisk不能建立分区。原因是fdisk只能建立2TB大小的分区。如果大于2T需要采用GPT磁盘模式。下面介绍下MBR和GPT...

    Laikee
  • Linux系统管理

    不管是Windows还是Linux操作系统,底层设备一般均为物理硬件,操作系统启动之前会对硬件进行检测,然后硬盘引导启动操作系统,如下为操作系统启动相关的各个概...

    用户8826052
  • Linux系统磁盘与分区管理

    Linux最传统的磁盘文件系统(filesystem)使用的是EXT4格式,所以要了解文件系统就得要由认识EXT4开始,而文件系统是创建在硬盘上面的,因此我们得...

    孤风洗剑
  • 关于启动引导的那些事儿(下) : UEFI与GPT

    MBR的缺点主要在于他是个程序。引导程序和磁盘分区原本是不太相关的两个事情,但是MBR却用一种及其原始的方式把它们混合在了一起。此外,MBR程序本身也带来了不少...

    KAAAsS
  • Linux 下的 Fdisk 命令

    本文最先发布在:https://www.itcoder.tech/posts/fdisk-command-in-linux/

    雪梦科技
  • 硬盘分区 mbr gpt_磁盘阵列如何分区

    硬盘的物理结构是比较复杂的,这里我们只需要知道最常用到的几个术语即可,也就是chs寻址中所涉及到的结构

    全栈程序员站长
  • GPT概述

    全局唯一标识分区表(GUID Partition Table,缩写:GPT)是一个实体硬盘的分区结构。它是可扩展固件接口标准的一部分,用来替代BIOS中的主引导...

    用户5807183
  • 分区

    原文https://ecloud.10086.cn/op-help-center/show/F230B8AC46DA76B8

    用户5166330
  • deepin装回windows系统

    之前网上无意间看到deepin这个国产pc操作系统,初见deepin时给人一种初恋般的怦然心动的感觉。正好这时家里有一台5年前的笔记本电脑,安装windows已...

    马修

扫码关注腾讯云开发者

领取腾讯云代金券