dd 指令是用來copy檔案,而可以搭配 nc 指令掛載一個tcp port來傳送硬碟內的資料
環境:
。使用 virtualbox 建立的兩台主機
。來源主機 = 有 CentOS 5.5 x64 系統,而 ip 是 10.10.10.126
。目的主機 = 空硬碟,使用 linux rescue 救原模式 (有網路功能) 開機,而 ip 是 10.10.10.125
目的:
我要將來源主機的硬碟內的資料全copy到目的主機裡
設定:
1。先將目的主機用救原模式開機,進入系統後,執行
nc -l -p 30 | dd of=/dev/sda
意思是只要資料是透過 30 port 過來的都丟到自已的 /dev/sda 硬碟裡去
2。再到來源主機執行
dd if=/dev/sda | nc 10.10.10.125 30
將 /dev/sda 輸出,丟到 目的主機 10.10.10.125 的 30 port裡
3。另外,在它傳送的過程中,在目的主機上可以 fdisk -l 看到原本的 /dev/sda 無分割partition已變成分割成 /dev/sda1、/dev/sda2、/dev/sda3了
備註:
也可以在目的主機執行
nc -l -p 30 | dd of=image
只將來源的資料存在一個image 檔案
結論:
目的主機開機後,出現 read-only file system 、 journal aborted 等錯誤訊息,我再把它reboot就在開機劃面出現要我 fsck 了,
所以我想這個用來copy 純資料就好了,別想把它當成還原系統用吧!!!
ref : http://www.howtoforge.com/ghosting-the-machine
留言