從一台電腦獲取現有的 Linux 安裝以在另一台電腦上啟動
我有一個現有的 Dell Precision 690 工作站設置來雙啟動 Windows XP 和 CentOS 5.5。這些作業系統安裝在兩個單獨的驅動器上。我在 Linux 驅動器上有一個 grub 菜單,它設置為驅動器 1,並指向驅動器 2 上的 Windows 啟動資訊。
我嘗試使用 linux 驅動器並將其安裝在新的 HP Z800 工作站上,看看我是否有幸讓它啟動,但它沒有。它開始啟動後立即出現一些錯誤。
這是系統顯示的內容:
在此消息之後,
Red Hat nash version 5.1.19.6 starting
我得到以下幾行:Unable to access resume device (LABEL=SWAP-sda2) mount: could not find filesystem '/dev/root' setuproot: moving /dev failed: No such file or directory setuproot: error mounting /proc: No such file or directory setuproot: error mounting /sys: No such file or directory switchroot: mount failed: No such file or directory Kernel panic - not syncing: Attempted to kill init!
有什麼我可以調整以使其可能啟動的嗎?我真的很想不必在這台機器上重新載入 CentOS 5.5 和專用軟體。
我在這個驅動器上有一個 grub 菜單設置,這可能是我的問題嗎?舊機器中的驅動器設置為 Linux 作為驅動器 1,Windows 作為驅動器 2,Linux 驅動器託管 grub 菜單,允許我啟動到 Linux 或 Windows。這可能是個問題嗎?
我確實知道使用 Windows 解決此問題的方法:在機器中安裝輔助 HDD 控制器卡,安裝驅動程序,將驅動器連接到舊機器中的控制器並確保它啟動,將驅動器和控制器移動到新機器並啟動關閉它,載入主機板驅動程序(特別是硬碟控制器驅動程序),然後你可以取出控制器卡,將硬碟直接連接到主機板上,你就設置好了。同樣的事情可能在 Linux 中可以完成,但我不確定。如果沒有其他方法,這可能是最後的嘗試。
如果你走到這一步,這意味著引導載入程序成功載入了核心和 initrd/initramfs,但核心沒有找到根設備。因此,您應該能夠通過
root=/dev/sda42
在核心命令行上傳遞類似的東西來啟動。在 Grub 提示符下,編輯 Linux 條目,然後查找以 . 開頭的行
linux
。在那一行上,應該有一個看起來像root=/dev/sda42
. 將其更改為root=/dev/sdb42
,即不同的驅動器。目前字母可能不是a
,並且有效的字母可能不是b
,但如果您有兩個驅動器,您可能只需要交換sdb
,sda
反之亦然。Linux 中驅動器號的順序與 BIOS、Grub 或 Windows 中的順序無關(或至少不直接相關)(這取決於載入驅動程序的順序)。(有一些方法可以解決這個問題,但它們現在不會幫助你。)
啟動時,如果條目
/etc/fstab
與目前磁碟設備名稱不匹配,您可能會收到錯誤消息。如果您無法進入修復控制台,請重新啟動並(除了root=
更改之外)init=/bin/sh
直接添加到 shell,然後執行mount /proc mount -o remount,rw / vi /etc/fstab # or whatever your favorite editor is