看板 Linux 關於我們 聯絡資訊
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
filiaslayers: 應該是分割表有錯?你備份的輸出不要指到B磁碟 11/16 11:13
filiaslayers: 而是輸出成b磁碟的檔案,像是backup.img 11/16 11:14
Adama: 不用clonezilla? 11/16 11:25
iflyinsky: 抱歉我沒有表達清楚,如果必須要用dd去實做是否可行呢? 11/16 11:30
Adama: 不一定可行;若B後來將分割區放大以使用完整硬碟,那就不行 11/16 11:35
iflyinsky: 意思是,如果B備份後有使用超過250GB就無法還原到A嗎? 11/16 11:46
kenduest: 1. dd 一般作法可以,但是你後續還是要手動把分割區 11/16 11:52
kenduest: 調大,要不然浪費了新硬碟的容量 11/16 11:52
kenduest: 2. dd 語法一定要加上 bs=4096k 等這類參數指定一次處理 11/16 11:53
kenduest: block 的量,要不然預設 block size 太小效率會很糟糕 11/16 11:53
kenduest: 3. dd 其實這樣使用效率也不好,因為硬碟並非整個磁區 11/16 11:54
kenduest: 都有放置到實際資料,這樣做其實會花很多時間在磁區 11/16 11:54
kenduest: 內容同步,但是同步的磁區實際上可能根本沒放置資料 11/16 11:55
kenduest: 我好像看錯了,原來你是要 sdb --> sda 11/16 11:56
kenduest: 基本上可以,不過你 dd 回去時候最後會出現寫入錯誤 11/16 11:58
kenduest: 因為容量比較小所以最後 sdb 資料無法讀取後寫入到 sda 11/16 11:58
kenduest: 題外話要跑 dd 基本上該來源磁碟不可以被掛載使用中 11/16 12:08
kenduest: 所以當初你用 dd 方式備份 sda 其實是有點令人擔心 11/16 12:08
kenduest: 若 sda 已經掛載使用中,這樣 dd 過來檔案系統的資料 11/16 12:09
kenduest: 可能有一點問題,檔案系統資料是 unclean 狀態... 11/16 12:09
iflyinsky: 謝謝,前輩。系統硬碟是另外一顆,不在這兩科的範圍內. 11/16 13:10
bitlife: 為什麼備份當時輸出不寫到檔案而寫到分區? 11/16 13:24
iflyinsky: 當初的系統是win server,後來去找了另外的硬碟來接, 11/16 13:46
iflyinsky: 然後用living光碟開機來備份 11/16 13:46
iflyinsky: 在尚有資源下,又可以重開的情況,選擇了這方式 11/16 13:55
iflyinsky: 雖然當初是備份好了,可開機驗證,也無須還原的情況下 11/16 13:58
iflyinsky: 但對於,如果要還原回去,心裡還是會有疑慮... 11/16 13:59
jokester: 可以用looper 唯讀掛載sdb,看看是不是有正常fs 11/16 21:39
Adama: 硬要sdb->sda的話可以先用resize2fs先縮小分割區再dd 11/16 22:26
iflyinsky: 有試過用 dd 去模擬,結果檔案的大小被調成小檔案.. 11/17 09:20