【发布时间】:2017-03-10 21:05:29
【问题描述】:
我正在编写一个程序,用于在 linux 上编辑块设备(/dev/sda 等)的分区。我已经让程序运行得很好,并且我已经使用模拟对我的代码进行了单元测试(正如在 previous question of mine 中所做的那样),现在我想在实际设备上测试我的代码。
代码将分区表从一个驱动器复制到另一个驱动器,如果需要,可能会缩小分区表。之后,它将文件从一个驱动器复制到另一个驱动器。所以我想使用各种相对大小的驱动器来测试我的驱动器。最后,它使新驱动器可启动,基本上克隆了设备。不幸的是,我没有正确大小的物理驱动器来在合理的时间限制内测试这个程序。我正在使用python编写程序。
我一直在测试使用 .img(使用 dd 创建)文件和各种工具来挂载它们,但显然 VirtualBox 无法在 VM 中运行这些,所以我无法真正测试它们是否启动。我还尝试使用 qemu-nbd 挂载 .vdi 文件,但 sgdisk 和类似工具可以在这些文件上编辑分区。我什至尝试挂载 .img 文件并使用convertfromraw 命令尝试以这种方式挂载。但是,grub 无法正确启动并且无法读取硬盘驱动器上的文件系统。 (输入ls (hd0) 返回No such filesystem...)
我可以使用什么来制作(几乎)任何大小的虚拟磁盘,我可以在我的 Linux 系统上对其进行编辑,然后从虚拟机启动?
请注意,我不是在尝试进行单元测试。这些不是自动测试,所以它不一定是计算机可以轻松完成的事情。
【问题讨论】: