??? 平時工作中用到linux的操作命令較多,因此為了方便,就給電腦裝了雙系統,一般工作的時候,都選擇進入linux系統。但是今天有件工作之外的事情需要解決下:創建一個windows啟動盤。如果按照往常來說,我會啟動windows,然后用xxx工作制作u盤啟動工具,傻瓜式的創建啟動盤。但是今天不想再重啟系統進入windows做u盤的啟動盤了。想在想在linux系統中做u盤啟動盤。
??? 之前也接觸到在linux中做u盤啟動盤的一些博客或其他信息,全部是說用dd命令就可以搞定,之前也試過,dd命令刻錄windows的iso文件有問題。系統無法識別刻錄出來的啟動盤。之前沒有深究什么原因造成的,今天繼續這個問題,上網查找解決方案。找了好長時間終于找到一篇可以正常做啟動盤的文章。下面是文章的網址,有興趣的大家可以自行查看:
??? url:http://blog.csdn.net/mike8825/article/details/51138575?locationNum=9 感謝 “天外之客”分享。
??? 博客中也說了,linux的iso都自帶mbr,因此dd刻錄linux的iso時沒有問題,會將mbr一同刻錄進u盤中。但是windows的iso文件不自帶mbr,所以在linux系統做windows的啟動盤的時候,首先需要向u盤中寫入mbr信息。之后在將windows的iso內容拷貝到u盤中。這樣bios就能正確識別mbr,進而linuxwindows系統。
??? 按照上面博客的步驟,我進行了如下操作:
??? 我的操作系統:ubuntu 17.04
??? 1.首先檢查有沒有安裝ntfs-3g,看到我已經安裝過了.如果沒有安裝的執行命令: sudo apt install ntfs-3g
1?$?apt?list?ntfs-3g????????????#檢查是否安裝了ntfs-3g 3?正在列表...?完成 4?ntfs-3g/zesty,now?1:2016.2.22AR.1-4?amd64?[已安裝] 5?6?$sudo?apt?install?ntfs-3g???#如果沒有安裝,則執行這個命令安裝
??? 2.安裝lilo,看到也安裝完成了.如果沒有安裝,執行命令:sudo apt install lilo 進行lilo的安裝.
$dpkg?-l?lilo 期望狀態=未知(u)/安裝(i)/刪除(r)/清除(p)/保持(h) |?狀態=未安裝(n)/已安裝(i)/僅存配置(c)/僅解壓縮(U)/配置失敗(F)/不完全安裝(H)/觸發器等待(W)/觸發器未決(T) |/?錯誤?=(無)/須重裝(R)?(狀態,錯誤:大寫=故障) ||/?名稱????????????????????????????版本?????????????????體系結構?????????????描述 +++-===============================-====================-====================-=================================================================== ii??lilo????????????????????????????1:24.2-2?????????????amd64????????????????LInux?LOader?-?the?classic?OS?boot?loader $?sudo?apt?install?lilo?#如果提示未安裝,則進行安裝操作
??? 3.查看U盤的盤符,將U盤的內容備份,之后格式化U盤.格式化程fat32就可以.(可以看到我的U盤格式已經是fat32的了)
$?sudo?fdisk?-l????????????????#查看U盤的分區 ... Disk?/dev/sdb:?7.3?GiB,?7784628224?bytes,?15204352?sectors Units:?sectors?of?1?*?512?=?512?bytes Sector?size?(logical/physical):?512?bytes?/?512?bytes I/O?size?(minimum/optimal):?512?bytes?/?512?bytes Disklabel?type:?dos Disk?identifier:?0x48156368 設備???????啟動???Start?????末尾?????扇區??Size?Id?類型 /dev/sdb1??*????1347328?15204351?13857024??6.6G??c?W95?FAT32?(LBA)
? ? 可以看到我的U盤的盤符是/dev/sdb
1?$?sudo?mkfs.vfat?/dev/sdb1????????#格式化U盤,前提是U盤被正確卸載 2?mkfs.fat?4.0?(2016-05-06)
??? 我用上方的命令格式化了U盤為fat32的格式.
??? 4.在u盤中創建mbr(mbr是什么意思,自己linux吧),我這里使用的lilo
1?$?sudo?lilo?-M?/dev/sdb?mbr???????????#在u盤中寫入mbr 2?Backup?copy?of?/dev/sdb?in?/boot/boot.0810 3?The?Master?Boot?Record?of??/dev/sdb??has?been?updated.
??? 上方已經提示我創建mbr成功了.下面就是將windows的iso中的內容拷貝到U盤中就可以了.
??? 5.掛在鏡像和U盤,將windows鏡像中內容拷貝到U盤中.
$mkdir?/tmp/win7 $mkdir?/tmp/usb $sudo?mount?-o?loop?cn_windows_7_professional_with_sp1_vl_build_x64_dvd_u_677816.iso?/tmp/win7 $sudo?mount?/dev/sdb1?/tmp/usb $?df?-h??????????????????#查看掛載點 文件系統????????容量??已用??可用?已用%?掛載點 ..... ..... /dev/loop4??????3.1G??3.1G?????0??100%?/tmp/win7 /dev/sdb1???????6.6G??4.0K??6.6G????1%?/tmp/usb
??? 看到我已經掛載了系統,剩下的就是拷貝/tmp/win7中的東西到/tmp/usb中了
??? 6.拷貝iso文件內容到usb中.
$?cp?-rf?/tmp/win7/*?/tmp/usb???????????#拷貝到U盤中 $sync???????????#將內存中數據flush到磁盤中 $sudo?umount?/dev/sdb1???????????#卸載U盤 $sudo?umount?/tmp/win7????????????#卸載鏡像
??? 現在搞定了.重啟電腦,驗證勞動成果吧
???
?