Archlinux更新到grub2之后无法引导,报Error 15错误

接上一篇,重启之后就杯具了。。。
Grub2 报Error 15.错误。
连手动输入引导代码的机会都没有。

光驱是坏的,启动U盘又由于容量太小,放下一个ghost镜像后,再也放不下linux iso了。
于是用启动U盘进PE,用Parongon Partition Manager重建了下mbr.
use Parongon Partition Manager update MBR

然后windows 7 可以进去了。
进去之后下载了最新的archlinux iso.放到 d:\iso\archlinux\目录下面。用WinMount打开iso文件,复制其中的ARCH/BOOT/I686目录下面的两个文件(ARCHISO.IMG和VMLINUZ)到 d:\iso\archlinux\目录下面。
然后修改maxdos的grub4dos配置文件(Maxkr.gz其实是一个文本文件),

1
2
3
4
5
title Archlinux(LiveCD)
rootnoverify (hd0,1)
kernel /iso/archlinux/VMLINUZ archisolabel=archiso
initrd /iso/archlinux/ARCHISO.IMG
boot

boot之后,会在30秒的等待那里返回RAMFS shell,不能继续前进。和以前一样,手动挂载一下iso即可:

1
2
3
4
5
6
mkdir /tmpmnt
mount -r -t ntfs /dev/sda2 /tmpmnt
modprobe loop
losetup /dev/loop6 /tmpmnt/iso/archlinux/archlinux-2012.08.04-dual.iso
ln -s /dev/loop6 /dev/disk/by-label/archiso
exit

成功引导archlinux
进去之后,挂载原来的 grub配置所在分区(即启动分区,我这里是sda5)到一目录,如 /my-boot .

1
2
mount /dev/sda5 /my-boot
grub-install --root-directory=/my-boot /dev/sda

结果重启后还是不能引导。不过总算能手动输入引导命令了。输入之后成功进入原系统。这里有一些小技巧,如不记得/boot和 / 是哪个分区了,可以这样查找(对于grub2是search, grub 1是find):

1
2
3
4
search -f /vmlinuz
hd0,5
search -f /sbin/init
hd0,6

获得以上信息后就可以手动输入引导代码了:

1
2
3
grub> linux  (hd0,5)/vmlinuz-linux root=/dev/sda6
grub> initrd  (hd0,5)/initramfs-linux.img
grub> boot

https://wiki.archlinux.org/index.php/GRUB的教程,进行安装grub2之后的后缀设置:

1
2
3
4
5
modprobe dm-mod
grub-install --target=i386-pc --recheck --debug /dev/sda
cd /boot/grub/locale
cp en@quot.mo en.mo
grub-mkconfig -o /boot/grub/grub.cfg

重启之后成功启动linux.
===============================================
再进温到死7 看看?
error 0xc000000e
杯具的温到死又挂了。不能引导启动。。。
开机启动出现0xc000000e错误,提示 C:\Windows\System32\winload.exe 找不到了。
在M$官网找到解决办法
不过我光驱是坏的,只好用U盘来做WIN7 PE启动盘了(xp的没bcdedit这个工具)。
下载我心如水 WIN7 PE (http://dl.dbank.com/c09efbckcb
然后,进入win7 pe ,

1
2
3
bcdedit /set {default} osdevice boot
bcdedit /set {default} device boot
bcdedit /set {default} detecthal 1

重启,可以进win7了。进去之后又蛋疼了。除了C盘,其它另外3个盘符均是错乱的。原来的D盘变为了E盘,H盘变为了E盘,E盘变为了G盘。

由于我很多程序安装在D盘,因此,这样直接导致很多软件不能启动了。
重启,F8进入安全模式。运行diskmgmt.msc 打开虚拟磁盘管理器,尝试修改 E盘(原D盘)的盘符,提示非法参数。
后来一想,应该是win7的页面文件在原D盘,所以即使在安全模式,其盘符也是不能修改。重新把页面文件设置到C盘,重启。再进安全模式,成功把盘符修改回来了。
再把页面文件的位置重新设置到D盘。
至此,问题算是全部解决。

用到的参考文档:GRUB2 How To Boot From CLI Mode

更多
No Responses Post a comment

Leave a Reply

Note: You may use basic HTML in your comments. Your email address will not be published.

Subscribe to this comment feed via RSS