虚拟机磁盘扩容

在虚拟机(如 VMware 或 VirtualBox)中扩展 Ubuntu 的磁盘空间需要 ​​两步操作​ ​:

​(1)在虚拟机软件中扩容虚拟磁盘​ ​ → ​​(2)在 Ubuntu 内部分配扩容的空间​​。以下是详细步骤:


​1. 在虚拟机软件中扩容虚拟磁盘​

​VMware Workstation/Player​
  1. ​关闭虚拟机​(必须完全关机,不能挂起)。
  2. 右键虚拟机 → ​设置​​硬盘​​扩展​
  3. 输入新的磁盘大小(如从 20GB 改为 50GB)→ 确认。
  4. ​注意​ :如果按钮灰色,可能需要先清理快照(​管理 → 快照 → 删除所有快照​)。
​VirtualBox​
  1. 关闭虚拟机。

  2. 打开终端(主机)运行:

    复制代码
    VBoxManage modifyhd "虚拟机磁盘文件.vdi" --resize 51200  # 单位MB(50GB=51200MB)

​2. 在 Ubuntu 中分配扩容的空间​

​(1)查看磁盘信息​
复制代码
sudo fdisk -l

输出示例(注意 /dev/sda 的容量是否已更新):

复制代码
Disk /dev/sda: 50 GiB, 53687091200 bytes  # 确认磁盘总容量已扩展
...
Device     Boot   Start       End   Sectors  Size Id Type
/dev/sda1  *       2048 41943039  41940992   20G 83 Linux
# 这里显示分区仍为 20GB,需调整!
​(2)使用 gparted 图形化工具(推荐)​
复制代码
sudo apt install gparted  # 安装分区工具
sudo gparted             # 启动

​操作步骤​​:

  1. 选择 /dev/sda → 右键 sda1 分区 → ​Resize/Move​
  2. 拖动分区条到最大 → 点击 ​Resize​
  3. 点击 ​Apply​(✔️图标)执行操作。
​(3)或使用 resize2fs(命令行)​

如果 /dev/sda1 是 ext4 文件系统:

复制代码
sudo parted /dev/sda resizepart 1 100%  # 扩展分区到磁盘末尾
sudo resize2fs /dev/sda1                 # 扩展文件系统

验证:

复制代码
df -h  # 查看 `/` 是否已扩容

​3. 常见问题​

​Q1:扩容后 Ubuntu 仍显示旧容量?​
  • 确保 ​分区和文件系统​ 都扩容(很多人漏了 resize2fs)。
  • 重启虚拟机后再检查 df -h
​Q2:虚拟机软件无法扩展磁盘?​
  • ​转换磁盘格式​ :如 VMware 需将 .vmdk 转为非快照模式:

    复制代码
    vmware-vdiskmanager -x 50GB "磁盘文件.vmdk"
​Q3:扩容后数据会丢失吗?​
  • ​不会​,但建议先备份重要数据(操作分区有极小风险)。

​总结​

步骤 操作
​1. 虚拟机扩容​ VMware/VirtualBox 中调整虚拟磁盘大小
​2. 扩展分区​ 使用 gpartedparted 调整分区
​3. 扩展文件系统​ resize2fs /dev/sda1(ext4 适用)
​4. 验证​ df -h 查看 / 是否扩容成功

完成后,你的 Ubuntu 将拥有更多可用空间,可顺利安装 PyTorch 等大型库!

相关推荐
五阿哥永琪10 分钟前
MySQL 中 VARCHAR、TEXT 与 JSON 类型:区别、场景与选型指南
数据库·mysql·json
a95114164213 分钟前
Go语言如何操作OSS_Go语言阿里云OSS上传教程【完整】
jvm·数据库·python
2401_8971905514 分钟前
MySQL中如何利用LIMIT配合函数分页_MySQL分页查询优化
jvm·数据库·python
Polar__Star37 分钟前
C#怎么使用并发集合 C#ConcurrentDictionary和ConcurrentQueue线程安全集合怎么用【进阶】
jvm·数据库·python
xiaoshuaishuai842 分钟前
C# Codex 脚本编写
java·服务器·数据库·c#
Rooting++1 小时前
mysql 算一堆经纬度的距离总长
数据库·mysql
y = xⁿ1 小时前
MySQL:count(1)与count(*)有什么区别,深分页问题
android·数据库·mysql
苏渡苇1 小时前
5 分钟跑起 Redis(Docker 版)
数据库·redis·缓存·docker·redis入门
m0_493934531 小时前
Go语言中 & 与 - 的本质区别及指针使用详解
jvm·数据库·python
gjc5921 小时前
踩坑案例:容器方式部署的MySQL无法访问?
数据库·mysql