在舊的和損壞的 debian 系統上安裝 grub 和工作核心
我有一個舊的 debian 系統,多年來我一直能夠升級它。我安裝了一個舊核心,由我從原始碼編譯。
在我最後一次 dist-upgrade(使用測試發行版)之後,我在啟動時遇到了核心恐慌。我的舊核心和我的新 libc 不能再一起工作了(我想)。
甚至設備名稱也發生了變化:在我最新的工作核心中,我擁有
/dev/hda
and/dev/hdb
,現在這些設備被辨識為/dev/sda
and/dev/sdb
。另外,兩個分區 (
/dev/hda2
和/dev/hdb2
) 加入了一個 RAID 陣列,其名稱為/dev/md0
(以 root 身份掛載),現在為/dev/md127
. 分區/dev/hda1
掛載為/boot
,並且/dev/hdb1
是交換分區。我使用 lilo 作為引導管理器。
現在一切都壞了,我嘗試使用debian救援模式,但沒有成功。我刪除了 lilo 並安裝了 grub2,但仍然沒有任何效果。
所以我決定在舊的交換分區(
/dev/hdb1
, now/dev/sdb1
)中安裝一個新的最小 debian 系統,然後我試圖從那裡拯救這個系統。仍然沒有:我無法在舊分區中安裝工作核心(這次是預編譯核心)。我試圖重建我的舊 RAID 陣列,掛載我的引導分區,chroot-ed ant apt-get 安裝了一個新核心:grub 什麼也看不到。
我不知道我還能嘗試什麼…
正如 derobert 指出的那樣,
hda -> sda
這是長期以來的預期變化。RAID陣列名稱更改很奇怪,但最終解決了。
我嘗試從 live cd 發行版啟動,安裝 raid 陣列,安裝啟動分區,然後
apt-get install
安裝新核心。這個過程產生了一個錯誤,因為我不知道我應該安裝/boot
,/proc
和/sys
.所以具體的流程是:
從實時發行版啟動(救援模式下的 debian CD 1 可以)
掛載根分區(例如,在 /chroot 中),最後掛載引導分區,如果與 root 不同)
綁定掛載特殊設備:
mount --bind /sys /chroot/sys
mount --bind /proc /chroot/proc
mount --bind /dev /chroot/dev
chroot 到根分區
安裝新核心
重啟
核心中的新 ATA 驅動程序使用 /dev/sda,舊驅動程序仍受支持,但您必須通過使用 livecd 進入系統來編輯核心。
Device drivers ---> <*> ATA/ATAPI/MFM/TLL support (deprecated) <*> Serial ATA and Parallel ATA drivers --->
對於 chroot,我總是使用gentoo 最小安裝光碟以及如何 chroot 進入您的系統,您可以在gentoo 手冊中閱讀,它也應該適用於您的系統。對於 debian 使用者來說,可能還有另一種方式,但這種方式應該適合你們兩個。
我希望這是您的問題的解決方案。