/ (reiserfs, /dev/hdb3) + swap (/dev/hdb4)Y),非模組root=/dev/hdb3
VFS: Cannot open root device "hdb3" or unknown-block(0,0)
...
reiserfsck could not open filesystem on /dev/hdb3
fsck.reiserfs for device exited with signal 6
/dev/hdb3 / reiserfs defaults 1 1
/dev/hdb4 swap swap defaults 0 0
default=1
timeout=10
splashimage=(hd1,2)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.21-pre6)
root (hd1,2)
kernel /boot/vmlinuz-2.4.21-pre6 ro root=/dev/hdb3 hdc=ide-scsi hdd=ide-scsi
initrd /boot/initrd-2.4.21-pre6.img
title Red Hat Linux (2.4.20-8)
root (hd1,2)
kernel /boot/vmlinuz-2.4.20-8 ro root=/dev/hdb3 hdc=ide-scsi hdd=ide-scsi
initrd /boot/initrd-2.4.20-8.img
hdc=ide-scsi hdd=ide-scsi 會將 IDE 光碟/燒錄器模擬為 SCSI 裝置,可能導致 IDE 磁碟編號漂移或驅動載入順序改變。
建議:新內核測試時移除此兩參數,或確認 CONFIG_BLK_DEV_IDESCSI 設為 M 並由 initrd 載入。
雖然 reiserfs 設為 Y,但若根分區所在的 IDE 控制器驅動 (如 piix、via82cxxx) 為 M,且 initrd 未包含該模組,內核無法存取磁碟。
驗證:lsinitrd /boot/initrd-2.4.21-pre6.img | grep -E '(reiserfs|ide|piix|via)'。
對策:將 IDE 控制器驅動設為 Y,或重建 initrd:mkinitrd -f /boot/initrd-2.4.21-pre6.img 2.4.21-pre6。
2.4 內核啟用 CONFIG_IDE 時裝置為 hda/hdb;若誤啟用 CONFIG_SCSI + CONFIG_BLK_DEV_SD 且 IDE 控制器由 SCSI 中層接管,裝置可能變為 sda/sdb。
對策:內核配置確保 CONFIG_IDE=y、CONFIG_BLK_DEV_IDE=y、對應晶片組驅動 =y;CONFIG_SCSI 僅在有真實 SCSI/SATA 裝置時啟用。
signal 6 (SIGABRT) 通常源於 reiserfsck 內部斷言失敗。可能原因:
① 內核 reiserfs 代碼與磁碟上檔案系統版本不兼容(2.4.21-pre6 引入新格式)。
② 磁碟確有壞塊(雖用戶聲稱無壞道)。
驗證:用原內核 (2.4.20) 啟動,執行 reiserfsck --check /dev/hdb3;若通過,說明新內核 reiserfs 代碼有問題。
root (hd1,2) 對應 /dev/hdb3 (第 2 顆硬碟第 3 分區)。若 BIOS 磁碟順序與 Linux 偵測順序不一致,可能映射錯誤。
驗證:GRUB 命令列下 geometry (hd1) 確認分區表。
hdc=ide-scsi hdd=ide-scsi,重建 initrd。make menuconfig → Device Drivers → ATA/ATAPI/MFM/RLL support → 對應晶片組 [*]。mkinitrd -f /boot/initrd-2.4.21-pre6.img 2.4.21-pre6。root=/dev/hdb3 rootfstype=reiserfs 強制指定。.config 與原內核 config-2.4.20-8,逐項核對儲存/IDE/檔案系統選項。