windows鏡像加載驅(qū)動(dòng)

背景是制作windows的qcow2鏡像,之前的方式是通過(guò)vmware啟動(dòng)一個(gè)windows 虛擬機(jī)之后,導(dǎo)出ova文件,
通過(guò)生成的.vmdk文件,在linux上通過(guò)qemu-img的方式轉(zhuǎn)化為.qcow2

qemu-img convert -O qcow2 <Windows 虛擬機(jī)>.vmdk <輸出路徑>.qcow2

使用這個(gè).qcow2 鏡像生成的虛擬機(jī)會(huì)藍(lán)屏,原因是:從vmware遷移到kvm上缺少必要的存儲(chǔ)驅(qū)動(dòng),redhat給了提供了virtio的
解決方案,需要現(xiàn)將virtio 先安裝到windows虛擬機(jī)中。

最新穩(wěn)定版本的virtio版本為0.1-85 ,但我要安裝的windows版本為win7,virtio版本只支持win8.1以上的內(nèi)容,需要
去找原來(lái)的舊的版本,virtio的所有版本的地址是:

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/

在比較新的版本0.1.164中發(fā)現(xiàn)了對(duì)應(yīng)win7的驅(qū)動(dòng),但這個(gè)版本的iso鏡像中,并沒(méi)有可執(zhí)行文件,只有.info 以及.vfd的文件,
我沒(méi)有找到對(duì)應(yīng)的安裝方式。但我找到了如何將這部分驅(qū)動(dòng)寫(xiě)入到 iso鏡像的方式

參考文章[windows鏡像如何添加virtio驅(qū)動(dòng)](https://hazx.hmacg.cn/server/windows-iso-add-driver.html
具體操作是使用windows 自帶的dism工具(系統(tǒng)沒(méi)有的話(huà),需要手動(dòng)安裝)

準(zhǔn)備 WIM 映像文件
1. 使用 UltraISO 掛載 Windows ISO 鏡像到虛擬光驅(qū)。(或者使用你電腦上任意一款壓縮軟件打開(kāi) ISO 鏡像)
2. 在 sources 文件夾下復(fù)制出(或使用壓縮軟件提取出)boot.wim和install.wim兩個(gè)文件。
   boot.wim 是引導(dǎo)進(jìn)入的安裝環(huán)境,它缺少驅(qū)動(dòng)時(shí)會(huì)在選擇安裝分區(qū)步驟時(shí)提示找不到硬盤(pán)、需要加載驅(qū)動(dòng)等;install.wim 是系統(tǒng)映像,最終安裝的系統(tǒng)文件都在這里面,給它添加驅(qū)動(dòng),安好系統(tǒng)就不用再手工打驅(qū)動(dòng)了。一次性添加好驅(qū)動(dòng)這對(duì)于同配置硬件環(huán)境批量安裝系統(tǒng)的工程來(lái)講能節(jié)省大量時(shí)間和精力。

添加驅(qū)動(dòng)
  1. 在 D 盤(pán)(或其他位置)新建一個(gè)文件夾mnt。
  2. 使用 UltraISO 掛載 VirtIO 驅(qū)動(dòng) ISO 鏡像到虛擬光驅(qū)。
   這里我們一般只需要 3 個(gè)驅(qū)動(dòng):Balloon、NetKVM、viostor。你也可以直接使用你電腦上任意一款壓縮軟件直接解壓出這三個(gè)文件夾。然后進(jìn)入目錄看一看,按你的 ISO 鏡像中系統(tǒng)的版本信息確定驅(qū)動(dòng)的路徑。例如,我的 ISO 是 WindowsServer2012R2 64 位,那么驅(qū)動(dòng)就是2k12r2\amd64\這個(gè)目錄下面的。
  3. 以管理員身份運(yùn)行 cmd 或 PowerShell,并進(jìn)入 Windows AIK 工具包中 Dism 的所在目錄,我的是C:\Program Files\Windows AIK\Tools\amd64\Servicing(如果系統(tǒng)已自帶 dism 工具,則無(wú)需進(jìn)入任何目錄)
  4. 查看 wim 映像信息:

dism /get-wiminfo /wimfile:D:\install.wim
   列出的信息便是這個(gè) ISO 鏡像所包含的所有系統(tǒng)版本。其中的 “索引” 便是我們下面要用到的版本編號(hào)。
  5. 掛載 wim 鏡像:

dism /mount-wim /wimfile:D:\install.wim /index:1 /mountdir:D:\mnt
   這里的 “index” 就是上一步中看到的索引編號(hào)。
  6. 掛載完畢后,添加驅(qū)動(dòng):

dism /image:D:\mnt /add-driver /driver:F:\viostor\2k12R2\amd64\viostor.inf /forceunsigned
   其他兩個(gè)或者更多驅(qū)動(dòng)都是執(zhí)行這個(gè)命令來(lái)添加驅(qū)動(dòng)。驅(qū)動(dòng)指定到 inf 配置文件。最后的/forceunsigned只有確定是未簽名的驅(qū)動(dòng)時(shí)才用的參數(shù),微軟認(rèn)證的、簽名的驅(qū)動(dòng)不需要加這個(gè)參數(shù)。VirtIO 的 X64 驅(qū)動(dòng)幾乎都是未簽名的。
  7. 添加完驅(qū)動(dòng),查看一下驅(qū)動(dòng)情況:

dism /image:D:\mnt /get-drivers
  8. 確定驅(qū)動(dòng)已經(jīng)添加后,卸載并保存 wim 映像:

dism /unmount-wim /mountdir:D:\mnt /commit
  9. 重復(fù) 4~8 步驟,為 boot.wim 添加驅(qū)動(dòng)。
   install.wim 中的多個(gè)系統(tǒng)版本,你可以選擇性添加驅(qū)動(dòng)。但 boot.wim 中的所有版本建議都添加驅(qū)動(dòng)。

封裝新的 ISO 鏡像
  1. 使用 UltraISO 打開(kāi)原 Windows ISO 安裝盤(pán)鏡像。
   注意,這里可就不能使用壓縮軟件了,否則會(huì)丟失 ISO 的引導(dǎo)數(shù)據(jù)。
  2. 在 sources 文件夾下,刪除boot.wim與install.wim。
  3. 將添加好驅(qū)動(dòng)的boot.wim與install.wim拖到 sources 下。
  4. 點(diǎn)擊【文件】→【另存為】,保存出一個(gè)新 ISO 鏡像即可。

使用這種方式生成的鏡像,我在vmware驗(yàn)證的時(shí)候,出現(xiàn)的問(wèn)題是驅(qū)動(dòng)因?yàn)闆](méi)有簽名導(dǎo)致無(wú)法正常啟動(dòng)機(jī)器,這種方式最后也是有問(wèn)題的,但是這種加載驅(qū)動(dòng)的方式可以學(xué)習(xí)

最后的方案是在我們的kvm管理系統(tǒng)上,直接用iso啟動(dòng)的windows虛擬機(jī),可以正常使用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容