天天看點

Linux(ubuntu)使用dd從iso制作win7安裝u盤(讀卡器一樣),以及備份分區

轉自我的獨立部落格:alanslab.cn

先吐個槽,早知道windows越用越慢,沒想到太久不用還會壞。。。

昨天就遇到了這樣一件事,電腦的光驅早拆了換硬碟托架了,隻好翻出來以前手機的sd卡開刀,網上參考了一些用dd做安裝u盤的文章,很多不靠譜,最終還是在英文資料裡找到了需要的東西。這裡留個筆記,順便看誰需要也可以省點力氣。

參考網址(感謝原作者分享!):

http://serverfault.com/questions/6714/how-to-make-windows-7-usb-flash-install-media-from-linux

http://www.techrepublic.com/blog/linux-and-open-source/drive-and-partition-backups-with-dd/

dd的簡介我就省了,一搜一大把。

網上流行的一種做法是把u盤分成一個區,格式化成fat,然後 

dd if=/xxx.iso of=/dev/sdx

,似乎是有成功的人,但這裡缺少了制作引導這一步,至少在我這裡是沒能搞定。

linux下制作引導可以用 

ms-sys

 或 

lilo -M

指令,我用的是後者,主要是因為在源裡直接有,而且之前用過lilo有親切感。。。

sudo apt-get install lilo

,用ms-sys的話自行搜尋。

注意:選擇安裝lilo的話不要執行它的配置向導,否則會頂替掉你電腦現在用的引導(grub之類)

開始之前用

df

或别的什麼辦法搞清楚你的u盤是哪個,這裡以我自己的情況為例

/dev/sdd

使用 

cfdisk /dev/sdd

 或 

fdisk /dev/sdd

分區,删除所有分區,然後建立一個新的分區,占用全部空間,把type設定成NTFS(就是在修改type的地方改成7),标記為bootable。

新的分區将會是/dev/sdd1

用NTFS格式化:

mkfs.ntfs -f /dev/sdd1

寫入 windows 7 的 MBR 到u盤上(windows 8 也一樣):

ms-sys -7 /dev/sdd

 或 

sudo lilo -M /dev/sdd mbr

然後挂載 ISO 和 USB:

mount -o loop win7.iso /mnt/iso

mount /dev/sdd1 /mnt/usb

複制ISO所有檔案到U盤: 

cp -r /mnt/iso/* /mnt/usb/

等複制完就完工,圖形化界面操作應該也一樣的。

現在的情況是,你有了一個一切準備就緒的win7安裝u盤,再回想之前最開始的時候那個不完全的做法,我們可以發揮一下,用dd把目前可以引導的u盤整個備份下來,以後再用時就可以用之前的辦法直接還原了。

dd if=/dev/sdd of=/win7.img

這樣我們就有了一個直接恢複到u盤上就可以進行usb安裝的鏡像檔案了,可能不同的U盤容量上還會有一些麻煩,必須要跟這個U盤一樣或者更大,dd是連沒用到的空間都一起儲存了的。

備份分區以及壓縮備份檔案

最簡單的備份分區方式跟上文一樣,就是

dd if=/dev/sda1 of=/path/to/backup.img

,但前文提到過dd會把空白位元組也一起複制了,對U盤來說還能接受,但備份硬碟分區也這樣就實在是離譜了,我們可以在備份完成後對img進行壓縮,或在備份過程中即時完成:

dd if=/dev/sda1 | bzip2 -9f >/path/to/backup.img.bz2

還原時,如果你沒有壓縮:

dd if=/path/to/backup.img of=/dev/sda1

用前文方式壓縮了的話:

bunzip2 -dc /path/to/backup.img.bz2 | dd of=/dev/sda1

繼續閱讀