Boot

將 /boot 和 MBR 移動到新驅動器

  • March 20, 2018

我有一個 CentOS 6 伺服器,裡面有兩個硬碟。我的舊 3TB 驅動器給我帶來了一些問題,因此我將其轉移到新驅動器上。因為 my//homepartition 由 LVM 管理,所以很容易將它們遷移到新驅動器。現在我想移動我的/boot分區和使它全部啟動的 MBR。

我載入了一張 live CD 並rsynced通過我/boot的分區到我的新驅動器上相同大小的分區。我還嘗試使用以下命令複製我的 MBR:

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1

完成此操作後,我重新啟動,告訴我的 BIOS 在啟動週期中不要查看舊硬碟驅動器,而只查看新驅動器,但我最終得到的只是一個閃爍的游標。

我在這裡錯過了一步嗎?或者我還需要做些什麼來讓事情啟動,這樣我就可以完全移除我的舊驅動器?

編輯:我開始認為 rsync 不是將 /boot 分區從一個驅動器複製到另一個驅動器的方法。根據本指南,我嘗試使用轉儲命令。在這個命令中,我將舊的、未安裝的引導分區復製到了新的、空的、已安裝的引導分區。

dump -0f - /dev/sdaX | (cd /mnt/boot; restore -rf -) 

我在啟動時遇到 grub 錯誤 15,這比閃爍的游標要好,但我不知道這是否更接近解決方案。

如果兩個硬碟大小相同(或者新的更大),為什麼不直接將舊磁碟複製到新磁碟?IE

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

現在,如果新硬碟更大,請使用 parted 或 gparted 更改分區大小。所有這些都是從 Live CD/USB 記憶棒啟動的。

事實證明,使用 rsync 或 dump 複製 /boot 分區是導致問題的原因。根據上面 erick 的回答,我將 live CD 引導到救援模式並執行以下 dd 命令。

dd if=/dev/sda of=mbrbackup bs=512 count=1
dd if=mbrbackup of=/dev/sdb bs=446 count=1
dd if=/dev/sda1 of=/dev/sdb1

我再次執行了前兩個 dd,以確保所有內容都被正確複製並且沒有因我一直在做的所有測試而損壞。然後我執行第三個 dd 將引導分區從舊驅動器複製到新驅動器。之後我關機,拔出我的舊驅動器並毫無問題地引導到我的 CentOS。

一定有一些問題是由於在已安裝的驅動器上使用轉儲導致副本無法正常工作而引起的。無論如何, dd 成功了。謝謝大家的幫助。

引用自:https://unix.stackexchange.com/questions/63977