|  | 
 
| 本帖最后由 tangzk 于 2012-6-29 18:48 编辑 
 新鲜出炉的解决文档,起因是301集群slave05安装Ubuntu 12.04出现的问题,当然此问题在安装11.10的时候也出现过,只是没能记下来。这次解决完了,把这个好好整理下了。
 
 1、问题描述:
 华硕ASUS P8H67-V安装完Ubuntu 12.04后,高高兴兴地像平常一样重启,直接卡在grub rescue>了,上面一个提示是:invalid arch independent ELF magic。
 
 2、问题分析:
 查了下原因,尤其查了下该款主板的特别之处,发现其奇葩地支持UEFI BIOS,表示都木有听说过这号东东,莫非就是这号东东让这系统启不动的?网上查了下,这东东UEFI叫可扩展固件接口,是用来作为传统BIOS的替代产品的,而且目前的Grub版本都支持UEFI作为引导了,更多内容可参考维基百科页面[1]。
 这里的问题说起来有可能是主板没有开启UEFI引导,原因是在BIOS设置里面我看到UEFI Shell还没有安装起来,而另外一个原因是Ubuntu的安装已经检测到UEFI的启动,因此自动将Grub配置为UEFI,因而导致Grub无法正常启动。
 
 3、问题解决:
 其实上面的思路也是慢慢摸索出来的,最开始时使用平常Grub Rescue模式下的基本操作,其中的grub rescue>是提示符,(hd?,?)表示安装的引导分区:
 结果到这里就出现前面的错误:invalid arch independent ELF magic(本来下面还有一条normal命令,参考[2]),于是大概可以估计问题就是在这里了。复制代码grub rescue>ls
grub rescue>ls (hd?,?)/boot/grub
grub rescue>set root(hd?,?)
grub rescue>set prefix=(hd?,?)/boot/grub
insmod /boot/grub/normal.mod
接下来就考虑要使用Live CD,尝试着把Grub配置为普通版本进行还原。首先查看分区信息如下:显示分区为:
 
 Disk /dev/sda: 1000.2 GB, 1000204886016 bytes255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
 Units = sectors of 1 * 512 = 512 bytes
 Sector size (logical/physical): 512 bytes / 512 bytes
 I/O size (minimum/optimal): 512 bytes / 512 bytes
 Disk identifier: 0x0fba0fb9
 
 Device Boot      Start         End      Blocks   Id  System
 /dev/sda1   *          63   409593239   204796588+   7  HPFS/NTFS/exFAT
 /dev/sda2       409593301  1953523711   771965205+   f  W95 Ext'd (LBA)
 /dev/sda5       409593303   929520899   259963798+   7  HPFS/NTFS/exFAT
 /dev/sda6       929521664   960770047    15624192   82  Linux swap / Solaris
 /dev/sda7       960772096  1953523711   496375808   83  Linux
注意我这里是将整个根目录/安装在/dev/sda7上面的。因此可执行操作如下(#后的内容为注释):
 这里如果你的引导分区位于单独的分区上,还需要挂载至/mnt/boot目录上,可参见[3][4]。在执行完最后一条grub-install命令后,如果安装成功会给出没有错误的提示,这样就把Grub切换回来了,重启就可以看到熟悉的Grub菜单了。复制代码sudo apt-get remove grub-efi-amd64   #移除grub-efi
sudo apt-get install grub-pc  #安装普通grub
sudo mount /dev/sda7 /mnt    #挂载引导分区
sudo grub-install --root-directory=/mnt /dev/sda
 4、后记:
 在重启完后,Grub菜单可能会有乱码,可通过update-grub命令更新下Grub即可,执行命令如下:最后想说的是,对于这个UEFI新东东还是没能去深入,有错误的地方欢迎高手指正,也还有一些没解决的问题,如UEFI引导比起传统的BIOS引导有什么优势及区别?如何安装UEFI引导支持?以及后续的问题,没有时间去整了,有兴趣的童鞋欢迎一起讨论。
 
 5、参考:
 [1] 维基百科页面-UEFI繁体中文,http://zh.wikipedia.org/wiki/可延伸韌體介面
 [2] Grub Rescue模式操作, http://www.cnblogs.com/samcn/archive/2011/03/30/1999615.html
 [3] Grub-EFI修复(1), http://askubuntu.com/questions/7 ... ll-on-macbook-pro-5
 [4] Grub-EFI修复(2), http://askubuntu.com/questions/3 ... fter-install-on-ssd
 | 
 |