CentOS 4.8系统备份在SATA控制器物理PC上无法启动,求解决方法
看起来你碰到的是CentOS 4.8这类老系统在物理机SATA控制器上的经典驱动适配问题,别慌,咱们一步步来排查解决:
先确认物理机SATA控制器对应的内核模块
CentOS 4.8里常见的SATA驱动模块有ata_piix(适配Intel/AMD老芯片组)、sata_sil(Silicon Image控制器)、sata_via(VIA芯片组)等。你可以先通过两种方式确认:要么在能正常启动的VMware环境里用lsmod | grep sata查看已加载的相关模块;要么用CentOS 4.8安装盘进入救援模式,用lspci命令查看物理机的SATA控制器型号,再对应找驱动模块。正确重新生成包含SATA驱动的initrd
之前用mkinitrd没成功,大概率是没指定全必要的模块。试试这个完整步骤:- 进入救援模式后,先激活LVM卷组:
vgchange -ay centos - 挂载根分区到临时目录:
mount /dev/mapper/centos-root /mnt - 切换到挂载的系统环境:
chroot /mnt - 执行mkinitrd命令,明确加入SATA驱动和LVM必需的模块(替换
ata_piix为你实际需要的模块):mkinitrd --with=ata_piix --with=dm-mod --with=dm-mirror --with=dm-snapshot /boot/initrd-$(uname -r)-sata.img $(uname -r) - 修改GRUB配置文件
/boot/grub/grub.conf,新增一个指向新initrd的启动项(记得替换内核版本号):title CentOS 4.8 (SATA Support) root (hd0,0) kernel /vmlinuz-2.6.9-89.EL ro root=/dev/mapper/centos-root rhgb quiet initrd /initrd-2.6.9-89.EL-sata.img
- 进入救援模式后,先激活LVM卷组:
检查并修复MBR引导
物理机的SATA磁盘可能没正确写入GRUB引导,执行grub-install /dev/sda(假设你的SATA磁盘是/dev/sda),把GRUB重新安装到SATA磁盘的主引导记录上。尝试调整BIOS的SATA模式
不少老物理机的BIOS里有SATA模式切换选项(比如AHCI/IDE兼容模式),你可以把SATA控制器改成IDE兼容模式再启动,CentOS 4.8对这种兼容模式的支持更成熟,可能直接绕开驱动问题。验证LVM卷组状态
虽然你在VMware能正常启动,但还是可以在救援模式下用vgscan扫描卷组,vgchange -ay激活,lvdisplay查看逻辑卷状态,确保LVM配置没有异常。
备注:内容来源于stack exchange,提问作者LimpTeaM

