我正在編寫一個程序,用於在Linux上編輯塊設備(/ dev/sda等)的分區。我已經讓程序運行得很好,並且我有單元使用mocks測試了我的代碼(正如在previous question of mine中一樣),現在我想在實際設備上測試我的代碼。創建虛擬現實:使用虛擬塊設備進行測試
該代碼將一個分區表從一個驅動器複製到另一個驅動器,如果需要可能會縮小分區表。之後,它將文件從一個驅動器複製到另一個驅動器。所以我想用各種相對大小的驅動器來測試我的驅動器。最後,它使新驅動器可啓動,基本上克隆設備。遺憾的是,我沒有正確尺寸的物理驅動器在合理的時間限制內測試該程序。我正在使用python編寫程序。我一直在使用.img(創建使用dd
)文件和各種工具來測試它們,但顯然VirtualBox無法在虛擬機中運行它們,所以我無法真正測試它們是否啓動。我也嘗試使用qemu-nbd
安裝.vdi文件,但sddisk和類似的工具可以在這些文件上編輯分區。我甚至嘗試安裝.img文件並使用convertfromraw
命令嘗試以這種方式安裝。但是,grub無法正常啓動,無法讀取硬盤上的文件系統。 (打字ls (hd0)
返回No such filesystem...
)
我可以使用什麼來製作(實際上)任何大小的虛擬磁盤,我可以在我的Linux系統上編輯然後從虛擬盒啓動?
請注意,我並非試圖進行單元測試。這些並不是爲了自動測試,因此它不一定是電腦自己可以輕鬆完成的事情。