用dd實現linux硬碟備份

2022-08-28 12:03:16 字數 1766 閱讀 9794

乙個去年的老本,500g硬碟,空間各種捉急,準備遷移到公司的台式電腦上,卻發現linux上遷移環境沒有windows下那麼方便,只能複製整塊硬碟了。

從公司拿了一塊1t的硬碟,插入移動硬碟盒(**上搞的乙個移動硬碟盒,40元),加電識別,格式化,開始硬碟複製。

市面上針對資料備份的軟體不計其數,我們不討論他們的優缺點。但是如果你正在使用linux(其實如果你沒有使用linux,而是通過一些 linux live cd來啟動計算機,我想也是一樣的),那麼恭喜你,你可以簡單地使用系統命令「dd」來完成磁碟轉殖,分割槽轉殖或者磁碟或分割槽到磁碟映象的複製。一般情況 下,這幾個任務已經可以滿足你日常工作的需要了。

先說明幾個概念,在linux上,一塊硬碟或者乙個分割槽都由乙個目錄表示,一般存在於系統根目錄的/dev/之下。例如/dev/hda代表你的第一塊 ide硬碟,/dev/sdb代表第二塊scsi硬碟,/dev/fd0代表系統的軟盤驅動器等等。同樣每塊硬碟上的分割槽也有獨特的目錄名,例如/dev /hda1表示你第一塊硬碟上的第乙個分割槽(至於這個分割槽上有什麼東西在進行備份操作的時候並不重要)。

1. 磁碟轉殖

也就是把整個硬碟複製乙份。當然你首先需要在計算機上在接上一塊新硬碟,並讓系統識別。例如這塊硬碟可能被識別為/dev/sdb,原有硬碟叫/dev/sda. 然後你可以在linux命令列上簡單地執行:

dd if=/dev/sda of=/dev/sdb

對就這麼簡單,此命令完成後,你的第二塊硬碟上將有乙個和第一塊硬碟一模一樣的副本,也是可以啟動的。因為dd操作就是簡單的按位元組複製,什麼分割槽表啊,mbr啊統統照搬。

當然你也可以做一些微調,來定製一下轉殖操作。例如你可能希望把硬碟上的內容全部備份到乙個磁碟檔案中,而不是另一塊新硬碟,你可以

dd if=/dev/sda of=~/disk1.img

之後,disk1.img就是備份好的磁碟映像檔案,你可以複製或轉移到其他介質也可以壓縮一下:

gzip disk1.img #generates disk1.img.gz

或者在建立磁碟映像檔案的同時就執行壓縮:

dd if=/dev/sda | gzip > disk.img.gz

dd if=/dev/sda | bzip2 > disk.img.bz2

不錯吧!ghost的功能都有了。

2.分割槽轉殖

如果我們不想轉殖整塊磁碟,只想把某些存放資料的分割槽備份一下,你會需要轉殖乙個分割槽。正如預備知識所述,分割槽在linux下也是乙個檔案。例如

dd if=/dev/sda1 of=~/part1.img

將把第一塊磁碟的第乙個分割槽備份到名為part1.img的檔案中。

也可以進行分割槽複製:

dd if=/dev/hda1 of=/dev/hda3

將把分割槽一原樣複製到分割槽3.

3. 從映象檔案恢復磁碟或分割槽

很簡單,把上面命令中,of和if指向的檔名互換一下即可實現恢復。例如

dd if=disk1.img of=/dev/sda

把儲存在disk1.img中的映像恢復到第一塊磁碟

dd if=part1.img of=/dev/hda2

把儲存在part1.img中的映像恢復到第一塊硬碟的第二個分割槽

最後,需要注意一點是,無論備份還是恢復,都需要保證 of 指向的檔案或磁碟空間要大於 if 指向的內容,因為是按位元組複製 如果沒有足夠的空間去儲存內容,備份自然會失敗。

dd命令備份Linux系統

資料丟失帶來的損失是相當昂貴的。關鍵資料的丟失會對各種規模的企業帶來影響。有幾種方法來備份linux系統,包括rsync的和rsnapshot等。本文提供有關使用dd命令備份linux系統的6個例項。dd是乙個功能強大的unix工具,由linux核心的makefile進行引導映像,它也可以用來複製資...

linux下用dd命令拷貝硬碟,複製轉殖及還原硬碟

linux系統如果想做備份還原,使用ghost的時候經常出現問題,後來發現可以直接使用dd命令完成硬碟的轉殖和還原.當拷貝完硬碟後,就可以拿這個硬碟放到其它裝置上跑了。也就是完成了 燒寫 了。實際操作中,最好使用另乙個系統啟動,如另乙個硬碟的系統,或者用live cd。當然,拷貝當前執行中的系統也是...

linux使用dd命令備份系統

1.命令簡介 dd 的主要選項 指定數字的地方若以下列字元結尾乘以相應的數字 b 512,c 1,k 1024,w 2,xm number m if file 輸入檔名,預設為標準輸入。of file 輸出檔名,預設為標準輸出。ibs bytes 一次讀入 bytes 個位元組 即乙個塊大小為 by...