Windows操作系統作為優秀的操作系統,由開發操作系統的微軟公司控制接口和設計,公開標準,因此,有大量商業公司在該操作系統上開發商業軟件。 除了將 VHD 文件用人工方式在【磁盤管理】里【附加】來掛載以外,也能用【腳本】來實現自動掛載。 打開開始菜單中的【啟動】文件夾,將寫好的 mount.bat 放入即可。Mount.bat 文件的內容為: diskpart /s C:\mount.txt select vdisk file=C:\xxx.vhdx 于是很自然地就想到了 Windows 計劃任務。在上面的【批處理】的基礎上,配置【計劃任務】。重啟后,惱人的命令行和用戶賬戶控制提示沒有了。 雖然以【計劃任務】的方式來掛載 VHD 已經相當方便了,但是也許并不是那么快捷——因為計劃任務是通過一個叫做 【Task Scheduler】 的【系統服務】來調度的,只有用戶級別的執行優先級,而倘若能跨過【Task Scheduler】從計劃任務升級為 【系統服務】 來執行,那么效率和優先級都會好很多! 可是自 Win7 以后,微軟對能夠作為【系統服務】運行的程序進行了更嚴格的規定,以致于用戶不能再那么輕易地將自己定制的程序作為系統服務來運行。就算可以通過 SC 命令安裝服務,一般也啟動不了。會報錯。 然而,這并不能阻止我——現在,我需要的只是一個【系統服務的殼子】。幸運的是,這種外殼在Microsoft Windows Resource Kits工具集中被找到,有兩個小文件 instsrv.exe 和 srvany.exe,其中前者是裝入器,后者則是我們的【殼子】! 以管理員打開 CMD,進入instsrv.exe 和 srvany.exe的目錄,假設這兩個文件在E:\,鍵入instsrv.exe mountvdisk e:\srvany.exe 命令以裝載服務。 其中 instsrv.exe 的參數有兩個,mountVdisk 是我們自己的定制服務的名字——就是要把它裝進后面的參數,也就是 srvany.exe(殼子)里,不過注意,要給出 srvany.exe 的完整路徑。 執行完以上的命令,再打開注冊表編輯器,會看到 mountVdisk 服務已裝好: 在注冊表的路徑為: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mountVdisk] 不過此時,mountVdisk 還僅僅只是與 Windows 系統通過【殼子】連接好了,還沒有任何功能,仍須我們進一步編輯它。 Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mountVdisk\Parameters] 最后,關閉注冊表編輯器,回到命令行下,測試一下服務 mountVdisk: 命令行回顯成功的同時也聽見系統發出”咚咚”,虛擬磁盤成功掛載的聲音。 重啟后,服務隨系統一同啟動,VHD掛載成功! 最后值得一提的是,若我們的虛擬磁盤數目很多,那么把這些 VHD 都用一個 mount.txt 來管理,就會有比較大的掛載效率問題——你會看到它們是按照 mount.txt 文件中記錄的順序來挨個兒掛載的,是一種串行的工作方式;而當我們把 mount.txt 文件拆分一下,用多個服務來并行掛載,則效率會好很多! 不過一定要注意拆分的度,串行更利于管理,并行更利于效率,合理的拆分,才能有最好的效果! Windows操作系統對硬件支持良好。 |
溫馨提示:喜歡本站的話,請收藏一下本站!