2013-03-14 66 views
0

我用dd來捕捉這樣的兩個本地虛擬機分區...使用「dd」捕獲並恢復失敗?

# dd if=/dev/sda1 | gzip >mySda1.gz 
# dd if=/dev/sda2 | gzip >mySda2.gz 

然後接上足夠大小的兩捲到一個已經運行的實例並安裝它們(爲/ mnt /之一,到/ mnt /二),然後複製.gz文件解到實例,並使用這些命令來恢復分區

# gunzip –c mySda1.gz | dd of=/dev/xvdk 
# gunzip –c mySda2.gz | dd of=/dev/xvdl 

gunzip命令不顯示故障,但是當我然後去到/ mnt /一個問題命令LS -a沒有什麼。爲什麼是這樣? .gz文件非常大。爲什麼掛載的分區顯示爲空白,即使gunzip命令完成?

+1

只是爲了確認:你卸載了'/ dev/xvdk'和'/ dev/xvdkl',寫在它們上面,成功地重裝了它們,但仍然沒有發現任何東西?或者在覆蓋它們之前忘記卸下分區?後者會造成嚴重的混亂,只會混淆Linux內核。 – davidg 2013-03-14 03:34:25

+0

沒問題---我會將評論轉換爲答案。 – davidg 2013-03-14 06:57:59

回答

1

在您可以直接寫入分區之前,您必須先確保它已被卸載。

Linux不會注意到你是否直接寫入後面的磁盤(更重要的是,會認爲這不會發生 - 如果嘗試修改已掛載的文件系統,它可能會變得非常混亂)。

所以,正確的程序是如下:

umount /dev/xvdk 
gunzip –c mySda1.gz | dd of=/dev/xvdk 
mount /dev/xvdk 
/dev/xvdl

又一遍。