在虚拟机里安装gdisk并不复杂,核心就是先挂载系统镜像或配置在线源,再通过包管理器执行安装命令,整个过程两分钟就能搞定。这篇文章会把虚拟机环境下的gdisk安装步骤拆开讲透,从准备工作到实际命令,再到分区实操和常见陷阱,一步不落。
虚拟机安装gdisk前,先分清你的系统类型
不同虚拟机里跑的操作系统,决定了你用什么安装方式,gdisk是GPT分区管理工具,在Linux和Unix类系统里用得最广,Windows虚拟机则基本用不上它,动手之前,先确认两件事。
确认虚拟机里的系统版本和磁盘类型
打开终端,执行以下命令查看系统信息:
cat /etc/os-release
这个命令会告诉你发行版名称和版本号,比如Ubuntu 22.04、CentOS 7.9还是Debian 12,之后再确认磁盘分区表格式,用lsblk查看磁盘挂载情况,新装虚拟机默认可能是MBR分区,也可能是GPT分区,两种格式下gdisk都能用,但它的主要场景是处理GPT磁盘。
虚拟机安装gdisk的两种典型路径
- 在线安装:虚拟机网络正常时,直接通过发行版的软件源安装,这是最常见的方式。
- 离线安装:虚拟机无法联网时,需要先在宿主机下载安装包,再通过共享目录或ISO镜像传入虚拟机。
大部分情况下,你面对的是在线安装,所以接下来以这个路径为主。
不同发行版虚拟机安装gdisk的具体命令
gdisk在主流Linux发行版仓库里都有收录,安装命令因包管理器不同有所区别。
Ubuntu和Debian系虚拟机用apt安装gdisk
先更新软件源,确保索引是最新的:
sudo apt update
然后安装gdisk:
sudo apt install gdisk -y
安装完成后查看版本确认成功:
gdisk --version
出现版本号即代表安装完成,这个版本号不一定是gdisk --version,有些发行版会输出GPT fdisk的版本信息,属正常现象。
CentOS、RHEL和Rocky Linux虚拟机用yum或dnf安装gdisk
CentOS 7及更早版本使用yum,CentOS 8以上或Rocky Linux、AlmaLinux建议使用dnf:
sudo yum install gdisk -y
或者:
sudo dnf install gdisk -y
如果你用的是RHEL 9系虚拟机,dnf是默认包管理器,直接执行即可,部分精简安装的虚拟机可能没启用EPEL源,gdisk在base仓库里就能找到,一般不需要额外添加源。
openSUSE和Arch虚拟机怎么装gdisk
openSUSE用zypper:
sudo zypper install gdisk
Arch Linux用pacman:
sudo pacman -S gdisk
| 虚拟机系统 | 包管理器 | 安装命令 |
|---|---|---|
| Ubuntu / Debian | apt | sudo apt install gdisk -y |
| CentOS 7 / RHEL 7 | yum | sudo yum install gdisk -y |
| CentOS 8+ / Rocky / Alma | dnf | sudo dnf install gdisk -y |
| openSUSE | zypper | sudo zypper install gdisk |
| Arch | pacman | sudo pacman -S gdisk |
虚拟机没网时离线安装gdisk的可行方案
有些虚拟机处于隔离网络环境,无法直接访问软件源,这种情况下仍能安装gdisk,只是需要提前准备安装包。
从宿主机把gdisk安装包传进虚拟机
以Ubuntu虚拟机为例,先在宿主机下载deb包:
wget http://archive.ubuntu.com/ubuntu/pool/main/g/gdisk/gdisk_1.0.8-4_amd64.deb
然后通过scp命令传入虚拟机:
scp gdisk_1.0.8-4_amd64.deb user@虚拟机IP:/tmp/
进入虚拟机后:
sudo dpkg -i /tmp/gdisk_1.0.8-4_amd64.deb
如果报依赖错误,说明缺少libicu等运行库,需要一并下载传入,CentOS系则用rpm安装,注意依赖关系更复杂,建议通过createrepo做本地源。
利用虚拟机共享文件夹或光盘镜像装gdisk
VMware和VirtualBox都支持共享文件夹,把rpm或deb包放进共享目录,虚拟机内直接挂载即可,以VMware为例,安装open-vm-tools后共享目录位于/mnt/hgfs/,找到安装包后执行安装命令。
光盘镜像方式则是把安装包装进ISO文件,挂载到虚拟机的光驱上,mount后访问安装包目录。
gdisk装好后,如何在虚拟机里用它创建GPT分区
gdisk的交互式操作比fdisk稍显复杂,但逻辑类似,安装只是第一步,真正要掌握的是用它完成实际分区任务。
用gdisk查看虚拟机磁盘的当前分区表
执行以下命令查看某块磁盘的详细信息:
sudo gdisk -l /dev/sda
输出会列出磁盘的大小、扇区数以及现有分区表类型,如果提示“MBR: MBR only”,说明磁盘当前是MBR格式;如果显示“GPT: present”,则已经是GPT分区表。
在虚拟机中创建一个全新GPT分区
假设你有一块空白磁盘/dev/sdb,想把它格式化为GPT并创建分区:
sudo gdisk /dev/sdb
进入交互界面后,依次输入以下指令:
- 输入
o创建新的GPT分区表,确认提示后按y - 输入
n新建分区,分区号直接回车使用默认值(通常是1) - 起始扇区直接回车用默认,结束扇区可以写
+500M表示500MB分区 - 输入
w写入分区表,按y确认
完成后用lsblk验证:
lsblk /dev/sdb
你会看到sdb1这个新分区,如果分区表没刷新,执行partprobe重读分区表。
虚拟机扩容场景下如何用gdisk处理大磁盘
虚拟机磁盘扩容后,gdisk的用途就体现出来了,比如你的虚拟磁盘从20G扩到了50G,但分区表没跟着变化,用gdisk查看:
sudo gdisk -l /dev/sda
这时可以看到磁盘容量变大,但分区还是原来的大小,需要先删除原有分区(操作会保留数据,但风险较高,务必先快照),再重建一个覆盖整个磁盘的新分区,最后用resize2fs或xfs_growfs扩展文件系统。
这个操作牵涉数据安全,建议在测试虚拟机里先演练一次,确认流程没问题再对生产虚拟机动手。
虚拟机安装gdisk时常见的三个坑
安装和使用过程中,有几个高频问题值得提前知道,免得卡在半路。
提示command not found怎么排查
这通常意味着安装没完成,或者PATH环境变量没有包含sbin目录,gdisk的可执行文件位于/usr/sbin/或/usr/bin/,普通用户直接执行可能找不到,用完整路径试一下:
sudo /usr/sbin/gdisk -v
如果确实是路径问题,可以用alias或软链接解决。
UEFI虚拟机和gdisk的兼容性怎么处理
现在的虚拟机绝大多数支持UEFI启动,而UEFI需要GPT分区表才能正常引导,gdisk创建的GPT分区天然兼容UEFI,但如果你在虚拟机里同时用了传统BIOS启动方式和GPT磁盘,需要额外创建一个BIOS boot分区(分区类型代码ef02)。
创建方法:在gdisk交互界面输入n新建分区,分区类型改为ef02,大小设为1M即可,不做这一步,装完系统可能无法启动。
云虚拟机厂商自带的gdisk版本差异
你在公有云或私有云平台创建虚拟机时,部分云厂商的自定义镜像可能不带gdisk,操作顺序上,建议先查看是否已安装:
which gdisk
没有输出就按上文对应发行版的命令安装即可,云虚拟机本质上就是远程的Linux机器,安装逻辑与本地虚拟机完全一致。
关于虚拟机安装gdisk的常见问题解答
虚拟机里的gdisk和fdisk有什么本质区别?
gdisk专门处理GPT分区表,fdisk更擅长MBR分区表,虽然新版fdisk也支持GPT,但gdisk在创建和编辑GPT分区时的特性支持更完整,比如分区类型代码更丰富、对备份分区表的控制更精细,做GPT相关操作时,gdisk是更稳妥的选择。
gdisk安装失败提示依赖不足怎么办?
最常见的场景是Ubuntu虚拟机缺少libicu,CentOS虚拟机缺少libstdc++,解决办法是先执行`sudo apt --fix-broken install`或`sudo yum install -y glibc libstdc++`,再重新安装gdisk,实在不行就卸载重装,一般都能解决。
gdisk命令卡在交互界面退不出来?
这种情况多半是不小心进入了写盘模式,直接输入`q`不保存退出即可,q`是退出,`w`是写入,这两个字母别搞混就行。
gdisk安装只是一个起点,真正的价值在于后续分区管理,虚拟机里跑gdisk和物理机上操作区别不大,核心命令逻辑完全一致,把基础命令吃透,后面不管遇到GPT分区还是大容量磁盘扩容,都能从容应对。