前段時間,一家公司的小型應用系統部署在測試服務器上,服務器使用的是。 虛擬機文件是的,使用工具將其轉換為Hyper-V c盤映像,然后將其添加到新創建的虛擬機中。 而且明明7在 中可以正常啟動,但是卻無法存活,總是進到 的殼里。
疾病:
[確定] 路徑。
[確定] 基本。
/dev//-root 上的文件檢查...
-fsck[288]:fsck:()而fsck. /dev//-root
[確定] /dev//-root 上的文件檢查
-[250]::無法啟動
-[250]::/dev//存在
-[250]::/dev//
-[250]::/dev//-root 確實存在
殼...
:/dev//root不存在
:/dev//交換不存在
:/dev//-root不存在
“/運行//.txt”
cd /dev后,我ls,發現沒有hd或sd開頭的硬盤設備。 在網上百度搜索后,只發現一堆人問同樣的問題,但可靠的答案并不多。 所以我必須自己想辦法。
首先,Hyper-V中的虛擬光驅是掛載在SCSI控制器下的,但在Hyper-V中是手動掛載在IDE控制器下的。 于是添加了一個SCSI控制器,并在其下重新掛載了.VHDc磁盤文件。 結果連GRUB都沒有了:
啟動。 和
經檢查虛擬系統轉物理機,第一代Hyper-V虛擬機不支持從SCSI硬盤啟動! 暈,不過工程師還寫了一篇博客-()來解釋(jiǎo)解釋(biàn)。 只好又改回來了。
仔細一想,應該是缺少IDE控制器驅動。 按照之前解決主板驅動與內核自帶驅動沖突的方法,重新編譯了一下,果然可以進入系統了!
加工方法:
1、使用7安裝光盤啟動,在啟動菜單中選擇->虛擬系統轉物理機,然后按 進入恢復命令行。
2、切換到待打補丁的系統根路徑:cd /mnt/after。
3. 備份之前的文件:
mv /boot/-$(uname-r).img /boot/-$(uname-r).img.bak
4. 重建:
-v/boot/-$(uname-r).img$(uname-r)
Linux 與 Boot 不兼容
此外, 還引入了第二代 Hyper-V 虛擬機。 這次支持從SCSI硬盤啟動。 的 John 還撰寫了 Hyper-V2 系列文章。
在新一代虛擬機中,默認啟用Boot,并且會校準數字簽名。 大多數 Linux 發行版不支持此機制。 所以應該在虛擬機設置中將其關閉,或者干脆使用第一代虛擬機(在創建向導中選擇)。