因为认知顺序的原因,之前我都是用fdisk命令手工删除分区表后重建进行扩容,后面才发现可以用growpart命令。

实战建议直接点 AWS EC2 存储空间扩容 跳转过去参考,学习操作可以继续往下看。

  • 注意,fdisk命令要选择硬盘,不能选择硬盘分区

宿主机上为虚拟机硬盘增加容量

  • 虚拟机内查看,分区情况如下

    注意,sda1 必须占满硬盘后面的所有空间(最后34个扇区,是GPT分区的备用区块,不能动)

    补充,Disklabel type: gpt 是GPT,dos是MBR。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 1.2T 0 disk
├─sda1 8:1 0 1.2T 0 part /
└─sda128 259:0 0 1M 0 part [ec2-user@vm01 ~]$ sudo fdisk -l /dev/sda
Disk /dev/sda: 1.2 TiB, 1288490188800 bytes, 2516582400 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 7C9DB885-1EE6-40CC-A4CA-FCFCF17D17DE Device Start End Sectors Size Type
/dev/sda1 4096 2516582366 2516578271 1.2T Linux filesystem
/dev/sda128 2048 4095 2048 1M BIOS boot
  • 宿主机上扩容(须关闭虚拟机)
qemu-img resize amzn2-kvm-2.0.20220719.0-x86_64.xfs.gpt.qcow2 +1000G

GPT格式分区扩容

  • 虚拟机内操作
# 由于扩容了分区,GPT分区的备份区块需要重新到最后面,命令如下
parted -l fix
fix # 然后fdisk 调整分区,只调整分区信息,不会删硬盘上数据
fdisk /dev/sda 打印分区信息 -- p
删除分区 -- d
选择分区 -- 1
创建分区 -- n
指定分区 -- 1
指定分区开始扇区 -- enter默认
指定分区结束扇区 -- enter默认
提示是否删除xfs文件系统标记 -- n
检查分区情况 -- p
保存退出 -- w # 更新一下内核记录
partprobe # 最后扩展一下原分区上的文件系统
xfs_growfs /

MBR格式分区扩容

  • 虚拟机内操作
# 查看硬盘情况
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme1n1 259:0 0 350G 0 disk
└─nvme1n1p1 259:1 0 300G 0 part /data # fdisk 调整分区,只调整分区信息,不会删硬盘上数据
fdisk /dev/nvme1n1
打印分区信息 -- p
删除分区 -- d
创建分区 -- n
选择主分区类型 -- p
指定分区 -- enter默认
指定分区开始扇区 -- enter默认
指定分区结束扇区 -- enter默认
提示是否删除ext4文件系统标记 -- n
检查分区情况 -- p
保存退出 -- w # 更新一下内核记录
partprobe # 最后扩展一下原分区上的文件系统
resize2fs /dev/nvme1n1p1

附录

AWS EC2 存储空间扩容方法

参考:AWS EC2 存储空间扩容

  • AWS 后台扩容硬盘
  • 使用 growpart 命令进行分区扩容
  • 文件系统扩容

提示: growpart 是一个shell脚本,脚本里面调用的是sfdisk(dos)和sgdisk(gpt)命令。

KVM 硬盘分区扩容(GPT与MBR两种分区、fdisk 与 growpart两种方法)的更多相关文章

  1. 硬盘分区时GPT和MBR的区别/选择

    最明显的区别是MBR最大支持2T的硬盘,而GPT则更大. 1.最先出现在Windows8中设置新磁盘,系统会询问你是想要使用MBR还是GPT分区,GPT是一种新的硬盘分区标准.GPT带来了很多新特性, ...

  2. linux分区之gpt(大于2T的分区)

    1.文件系统限制: ext3块尺寸 最大文件尺寸 最大文件系统尺寸1KiB  16GiB  2TiB2KiB  256GiB  8TiB4KiB  2TiB  16TiB8KiB  16TiB  32 ...

  3. Linux分区扩容

    lz在MAC上面使用Linux虚拟机,开始只建了一个分区,挂载在”/”目录下.现在硬盘空间不够了,所以lz就来给这个分区扩容. 首先,当然是要给虚拟机分配更多的硬盘空间喽(lz用的是VMware Fu ...

  4. 双系统Ubuntu分区扩容过程记录

    本人电脑上安装了Win10 + Ubuntu 12.04双系统.前段时间因为在Ubuntu上做项目要安装一个比较大的软件,导致Ubuntu根分区的空间不够了.于是,从硬盘又分出来一部分空间,分给Ubu ...

  5. GPT vs MBR 分区 ,,, Legacy BIOS vs UEFI BIOS

    MBR与GPT两种磁盘分区格式的区别 http://itoedr.blog.163.com/blog/static/120284297201378114053240 GPT Partition Tab ...

  6. 联想T470笔记本GPT改MBR分区

    联想T470笔记本GPT改MBR分区 7000多元买的,这个笔记本配置还可以,就是感觉特别卡顿,于是想重做WIN7系统,为了方便激活,想把GPT分区改成MBR分区. 进入微PE1.2,用傲梅分区助手删 ...

  7. 【转】对硬盘进行分区时,GPT和MBR区别。

    在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区.GPT是一种新的标准,并在逐渐取代MBR. GPT带来了很多新特性,但MBR仍然拥有最好的兼容性.GPT并不是W ...

  8. 对硬盘进行分区时,GPT和MBR有什么区别?

    在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区.GPT是一种新的标准,并在逐渐取代MBR. GPT带来了很多新特性,但MBR仍然拥有最好的兼容性.GPT并不是W ...

  9. linux硬盘分区表为gpt

    由于mbr最大支持2T不够用,给5T的新硬盘弄成GPT的 yum install -y parted#指定硬盘parted /dev/#p 查看分区#rm 1p 删除指定分区#改成gptmklabel ...

  10. (转)硬盘结构,主引导记录MBR,硬盘分区表DPT,主分区、扩展分区和逻辑分区,电脑启动过程

    硬盘结构硬盘有很多盘片组成,每个盘片的每个面都有一个读写磁头.如果有N个盘片.就有2N个面,对应2N个磁头(Heads),从0.1.2开始编号.每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电 ...

随机推荐

  1. JVM调优笔记(一)--Nacos GC引发的服务批量下线问题

    故障背景 线上批量发服务下线的告警邮件,偶发nacos连接超时.采用了spring boot admin(以下称sba)进行服务监控. 原因分析 因为sba服务是基于nacos对其它服务进行监控,所以 ...

  2. java LocalDateTime的使用

    1.LocalDateTime的基本使用 //获取当前时间 LocalDateTime localDateTime = LocalDateTime.now(); System.out.println( ...

  3. Python-BeautifulReport的简单使用

    一.简介 BeautifulReport.report report ( filename -> 测试报告名称, 如果不指定默认文件名为report.html description -> ...

  4. 如何通过C#/VB.NET代码将PowerPoint转换为HTML

    利用PowerPoint可以很方便的呈现多媒体信息,且信息形式多媒体化,表现力强.但难免在某些情况下我们会需要将PowerPoint转换为HTML格式.因为HTML文档能独立于各种操作系统平台(如Un ...

  5. 一文快速入门体验 Hibernate

    前言 Hibernate 是一个优秀的持久层的框架,当然,虽然现在说用得比较多的是 MyBaits,但是我工作中也不得不接触 Hibernate,特别是一些老项目需要你维护的时候.所以,在此写下这篇文 ...

  6. fiddler简单使用

    fiddler简单使用 下载 网上找资源下载 安装 一路同意就可以了 使用 1.配置https证书 这些项全选,然后信任证书,就可以抓到ssl的包 2.改变网络端口 3.改写网页代码 以爬虫网为例,先 ...

  7. npm init vite@latest; 项目名字是abcde,选了vue-ts; cd abcde; npm install; npm run dev;浏览器访问,结果是空白的,这是怎么回事?

    npm init vite@latest 项目名字是abcde,选了vue-ts cd abcde npm install npm run dev 浏览器访问,结果是空白的,这是怎么回事? 后来发现是 ...

  8. Django4全栈进阶之路20 项目实战(在线报修):项目需求分析

    为了实现一个在线报修系统,您可以按照以下步骤进行: 创建Django项目和应用 使用Django的命令行工具创建一个Django项目,并在该项目中创建一个名为"RepairApp" ...

  9. django @login_required

    Django在做后台系统过程中,我们通常都会为view函数添加 @login_required 装饰器,这个装饰器的主要作用就是在用户访问这个方法时,检查用户是否已经成功登陆,如果没有则重定向到登陆页 ...

  10. ModuleNotFoundError: No module named 'flask_mail'

    ModuleNotFoundError: No module named 'flask_mail' 解决: pip install flask_mail