克隆分区至mSata SSD后HP Compaq nx6110无法引导Lubuntu,仅Windows XP可正常启动
问题背景
我有一台老款HP Compaq nx6110笔记本,原本的IDE硬盘快报废了,于是打算升级成256GB金士顿mSata SSD(搭配了mSata转IDE 44针适配器)。之前这台机器是Windows XP + Lubuntu 14的双系统,我用Rescuezilla克隆了原硬盘,还调整了分区大小——原来的Linux分区只有几GB,想充分利用SSD的空间,只留了一点预留区域。
现在Windows XP能正常启动(第一次开机会报错并自动运行磁盘检查,之后就没问题了),但Lubuntu彻底卡壳:卡在Grub界面,弹出*“attempt to read or write outside of disk 'hd0'”*以及“内核未加载”的提示,而且Grub也没进入救援模式。
当前分区与Grub信息(MBR格式)
分区结构
- 主分区(msdos1):Windows XP系统分区
- 扩展分区
- Linux主分区(msdos5)
- 交换分区
Grub命令输出
执行ls命令得到:(hd0) (hd0,msdos5) (hd0,msdos1)
已尝试的解决步骤
- 用GParted扫描分区错误,未发现异常
- 在Grub中手动引导:执行
set root=(hd0,msdos5)和linux *** root=/dev/sda5,但依然弹出和自动引导相同的错误 - 通过Rescuezilla重新安装Grub,执行了以下命令:
sudo mount /dev/sda5 /mnt sudo grub-install --boot-directory=/mnt/boot /dev/sda - 尝试用Live USB重装Linux,但SSD完全无法被检测到,日志报错*“failed to set xfermode (err_mask=0x40)”和“ata1: SRST failed”*
- 试过boot-repair-iso工具,遇到同样的SSD检测问题
系统与硬件细节
- 设备:HP Compaq nx6110
- 配置:1.73 GHz奔腾M处理器,1.5 GB DDR内存
- 存储:原60GB IDE(44针)富士通硬盘,现替换为256GB金士顿mSata SSD + mSata转IDE 44针适配器
- 额外测试:Memtest内存检测、硬盘健康测试均正常;Windows XP和Rescuezilla 2能正常识别SSD,但其他Live系统(包括Rescuezilla 1)都检测不到这块SSD
补充日志信息
Boot Repair检测结果
Grub2(v2.00)已安装在/dev/sda的MBR中,核心文件位置正常,但Boot Repair仅识别到Live USB的分区,未检测到本地系统分区。
内核日志差异
在无法识别SSD的Live系统中,内核日志关键报错:
jan 29 11:51:28 lubuntu kernel: ata1.00: qc timeout (cmd 0x47)
jan 29 11:51:28 lubuntu kernel: ata1.00: READ LOG DMA EXT failed, trying PIO
jan 29 11:51:28 lubuntu kernel: ata1.00: failed to set xfermode (err_mask=0x40)
jan 29 11:51:28 lubuntu kernel: ata1: SRST failed (errno=-16)
...
jan 29 11:51:28 lubuntu kernel: ata1: reset failed, giving up
jan 29 11:51:28 lubuntu kernel: ata1.00: disabled
而在能正常识别SSD的Rescuezilla 2中,日志显示:
jan 29 12:07:01 ubuntu kernel: ata1: lost interrupt (Status 0x58)
jan 29 12:07:01 ubuntu kernel: ata1: drained 65536 bytes to clear DRQ
jan 29 12:07:01 ubuntu kernel: sd 0:0:0:0: [sda] Attached SCSI disk
jan 29 12:07:01 ubuntu kernel: sda: detected capacity change from 0 to 256060514304
备注:内容来源于stack exchange,提问作者MoltenEQ

