电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
VirtualBox虚拟机Ubuntu扩容记
分 享
扫描二维码分享
VirtualBox虚拟机Ubuntu扩容记
虚拟机
Ubunut
扩容
码农爱学习
关注
发布时间: 2022-01-27
丨
阅读: 553
> **在VirtualBox中使用ubuntu系统,一开始分配的硬盘空间太小,使用一段时间后发现空间不够用了怎么办?** 本篇记录自己在使用VirtualBox中的ubuntu系统时,对ubuntu系统的进行磁盘扩容的实际操作记录。 # 0 起因 之前在VirtualBox中安装了ubuntu虚拟机,分配了29G的磁盘容量,最近发现不够用了,就想着如何给它扩充容量。 ![](https://cf02.ickimg.com/bbsimages/202201/177ed378de5f7fc38a43ff923e865194.png) **VirtualBox中,ubuntu虚拟机系统是保存在一个vdi文件中**,而我之前又是单独给这个vdi文件在**Windows系统**中分配了一个30G的磁盘,所以,以我目前的情况,想要为ubuntu扩容,就**先要为Window系统中的这个I盘扩容**。 ![](https://cf02.ickimg.com/bbsimages/202201/fa68550cf6057b96009df2a5beade34f.png) ![](https://cf02.ickimg.com/bbsimages/202201/d406110a6053fd0cb1e4b75245bd6db0.png) # 1 为Windows系统的磁盘扩容(失败) Window中为磁盘扩容,可以**使用Window系统自带的磁盘管理器**,从相邻的磁盘中借一些空间。 ![](https://cf02.ickimg.com/bbsimages/202201/fb4d76c4700027c77a665ce048bc1f22.png) 比如从我目前H盘中借来40G,先将H盘压缩出来40G: ![](https://cf02.ickimg.com/bbsimages/202201/718496b4d8fc16487db42bff010a7e6a.png) 然后就出现了**40G的未分配空间**: ![](https://cf02.ickimg.com/bbsimages/202201/87aee8a83ef57a2c6a54ff667f64d134.png) 接着再将这40G空间尝试**扩展到ubuntu所在的I盘**: ![](https://cf02.ickimg.com/bbsimages/202201/925526e5e129a49d1852e3cafd26a791.png) 最后一步出现警告提示:**你选定的操作会将选定的基本磁盘转换成动态磁盘,如果将磁盘转换成动态,你将无法从这些盘上的任何卷(除了当前启动卷)启动已安装的操作系统,你确定要继续吗?** ![](https://cf02.ickimg.com/bbsimages/202201/db659bd8ea6f63d2d11c31582ab40ff2.png) 没太看懂是什么意思,但貌似确定后,可能会造成系统无法启动。 保险起见,**点击否,换另一种方式**继续扩容。 # 2 vdi文件复制转移测试 由于ubuntu虚拟机系统只是一个vdi文件,所以**理论上该文件支持复制与转移**吧,比如将该文件复制到其它地方后,VirtualBox可以再次设置这个ubuntu的vdi文件位置吧。 那就来试一下,将该文件从I盘复制到我的**移动硬盘**中: ![](https://cf02.ickimg.com/bbsimages/202201/28715bfd6dd885a5854e839fa7fd0807.png) 然后在VirtualBox中打开对应的**ubuntu虚拟机设置**,先点击删除目前的vdi文件: ![](https://cf02.ickimg.com/bbsimages/202201/ee11683c97802d24431476fbe4d68168.png) 然后点击**注册**,选择移动硬盘中的vdi文件: ![](https://cf02.ickimg.com/bbsimages/202201/1903f884e00749561dd30886217d97a6.png) 确定之后,出现**错误提示,两个vdi文件的uuid一样,不能使用**。这是因为每个vdi文件都有一个唯一的uuid,而VirtualBox不允许注册重复的uuid。 ![](https://cf02.ickimg.com/bbsimages/202201/3c265280dcdfde5ecc4bd8cac8137e9e.png) 这时我们可以**使用VirtualBox自带的命令行工具**,**对vdi文件进行clone**,这样的复制方式,uuid就不一样了。 注意,复制的时候,要从已能使用(已注册)的vdi文件作为复制源,并且新的vdi要取一个新的名字,且源文件和目标文件不能在一个目录中,否则会提示vdi already exists.。 比如我使用移动硬盘中还未使用过的vdi文件进行clone操作,就会报错: ![](https://cf02.ickimg.com/bbsimages/202201/3586ccb6f024cdc255eb75f2613d62c6.png) 换用从之前ubuntu系统所在的I盘复制,就能正常复制: ```sh VBoxManage.exe clonehd “I:\ubuntuTest.vdi” “J:\xxx\ubuntuTest0104.vdi ``` ![](https://cf02.ickimg.com/bbsimages/202201/7efb6d1c886df5f662e01bae83a876cb.png) 复制时会用进度提示,**复制完会产生一个新的UUID**: ![](https://cf02.ickimg.com/bbsimages/202201/30608afa68d7b818a0f9fced1afa4971.png) 然后我们再来将这个clone的vid文件注册到VirtualBox的ubuntu虚拟机中,看看能不能用: ![](https://cf02.ickimg.com/bbsimages/202201/81907e1fed691a8ff5d542454110c1cf.png) 这次没有报错,已经**注册成功**了: ![](https://cf02.ickimg.com/bbsimages/202201/d420e9ac38502aa8cb0521466e296f3d.png) 启动ubuntu,也一切正常,所以,**根据实际测试,vdi文件可以使用clone的方式复制,复制后的vdi可以正常使用**。 ![](https://cf02.ickimg.com/bbsimages/202201/24e0ad93df75786fe0c6b6c3bd341a96.png) # 3 再次为Windows系统的磁盘扩容(成功) 上面已经测试了vdi文件支持复制,所以,**将vdi复制出一份后,就可以对Window磁盘大胆的改造了**。 直接对ubuntu所在的I盘清空和删除,然后从相邻的H盘借出40G,最初70G的未分配空间: ![](https://cf02.ickimg.com/bbsimages/202201/7944a316dafd5d0d46ec6697dcc6cbda.png) 然后**将这70G空间,再重新分配为I盘,作为ubuntu的使用空间**: ![](https://cf02.ickimg.com/bbsimages/202201/c193971ccef71e01abc4e5724e0821e2.png) 接着,就可以**将移动硬盘的vdi文件再复制回I盘了**,注意,这两个vdi文件,理论上都可以使用,为了和之前一样,**还将原始的vdi文件复制回来**。从另一方面看,刚才的clone操作其实是多余的,只要先将原来的vdi文件复制出去,等Window的磁盘扩大之后,再将原来的vdi文件复制回来就能继续使用。 ![](https://cf02.ickimg.com/bbsimages/202201/9249ba6747bfee871e2830e6b08dcb16.png) 然后**重新将VitrualBox中ubuntu的磁盘设置为I盘中的vdi文件,加载成功**: ![](https://cf02.ickimg.com/bbsimages/202201/3df02e369381299d6b44546558bd62de.png) **查看Windows中I盘的容量,已经扩展为70G**,还有很多可用空间够ubuntu使用: ![](https://cf02.ickimg.com/bbsimages/202201/45a757274485ee8a99213091c51923e9.png) # 4 为vdi文件扩容(假扩容) **上面只是先把ubuntu的vdi所在的Windows系统的I盘进行了扩容,下面要继续把vdi文件进行扩容**,我们先来看一下I盘的使用情况,假设要将vdi扩展到69G,现在计算器中计算一下大小: ![](https://cf02.ickimg.com/bbsimages/202201/fe4e8429da1a934174c397e24d51bb55.png) 注意,我这里一开始计算错了,多了一个0,696320是680G。 然后使用**VirtualBox自带的命令行工具(resize指令)对vdi文件进行扩容**: ![](https://cf02.ickimg.com/bbsimages/202201/1f800b367bbda33e862ee07a9dc8010f.png) 扩容之后来VirtualBox是设置界面看一下,已经变了680G: ![](https://cf02.ickimg.com/bbsimages/202201/bf4bc265df0ccddcc2764de3b144c9f5.png) 实际我是想改到68G的,再使用命令行来改下大小。 但是命令行中提示不能由大往小的改。 ![](https://cf02.ickimg.com/bbsimages/202201/7973098c49c59188a8bfed14dcf1bdc2.png) 好吧,那就把这个vdi删掉,把刚才移动硬盘备份的vdi文件复制过来,再操作一遍吧。 ```sh VBoxManage modifyhd "I:\ubuntuTest.vdi" --resize 69632 ``` ![](https://cf02.ickimg.com/bbsimages/202201/b05b0d34f7cc057d41bb07ecbb4ef04d.png) **重新操作一遍后,VirtualBox是设置界面里,已经显示ubuntu的空间为68G了**。 ![](https://cf02.ickimg.com/bbsimages/202201/943b62fdad48e36f0e01858fccd1bad0.png) 不过,这个时候的vdi文件的大小,其实是没有变大,因为**vdi文件是动态分配的大小的,当实际的使用空间变大上,vdi文件自动变大**。 ![](https://cf02.ickimg.com/bbsimages/202201/0bacdb841b17bb0928b4072426da2b32.png) # 5 为/dev/sda1扩容(真扩容) 当我后续又继续使用ubuntu一段时间后,vdi文件确实变大了。 ![](https://cf02.ickimg.com/bbsimages/202201/d893b438bdd852d5b390a964b5f9107a.png) 但使用时,**ubuntu系统仍会弹窗提示空间不足,什么情况?不是已经给vdi文件扩容了吗?** ![](https://cf02.ickimg.com/bbsimages/202201/084bf1d29f71efb5c6e5f3ebe2ef30e0.png) 实际情况是,**虽然给vdi文件扩容了,但扩充的容量,ubuntu系统还不能直接使用**!!!就像是window电脑多加了一个硬盘,但还没进行格式化,还不能直接使用。 使用df -H指令看一下就明白了。可以看到/dev/sda1仍然是29G的总大小,目前**使用率已经是100%了**。 ![](https://cf02.ickimg.com/bbsimages/202201/99af5343c2c6c7683fcb98c142dfe4e0.png) 使用fdisk指令查看/dev/sda的大小,可用看到有68G,但真正能用的sda1是29G。 ![](https://cf02.ickimg.com/bbsimages/202201/68034648de4cb28049bf5ceb6f9a45ee.png) 先尝试了网上了一些方法,如下图,没有成功: ![](https://cf02.ickimg.com/bbsimages/202201/829cd3caa5eb3e7a11599b59dbc86e7e.png) 也没看太懂具体的执行原理: ![](https://cf02.ickimg.com/bbsimages/202201/86a9d4e00fceb8f67504f5448f2f97f2.png) 还是先使用**ubuntu自带的disk软件**,通过图形化的方式查看一下磁盘的使用情况: ![](https://cf02.ickimg.com/bbsimages/202201/fc102a5513a22e6476147ecbf7bca2cb.png) 可用看到剩余的42G是属于/dev/sda2,且是Unknow状态。 ![](https://cf02.ickimg.com/bbsimages/202201/ab394e2d6a02d3184a018f326414a706.png) ubuntu自带的disk软件其实也不太好用,网上有搜索了一番,**发现另一个更好用的GParted软件**,先使用命令安装: ```sh sudo apt-get install gparted ``` 然后打开该软件,**它是使用方法和Window的磁盘管理器比较像**,将未分配的空间先格式化为unallocated状态: ![](https://cf02.ickimg.com/bbsimages/202201/e4dcc58d3e65fce030bfcf0a5a077237.png) **然后在/dev/sda1上进行扩容即可**。 ![](https://cf02.ickimg.com/bbsimages/202201/e955a095138cce121938eebd76b23894.png) 通过拉动箭头的方式,我直接将剩余的空间都分配给sda1: ![](https://cf02.ickimg.com/bbsimages/202201/027d8667b40556f073092115d7ccff39.png) **分配后的效果如下,da1显示为68G了**: ![](https://cf02.ickimg.com/bbsimages/202201/f8ef719225dc61bea3c4a91907849ef5.png) 最后一步,要点击对号按钮进行确认,刚才的磁盘分配操作才会生效: ![](https://cf02.ickimg.com/bbsimages/202201/1428513d86ee2ab8c21e7e33a44686e7.png) 确认之后,会提示磁盘分配操作成功: ![](https://cf02.ickimg.com/bbsimages/202201/f1d60e5f3db4f4bc786f7b9731dbda92.png) **最后再来使用df -H指令来查看,可用大小/dev/sda1已经是68G了,使用率是42%**,至此,VirtualBox中的ubuntu磁盘扩容才算真正完成。 ![](https://cf02.ickimg.com/bbsimages/202201/49962fb8be9e0f13a5c0d750e9bdfd5e.png) # 6 总结 本篇介绍了自己在使用VirtualBox中的ubuntu系统时,对ubuntu系统的进行磁盘扩容的实际操作记录,其中的一些过程走了弯路,总结下来,扩容的步骤分3部: - 对ubuntu的vdi文件所在的**window磁盘进行扩容**(如果磁盘容量够用则该步可跳过) - 对ubuntu的**vdi文件进行扩容**,方法是使用VirtualBox自带的命令行工具,进行resize - 对ubuntu的**/dev/sda1文件进行扩容**,方式是使用GParted工具软件
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
0
)
码农爱学习
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交