之前安装 Ubuntu 虚拟机时使用的都是默认配置,虚拟机硬盘分配了 60 GB。后来想要扩容,特此记录一下扩容过程。

在操作前请做好备份

首先在 VMware 中修改虚拟硬盘大小。

然后进入虚拟机,使用命令 gdisk -l 来编辑 GPT 分区表。

有两种分区表模式,一种是 MBR(Main Boot Record,主引导记录),是一种传统的分区表格式,广泛用于 BIOS 系统。最大只支持管理 2TB 的硬盘空间。另一种是 GPT(GUID Partition Table,GUID 分区表),是一种更现代的分区表格式,旨在取代 MBR,常用于 UEFI 系统。最大支持管理 9.44 ZB 的硬盘空间。

fdisk 命令用于编辑 MBR 分区表,gdisk 命令用于编辑 GPT 分区表。

$ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.8 Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 126149222 sectors, 60.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 69EBCFE5-CC8A-44E8-A97C-D110BE68AC44
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 126149220
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name
1 2048 4095 1024.0 KiB EF02
2 4096 1054719 513.0 MiB EF00 EFI System Partition
3 1054720 126147208 59.5 GiB 8300 Linux filesystem

我们需要扩容的是容量最大的那个分区,也就是三号分区。

$ sudo gdisk /dev/sda
GPT fdisk (gdisk) version 1.0.8 Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help):

首先使用 d 选项删除分区。这里我们要删除 3 号分区,因此接下来的分区号填 3

Command (? for help): d
Partition number (1-3): 3

删除分区后,使用 n 选项新建分区。接下来要填写分区号,我们再次填写 3 以重建一个 3 号分区。之后会让你填写分区起始扇区号,默认就是 2 号分区后面的第一个扇区号,我们直接回车使用默认值。接下来要求填写结束扇区号,默认就是最后一个可用扇区号,我们也回车使用默认值。接下来要求填写文件系统类型,依然回车使用默认值。

Command (? for help): n
Partition number (3-128, default 3): 3
First sector (34-1258291166, default = 1054720) or {+-}size{KMGTP}:
Last sector (1054720-1258291166, default = 1258291166) or {+-}size{KMGTP}:
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem' Command (? for help):

此时我们的新分区就建立好了。接下来使用w 选项保存并应用更改。

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sda.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.

接下来需要重启以使用新的分区表。

sudo systemctl reboot

重启后,分区已经成功被扩展。我们还需要扩展其上的文件系统到分区的大小。

如果你的文件系统是 ext4,使用 resize2fs 命令。如果你的文件系统是 xfs,使用 xfs_growfs 命令。可以通过 df -T 命令查看文件系统的类型。Linux 一般默认使用 ext4 文件系统。

$ sudo resize2fs /dev/sda3
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/sda3 is mounted on /; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 75
The filesystem on /dev/sda3 is now 157154555 (4k) blocks long.

接下来,使用 df -h 命令查看文件系统的磁盘空间使用情况以验证扩容是否成功。

$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 790M 2.1M 788M 1% /run
/dev/sda3 ext4 590G 19G 548G 4% /
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock
/dev/sda2 vfat 512M 6.1M 506M 2% /boot/efi
tmpfs tmpfs 790M 2.4M 788M 1% /run/user/1000

可以看到 /dev/sda3 的磁盘空间总容量是 590G,说明扩容成功了。

Linux 扩展磁盘分区的更多相关文章

  1. Linux中磁盘分区——理论篇

    Linux中磁盘分区——理论篇 现在主流的分区的方式有两种——MBR分区和GPT分区,本文将着重介绍MBR分区底层原理,及用相关命令验证相关原理 Linux中磁盘分区理论篇 为什么要对磁盘进行分区 M ...

  2. linux初学者-磁盘分区方式篇

    linux初学者-磁盘分区方式篇 一般的计算机都会采用mbr分区方式,这种分区方式只能够建立四个主分区,如果还需要或更多的分区,就需要将其中一个主分区建立成一个扩展分区,在里面建立逻辑分区,这些分区信 ...

  3. Linux系统磁盘分区、删除分区、格式化、挂载、卸载、开机自动挂载的方法总结

    Linux系统按照MBR(Master Boot Record)传统分区模式: 注意:传统的MBR(Master Boot Record)分区方式最大只能分2T容量的硬盘,超过2T的硬盘一般采用GPT ...

  4. Linux下磁盘分区、挂载、卸载操作记录

    Linux下磁盘分区.挂载.卸载操作记录. 操作环境:CentOS release 6.5 (Final) Last :: from 118.230.194.76 [root@CentOS ~]# [ ...

  5. Linux LVM 扩展磁盘分区

    系统:centos 6.3--新建分区 fdisk -l /dev/sdc       # 查看分区 fdisk /dev/sdc          # 创建分区 :n                 ...

  6. Linux下磁盘分区挂载

    一般你去买vps都会看到介绍说硬盘多少G  比如 80G 但是你进入系统df -h的时候发现怎么只有10G呢, 其实这10G是用来装系统的和一些常用服务软件的  不是给你放网站数据的 那50G硬盘在哪 ...

  7. 文件系统管理 之 Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍

    一.df 命令:df 是来自于coreutils 软件包,系统安装时,就自带的:我们通过这个命令可以查看磁盘的使用情况以及文件系统被挂载的位置: 举例: [root@localhost beinan] ...

  8. linux 系统磁盘分区之fdisk

    对于学习磁盘分区,通常学习的都是fdisk命令 当然,对于小于2TB的磁盘,我们基本上是使用fdisk命令进行分区 下面就简单介绍一下fdisk操作磁盘的基本命令和场景模拟 常用命令介绍   fdis ...

  9. Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍

    磁盘分区表.文件系统的查看.统计的工具很多,有些工具是多功能的,不仅仅是查看磁盘的分区表,而且也能进行磁盘分区的操作:但在本文,我们只讲磁盘分区的查看,以及分区的使用情况的查看:本文只是给新手上路之用 ...

  10. linux下磁盘分区详解 图文(fdisk;mkfs)

    linux分区不同于windows,linux下硬盘设备名为(IDE硬盘为hdx(x为从a-d)因为IDE硬盘最多四个,SCSI,SATA,USB硬盘为sdx(x为a-z)),硬盘主分区最多为4个,不 ...

随机推荐

  1. k8s livenessprobe和readinessprobe详解

    一.为什么需要容器探针 如何保持Pod健康 只要将pod调度到某个节点,Kubelet就会运行pod的容器,如果该pod的容器有一个或者所有的都终止运行(容器的主进程崩溃),Kubelet将重启容器, ...

  2. QEMU + Vscode + Arm Arch's Linux调试小记

    QEMU + Vscode + Arm Arch's Linux调试小记 ​ 前几天看到了一篇讲授如何调试ARM Linux内核的文章,这里现在记录一下调试ARM Linux内核的办法 下载QEMU ...

  3. ubuntu22 flask项目 pyinstaller打包后运行报错: jinja2.exceptions.TemplateNotFound: index.html 的一种解决方案

    前言 有一个flask项目a.py, 目录结构如下: |- a.py |- templates | - index.html |- static |- images 运行 python3 a.py可以 ...

  4. SpringBoot配置Mysql连接池

    一.HikariCP连接池 SpringBoot默认使用连接池HikariCP,不需要依赖. spring: datasource: driver-class-name: com.mysql.cj.j ...

  5. SpringCloud学习篇

    什么是SpringCloud Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集成.Spring cloud Task,一个生 ...

  6. 谈谈你对 Vue 生命周期的理解?

    生命周期是什么? Vue 实例有一个完整的生命周期,也就是从 开始创建.初始化数据.编译模版.挂载 Dom -> 渲染.更新 -> 渲染.卸载等一系列过程,我们称这是 Vue 的生命周期. ...

  7. 一图看懂网易数帆指标平台EasyMetrics

    简化数据分析,提升决策速度!EasyMetrics,指标的全生命周期管理平台. 为何EasyMetrics? 集中化管理,降低门槛.开箱即用,提升查询速度. 适合人群? 业务用户.开发者.数据团队,E ...

  8. oeasy 教您玩转linux 之 010209 装酷利器 hollywood

    我们来回顾一下 上一部分我们都讲了什么? 屏幕故障风格的软件包bb 可以设置音频 这次装一个酷 下个hollywood软件包 apt show hollywood apt search hollywo ...

  9. Python+requests编写接口用例

    1.python编写接口用例需要依赖requests模块,我们先确认本地是否安装了requests模块,没有安装的先进行安装. pycharm工具查看已安装的模块:File->Setting-& ...

  10. vue-puzzle-vcode与vue-drag-verify纯前端的拼图人机验证、右滑拼图验证

    转载作品!以获取原作者允许,原文地址,感觉写的比较全面,也比较实用,大家可以去看看原文章: 纯前端的拼图人机验证.右滑拼图验证 1.vue-puzzle-vcode github地址:https:// ...