不同硬碟容量的備份還原 - Linux

Table of Contents

Hi 各位大大好

不才小弟有個技術上的疑問。

目前手邊有兩顆大小不同的硬碟分別稱為 A,B 但是 size 不同。

HDD: A , size: 250GB
HDD: B , size: 500GB

因為異地備份演練,須將 HDD: A 內資料備份到 HDD: B

這邊假設 HDD:A 為 /dev/sda, HDD:B 為 /dev/sdb

於是用了dd備份如下

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

演練完畢之後,卻發現,HDD : A 資料有異常,

須要將 HDD : B 還原回 HDD : A

我的問題,我是否可以使用 dd 將 HDD : B 還原回 HDD : A

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

因為 size 不同。(從小size 備份到大size在還原到小size)

--

All Comments

Oscar avatarOscar2015-11-17
應該是分割表有錯?你備份的輸出不要指到B磁碟
Mason avatarMason2015-11-20
而是輸出成b磁碟的檔案,像是backup.img
Adele avatarAdele2015-11-21
不用clonezilla?
Callum avatarCallum2015-11-24
抱歉我沒有表達清楚,如果必須要用dd去實做是否可行呢?
Belly avatarBelly2015-11-25
不一定可行;若B後來將分割區放大以使用完整硬碟,那就不行
Franklin avatarFranklin2015-11-29
意思是,如果B備份後有使用超過250GB就無法還原到A嗎?
Susan avatarSusan2015-12-01
1. dd 一般作法可以,但是你後續還是要手動把分割區
調大,要不然浪費了新硬碟的容量
Kristin avatarKristin2015-12-04
2. dd 語法一定要加上 bs=4096k 等這類參數指定一次處理
block 的量,要不然預設 block size 太小效率會很糟糕
Gary avatarGary2015-12-08
3. dd 其實這樣使用效率也不好,因為硬碟並非整個磁區
都有放置到實際資料,這樣做其實會花很多時間在磁區
Caroline avatarCaroline2015-12-09
內容同步,但是同步的磁區實際上可能根本沒放置資料
Sierra Rose avatarSierra Rose2015-12-11
我好像看錯了,原來你是要 sdb --> sda
Xanthe avatarXanthe2015-12-13
基本上可以,不過你 dd 回去時候最後會出現寫入錯誤
因為容量比較小所以最後 sdb 資料無法讀取後寫入到 sda
Ursula avatarUrsula2015-12-13
題外話要跑 dd 基本上該來源磁碟不可以被掛載使用中
所以當初你用 dd 方式備份 sda 其實是有點令人擔心
Poppy avatarPoppy2015-12-17
若 sda 已經掛載使用中,這樣 dd 過來檔案系統的資料
可能有一點問題,檔案系統資料是 unclean 狀態...
Enid avatarEnid2015-12-21
謝謝,前輩。系統硬碟是另外一顆,不在這兩科的範圍內.
Todd Johnson avatarTodd Johnson2015-12-22
為什麼備份當時輸出不寫到檔案而寫到分區?
Enid avatarEnid2015-12-25
當初的系統是win server,後來去找了另外的硬碟來接,
然後用living光碟開機來備份
Faithe avatarFaithe2015-12-29
在尚有資源下,又可以重開的情況,選擇了這方式
Michael avatarMichael2016-01-01
雖然當初是備份好了,可開機驗證,也無須還原的情況下
Quintina avatarQuintina2016-01-05
但對於,如果要還原回去,心裡還是會有疑慮...
Skylar Davis avatarSkylar Davis2016-01-05
可以用looper 唯讀掛載sdb,看看是不是有正常fs
Kama avatarKama2016-01-08
硬要sdb->sda的話可以先用resize2fs先縮小分割區再dd
Liam avatarLiam2016-01-10
有試過用 dd 去模擬,結果檔案的大小被調成小檔案..