个人博客站点: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分区,一不小心,数据搞没了,后悔都来不及。

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

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

标签:分区,扇区,分区表,png,Linux,GPT,image,MBR

来源: https://blog.csdn.net/MatrixGod/article/details/89642547

linux无损转换磁盘成gpt分区,Linux下数据无损动态修改MBR分区表格式为GPT相关推荐

  1. 转换固态+机械硬盘分区表格式为GPT,UEFI启动,重装WIN10+Ubuntu18.04双系统

    UEFI+GPT,重装win10+ubuntu18.04双系统 一.问题描述 1.Ubuntu系统停留在循环登录界面,无法进入 2.错误删除ubuntu,引导页消失,无法进入任何系统 3.安装grub ...

  2. linux大于3T硬盘多个分区,linux之Ubuntu挂载3T硬盘或大于2T磁盘

    本文主要和大家介绍了Ubuntu挂载3T硬盘或大于2T磁盘的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考,希望能帮助到大家. 1.显示硬盘及所属分区情况.在终端窗口中输入如下命令 fdis ...

  3. U盘装机大师实现gpt转mbr分区表格式图文教程

    http://www.upandashi.com/syjc/4298.html 要知道现在大多数的电脑都采用了gpt分区表格式,而且预装了win8系统.但是在安装win8系统后,有些用户表示使用不希望 ...

  4. linux命令管理GPT分区,Linux磁盘管理GPT分区教程

    Linux内核代码量大.逻辑关系复杂,因此对内核中的错误进行追溯和调试一直以来都是一件既耗费时间又耗费精力的事情.接下来是小编为大家收集的 Linux磁盘管理GPT分区教程,希望能帮到大家. Linu ...

  5. linux系统是否支持gpt分区,Linux下进行GPT分区

    gpt保护分区 ,即全局唯一标识分区表(GUID Partition Table,缩写:GPT),是一个实体磁盘的分区表的结构布局的标准.它是可扩展固件接口(EFI)标准(被Intel用于替代个人计算 ...

  6. gpt分区 Linux lvm,使用LVM方式安装Ubuntu 16.04

    注: 这里只讲解在Ubuntu 16.04下如何配置LVM的方法过程,其他不再陈述.这个方法是通用的,只要操作系统支持LVM即可. 配置好虚拟机后,开始安装,先进入Ubuntu使用界面,对磁盘进行如下 ...

  7. linux系统是否支持gpt分区,Linux下对大硬盘进行GPT分区详解

    大家都知道在linux对硬盘进行分区,在硬盘容量大于2TB是不能用fdisk进行分区的,那么我们如何对超过2TB的大硬盘进行分区呢? 首先使用 fdisk -l 查看磁盘信息,看下盘符,下面就以  / ...

  8. linux命令管理GPT分区,Linux硬盘GPT分区和MBR分区

    之所以想到写这篇,是因为本人在折腾Linux系统的过程中,有多次掉入硬盘分区的陷阱的经历.最近几天,再一次掉入坑中,折腾了两天才从坑中爬出来.经过多方查询资料,终于弄明白了硬盘分区的一些概念.下面将其 ...

  9. suse linux增加新磁盘分区,Virtualbox中Linux添加新磁盘并创建分区

    引言:我们常常在使用系统的时候突然发现,哎呦~~~我们的磁盘空间不够用啦!我遇到常见的就是数据库数据暴增,预留的空间没有啦,只好新添加磁盘,在VB虚拟机上就可以实现,往往苦于没有图文并茂的好资料,下面 ...

最新文章

  1. 【Opencv】直方图函数 calchist()
  2. 集成测试_渐增与非渐增模式优缺点
  3. 领跑交互新时代 蓦然认知助力传统产业智能化升级
  4. python openstack究竟能干嘛_openstack是什么,能干什么
  5. MySQL python update 语句
  6. access 导入 txt sql语句_从零开始学习 MySQL 系列索引、视图、导入和导出
  7. Spring中IoC的入门实例[转]
  8. 华科计算机学院三好学生,他是华科“三好学生标兵”,被保研到北大、复旦、交大等3所名校!...
  9. pythonlambda菜鸟教程-Python reduce() 函数
  10. go使用mongodb
  11. 当我以为这是最后一个Bug,改完就能提交了的时候
  12. 2022年的文章写作计划
  13. 程序员教你玩转电脑手机
  14. laas和saas_什么是IaaS,PaaS和SaaS及其区别
  15. 二十一世纪大学英语读写教程(第四册)学习笔记(原文)——2 - The Gratitude We Need(我们所需要的感激)
  16. Android resource compilation failed 一定能搞定的办法
  17. 一个平凡的人--简介
  18. 找不到anaconda prompt
  19. 鼠标滑过卡片的上浮效果
  20. u盘制作启动盘后空间容量变小解决方法

热门文章

  1. 搜狗for linux下载地址,搜狗输入法Linux版官方下载|搜狗输入法 for Linux下载 v2.0.0.0066_最火软件站...
  2. hutool 自定义excel_使用Hutool Java工具类库 导出Excel 超级简单
  3. 前端架构_从入门到微前端分享
  4. 股票配资系统开发源码 股票实盘交易接口API查看
  5. 强大!腾讯在线文档来了
  6. 用电负荷相关聚类算法总结(1)
  7. 用vs2015或者是vs2017时出现vs找不到msvcp120d .dll或是msvcr120d .dll无法继续执行代码。重新安装可能会解决此问题。
  8. 【Pikachu】漏洞练习平台做题记录+原理解析(1)暴力破解
  9. 达内怎么样,亲身经历后终于知道
  10. 给你的信 (西班牙)约兰达·马丁