[問題] 不同硬碟容量的備份還原

看板Linux作者 (加油!在前進吧~)時間10年前 (2015/11/16 10:02), 編輯推噓5(5025)
留言30則, 6人參與, 最新討論串1/1
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) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 202.167.250.43 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1447639331.A.501.html

11/16 11:13, , 1F
應該是分割表有錯?你備份的輸出不要指到B磁碟
11/16 11:13, 1F

11/16 11:14, , 2F
而是輸出成b磁碟的檔案,像是backup.img
11/16 11:14, 2F

11/16 11:25, , 3F
不用clonezilla?
11/16 11:25, 3F

11/16 11:30, , 4F
抱歉我沒有表達清楚,如果必須要用dd去實做是否可行呢?
11/16 11:30, 4F

11/16 11:35, , 5F
不一定可行;若B後來將分割區放大以使用完整硬碟,那就不行
11/16 11:35, 5F

11/16 11:46, , 6F
意思是,如果B備份後有使用超過250GB就無法還原到A嗎?
11/16 11:46, 6F

11/16 11:52, , 7F
1. dd 一般作法可以,但是你後續還是要手動把分割區
11/16 11:52, 7F

11/16 11:52, , 8F
調大,要不然浪費了新硬碟的容量
11/16 11:52, 8F

11/16 11:53, , 9F
2. dd 語法一定要加上 bs=4096k 等這類參數指定一次處理
11/16 11:53, 9F

11/16 11:53, , 10F
block 的量,要不然預設 block size 太小效率會很糟糕
11/16 11:53, 10F

11/16 11:54, , 11F
3. dd 其實這樣使用效率也不好,因為硬碟並非整個磁區
11/16 11:54, 11F

11/16 11:54, , 12F
都有放置到實際資料,這樣做其實會花很多時間在磁區
11/16 11:54, 12F

11/16 11:55, , 13F
內容同步,但是同步的磁區實際上可能根本沒放置資料
11/16 11:55, 13F

11/16 11:56, , 14F
我好像看錯了,原來你是要 sdb --> sda
11/16 11:56, 14F

11/16 11:58, , 15F
基本上可以,不過你 dd 回去時候最後會出現寫入錯誤
11/16 11:58, 15F

11/16 11:58, , 16F
因為容量比較小所以最後 sdb 資料無法讀取後寫入到 sda
11/16 11:58, 16F

11/16 12:08, , 17F
題外話要跑 dd 基本上該來源磁碟不可以被掛載使用中
11/16 12:08, 17F

11/16 12:08, , 18F
所以當初你用 dd 方式備份 sda 其實是有點令人擔心
11/16 12:08, 18F

11/16 12:09, , 19F
若 sda 已經掛載使用中,這樣 dd 過來檔案系統的資料
11/16 12:09, 19F

11/16 12:09, , 20F
可能有一點問題,檔案系統資料是 unclean 狀態...
11/16 12:09, 20F

11/16 13:10, , 21F
謝謝,前輩。系統硬碟是另外一顆,不在這兩科的範圍內.
11/16 13:10, 21F

11/16 13:24, , 22F
為什麼備份當時輸出不寫到檔案而寫到分區?
11/16 13:24, 22F

11/16 13:46, , 23F
當初的系統是win server,後來去找了另外的硬碟來接,
11/16 13:46, 23F

11/16 13:46, , 24F
然後用living光碟開機來備份
11/16 13:46, 24F

11/16 13:55, , 25F
在尚有資源下,又可以重開的情況,選擇了這方式
11/16 13:55, 25F

11/16 13:58, , 26F
雖然當初是備份好了,可開機驗證,也無須還原的情況下
11/16 13:58, 26F

11/16 13:59, , 27F
但對於,如果要還原回去,心裡還是會有疑慮...
11/16 13:59, 27F

11/16 21:39, , 28F
可以用looper 唯讀掛載sdb,看看是不是有正常fs
11/16 21:39, 28F

11/16 22:26, , 29F
硬要sdb->sda的話可以先用resize2fs先縮小分割區再dd
11/16 22:26, 29F

11/17 09:20, , 30F
有試過用 dd 去模擬,結果檔案的大小被調成小檔案..
11/17 09:20, 30F
文章代碼(AID): #1MIJaZK1 (Linux)