vagrant - Vagrant 磁盘分区与 Debian 文件系统不匹配(分区较大)
问题描述
我正在尝试使用该debian/stretch64
框(即 Debian 9)重建开发虚拟机。我在 MacOS Sierra 10.12.6 上使用 Vagrant 2.0.2 和 VirtualBox 5.2.6)。
在我的 Vagrantfile 中,我指定了一个 30GB 的磁盘:
config.disksize.size = "30GB"
虚拟媒体管理器(VirtualBox 中的文件菜单)将stretch.vdi 的“虚拟大小”(容量)显示为30GB。VBoxManage showhdinfo "stretch.vdi"
也给了我相同的信息,并表明它是一个dynamic default
(即可调整大小的)磁盘,与 .vmdk 不同。
但是,Debian 报告的文件系统要小得多:
/dev/sda1 8.7G 8.7G 0 100% /
(它确实有一些空间,但在启动时重新同步一个大型共享文件夹会不断填满它)。
满前:
- 我跑了
sudo cfdisk /dev/sda
,发现卷报告了 20.1G 的可用空间,而 /dev/sda1 上只有 8.7G。 - 我也这样做了
apt-get install lvm2
,我将拥有用于管理卷的工具。
然后我使用fdisk
(不是 curses 版本)重新配置分区(即我将它们全部删除,将第一个分区设为 29G,并添加一个扩展的 1G 分区,并将“类型”设置为 Linux 交换)。
虽然我看到消息“重新读取分区表失败。设备或资源忙。”,重新启动后cfdisk /dev/sda
输出看起来都是正确的:
Device Boot Start End Sectors Size Id Type
>> /dev/sda1 2048 60819455 60817408 29G 83 Linux
/dev/sda2 60819456 62914559 2095104 1023M 5 Extended
└─/dev/sda5 60821504 62914559 2093056 1022M 82 Linux swap / Solaris
然而,df
返回:
/dev/sda1 8.7G 8.7G 0 100% /
各种教程都提到了pvcreate和pvresize,但是对于后者,我得到:
sudo pvresize /dev/sda
Failed to find physical volume "/dev/sda".
0 physical volume(s) resized / 0 physical volume(s) not resized
这是我完整的 fdisk -l 输出:
Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 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: dos
Disk identifier: 0xe133a040
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 60819455 60817408 29G 83 Linux
/dev/sda2 60819456 62914559 2095104 1023M 5 Extended
/dev/sda5 60821504 62914559 2093056 1022M 82 Linux swap / Solaris
我还应该做什么才能让 Debian 看到完整的 29G?
解决方案
推荐阅读
- laravel - 两种方式绑定到模板中
- c - 如何使用 WSL/linux 同步 windows 上的代码文件?
- c++ - 当编译器看不到可以实现强制转换的可能类型时,是否允许编译器优化 volatile 指针的 dynamic_cast?
- sql-server - T-SQL 查询(根据特定条件分析表中的连续行)
- html - HTML5/CSS3 - 在 SVG CSS3 动画中以自己的中心旋转 HTML 路径矢量绘图
- python - Jupyter notebook 中 shell 命令的实时输出
- android - Firebase云功能陷入无限循环
- java - 在 BinarySearchTree 中获取前任的问题
- php - 领域层中的 IoC
- javascript - JavaScript element.classList.remove 不起作用