虛擬光碟,缺少引導程式。如何開機?

虛擬光碟,缺少引導程式。如何開機?

我有一台上網本,硬碟分成 3 個分割區。我已使用“dd”命令(dd if=/dev/sda2 of=<...>)將其備份到外部硬碟中。

現在,我更改了上網本上的分區方案,因此映像不再適合較小的新分區,但我想查看舊實例上的一些配置文件,因此我決定將原始備份轉換為 vmware (. vmdk) 文件並創建虛擬機器並啟動實例。

但是..看起來當時,我必須將 /boot 放在一個單獨的分割區(/dev/sda1)上,我忘了備份:(。現在 VMware 實例無法啟動,因為它無法在虛擬機器上找到作業系統硬碟。

有什麼補救辦法嗎?我可以建立一個小型虛擬磁碟並將 grub2 和核心映像安裝到虛擬機器內並從那裡啟動嗎?如何?任何想法表示讚賞!

答案1

建立 Crashbang Linux VM,從該 VM 啟動 VM,然後將 VMDK 或原始備份載入為輔助磁碟區。請參閱 VMWare 使用者指南第 7 頁,以了解如何將映像安裝為單獨的分割區這裡

答案2

如果您只需要查找一些文件,您可以輕鬆地將 .vmdk 文件掛載到您自己的 Linux 中,而不需要虛擬機器:

 losetup /dev/loop0 /path/to/your/file.vmdk
 losetup -o 32256 /dev/loop1 /dev/loop0
 mount /dev/loop1 /your/mount/point

訣竅在於偏移量,在本例中為 32256。這適用於第一個分割區,但如果您不希望安裝第一個分割區,則在第一個命令之後您將必須使用磁碟機在循環設備上:

 fdisk -l /dev/loop0

那麼偏移量就是每個磁區的位元組數乘以要掛載的分區的起始位置的乘積。

如果你也想啟動它我思考您需要做的就是將相同架構的 Crunchbang 的任何其他正在運行的安裝中的 /boot 目錄複製到您的舊映像中,chroot 到其中,更新 grub,然後就可以了。您可以在 Crunchbang VM 未運行時從其實例執行此操作:只需將新實例的映像儲存到新的 vmdk 檔案中,像其他執行個體一樣安裝該文件,將 /boot 從新映像複製到舊映像、chroot 到舊映像、更新grub,等等。

相關內容