1. 程式人生 > >dd 命令拷貝linux系統

dd 命令拷貝linux系統

Linux系統如果想做備份還原,使用ghost的時候經常出現問題,後來發現可以直接使用dd命令完成硬碟的克隆和還原.當拷貝完硬碟後,就可以拿這個硬碟放到其它裝置上跑了。也就是完成了“燒寫”了。
實際操作中,最好使用另一個系統啟動,如另一個硬碟的系統,或者用live cd。當然,拷貝當前執行中的系統也是可以的,但不知當前的這個系統還有哪些不確定東西,所以還是不建議。
用fdisk -l檢視當前所有分割槽資訊(記得用root,否則執行了啥也看不到),如:

Device Boot Start End Blocks Id System

/dev/sdb1 2048 1002047 500000 83 Linux

/dev/sdb2 1002048 12002047 5500000 83 Linux

/dev/sdb3 12002048 13002047 500000 83 Linux

/dev/sdb4 13002048 15002047 1000000 83 Linux

上面是我為了方便寫文件而做的分割槽,可以看到Blocks十分工整,那是故意而為之的。
全盤拷貝的命令:

dd if=/dev/sdb of=/dev/sdc

分割槽拷貝:

dd bs=512 count=[fdisk命令中最大的end數+1] if=/dev/sdb of=name.img

以上為例:

dd bs=512 count=15002048 if=/dev/sdb of=ghost_linux_latelee.img

由於ghost_linux_latelee.img會很大,可以在拷貝時將其壓縮:

dd bs=512 count=15002048 if=/dev/sdb | gzip -9 > ghost_linux_latelee.img.gz

上面所做的,就是傳說的系統“備份”,或叫“系統克隆”。
對應的,有系統恢復的操作。命令如下:

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

如果是壓縮包,則命令為:

gzip -c -d ghost_linux_latelee.img.gz | dd of=/dev/sda

在上面的拷貝過程中,並不知道拷貝了多少,只有最終結束時才顯示出時間、拷貝速度。為了檢視進度,可以在另一個終端輸入(記得用root):

watch -n 5 killall -USR1 dd

(注:killall並不是傳說中把程序kill掉,而是傳送一個指定的訊號到指定的程序)
之後,就能執行dd的終端看到進度了,如:

58299+0 records in
58298+0 records out
29848576 bytes (30 MB) copied, 4.67728 s, 6.4 MB/s
161403+0 records in
161402+0 records out
82637824 bytes (83 MB) copied, 9.69359 s, 8.5 MB/s
238651+0 records in
238650+0 records out
122188800 bytes (122 MB) copied, 14.7105 s, 8.3 MB/s

備註:
用dd的方式,得到的映象檔案十分龐大——取決於所要做的系統的大小。比如,拷貝4GB的分割槽,真的就是拷貝4GB,即使是用gzip壓縮,也壓縮不了多少,檔案依然很大。
另外dd的方式也消除了我之前的擔心,因為現在的Linux發行版的分割槽使用硬碟uuid作為標識,而不是/dev/sda1這種格式,據說uuid更好。但用dd拷貝,竟然連硬碟的uuid也一一拷貝,毫無變化,這的確讓我吃驚。不過,目前看沒什麼時間研究dd了。
PS:使用dd命令,可以讀取硬碟的mbr扇區,示例如下:
dd if=/dev/sdb of=mbr.bin bs=512 count=1

相關推薦

dd 命令拷貝linux系統

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

6個關於dd命令備份Linux系統的例子

資料丟失帶來的損失是相當昂貴的。關鍵資料的丟失會對各種規模的企業帶來影響。有幾種方法來備份Linux系統,包括rsync的和rsnapshot等。本文提供有關使用dd命令備份Linux系統的6個例項。 dd是一個功能強大的UNIX工具,由Linux核心的makefile進

DD命令備份Linux系統

神奇的fdisk和dd命令 其實Linux使用dd命令備份系統就是Ghost,類似於window的Ghost版本。        進入Linux作業系統,開啟命令列,執行如下命令:      sudo  fdisk -u -l       可以檢視所有磁碟上的所

dd 命令 sd卡系統遷移

trac ace rds content 出現問題 bind data repl star Linux系統如果想做備份還原,使用ghost的時候經常出現問題,後來發現可以直接使用dd命令完成硬盤的克隆和還原.當拷貝完硬盤後,就可以拿這個硬盤放到其它設備上跑了。也就是完成了

linux目錄操作命令大全 linux系統開發學習

dir 一次 時間 掛載 變換 方式 遞歸 介紹 inux Linux的目錄結構為樹形結構,最頂級的目錄為根目錄,其他目錄通過掛載添加到樹中,通過解除掛載來進行刪除,除此之外,還可以對目錄進行其他處理操作,常用的目錄處理命令如下:1. ls命令(列出目錄)常用用法:ls –

dd命令測試linux磁碟讀寫速度操作

1、先熟悉兩個特殊的裝置:     (1)/dev/null:回收站、無底洞。     (2)/dev/zero:產生字元。 2、測試磁碟寫能力     time dd if=/dev/zero of=/testw.dbf bs=4k

nmcli 命令Linux 系統命令列網路管理器

要想在 Linux 命令下對網路進行相關設定,總的來說不外乎兩類方法:其一乃寫配置檔案,如 /etc/network/interfaces 進行網路介面配置,其二直接在終端呼叫 Linux 網路管理命令,在終端間接同文件打交道。 首先為大家所熟知的,ifconfig 命令和 iwconf

使用ln命令Linux系統中建立連結檔案

在Linux中ln命令用來為檔案建立連線,連線型別分為硬連線(Hard Link)和符號連線(Symbolic Link)兩種,預設的連線型別是硬連線。如果要建立符號連線必須使用"-s"選項。 關於軟硬連線解釋 硬連線 硬連線是指通過索引節點來進行連線。在Linux的

使用dd命令Linux下建立大檔案,批量大小檔案生成方法

前沿:最近在開發自動從U盤拷貝大批量檔案到linux系統的的功能。由於需要幾十個G的大檔案來做測試,如果自己去找這麼多資源,然後再拷貝,非常麻煩。所以學了下dd命令,現在總結一下: 一、引數介紹 if=FILE         從FILE中讀取資料,而不是預設的標準輸入。

java程式碼實現ping命令(支援linux系統)

一.檢測當前作業系統的型別 String osName = System.getProperty("os.name");//獲取作業系統型別 String command = ""; if(osName.contains("Linux")){ comm

使用ln命令Linux系統中建立連線檔案

導讀 在Linux中ln命令用來為檔案建立連線,連線型別分為硬連線(Hard Link)和符號連線(Symbolic Link)兩種,預設的連線型別是硬連線。如果要建立符號連線必須使用"-s"選項。 關於軟硬連線解釋 硬連線 硬連線是指通過索引節點來進行連線。在Li

linux dd 命令 硬碟拷貝 系統快速安裝 硬碟系統複製

最近所做的專案涉及到系統的“燒寫”,在ARM中,一般用flash,容量也不大,直接用erase操作即可。但在x86上,硬碟動輒上G,安裝一個發行版本的Linux,也得3GB~4GB,如果將這些資料“燒寫”,的確不易,反正我是不知道用什麼方法。 ghost方法我想過(但沒試過),因此最終的裝置沒有滑鼠、沒有鍵

Linux系統裁減之,制作一個極度精簡的Linux-用腳本實現自動拷貝命令和依賴庫文件

用腳本實現自動拷貝命令和依賴庫文件第2章 用腳本實現自動拷貝命令和依賴庫文件 這篇文章主要是對我上一篇博文http://blog.51cto.com/linuxprince/2045703加以完善的,前一篇文章中拷貝命令和依賴庫文件的過程是完全手工方式的,顯得特別LOW,這章把該過程完善一下,用

標號(3):python(就業階段)——Linux系統命令(2)——《遠端登入和遠端拷貝

二、遠端登入和遠端拷貝 <1>ssh介紹 >(1)SSH(Secure Shell)是專為遠端登入會話和其他網路服務提供安全性的協議。常用於遠端登入,以及使用者之間進行資料拷貝。 (2)SSH 為建立在應用層和傳輸層基礎上的安全協議。 (3)利用SSH協議可以有效防止遠端管

python(就業階段)——Linux系統命令(2)——《遠端登入和遠端拷貝

二、遠端登入和遠端拷貝 <1>ssh介紹 (1)SSH(Secure Shell)是專為遠端登入會話和其他網路服務提供安全性的協議。常用於遠端登入,以及使用者之間進行資料拷貝。 (2)SSH 為建立在應用層和傳輸層基礎

將檔案或目錄拷貝到另一個Linux系統命令scp

1、功能說明 scp就是security copy,用於將檔案或者目錄從一個Linux系統拷貝到另一個Linux系統下。scp傳輸資料用的是SSH協議,保證了資料傳輸的安全,其格式如下:scp 遠端使用者名稱@IP地址:檔案的絕對路徑 本地Linux系統路徑  scp 本地Linux系統檔案路徑 遠端使用者

Linux使用技巧3--用dd命令製作U盤系統啟動盤

作U盤系統啟動盤,Ubuntu下有個圖形介面工具Startup Disk Creator,簡單易用,但是缺點就是隻能製作Ubuntu的啟動盤,別的系統不支援。那麼我想在Ubuntu下作Fedora的系統啟動盤要怎麼辦呢?不要緊,有dd命令呢!dd命令是用來拷貝檔案的命令,它可

Linux系統下的dd命令

dd命令(拷貝區塊) eg: sudo dd if=/dev/zero of=/dev/sdb bs=100k count=1 //直接磁碟(區塊)複製 //輸入裝置/dev/zero //輸出裝置/dev/sdb //複製大小100k,一次 //實際效

Linux dd命令製作U盤系統啟動盤

首先,用以下命令確認自己的U盤名稱及路徑(/dev/sdb4) df -h 檔案系統 容量 已用 可用 已用% 掛載點 udev 5.9G 0 5

Linux中的dd命令

linux dd一、dd命令用指定大小的塊拷貝一個文件,並在拷貝的同時進行指定的轉換。使用方法:dd [OPERAND]參數註釋: bs=BYTES read and write BYTES bytes at a time (also see ibs=,obs=) cbs=BYTES