修改华硕ExpressGate (HDD),启动任意系统

Posted on 2011-08-08 20:32  liuyanghejerry  阅读(3029)  评论(0编辑  收藏  举报

背景:

华硕在很多机型当中,都搭载了一个被称为“ExpressGate”的系统,该系统允许在开机的数秒之内(官方标称是8秒)进入一个迷你操作系统,该系统可以浏览网页、浏览图片等。

实际上,该迷你操作系统是名为Splashtop的一个商业Linux操作系统的一个子版本。华硕的这一ExpressGate系统实际上根据不同机型,存在两个版本:SSD、HDD。前者将Splashtop存储于板载芯片当中,而后者则是将Splashtop存储于机器自带硬盘当中。我并没有SSD版本的机器,以下的内容均是基于HDD版本的描述。

HHD版本的ExpressGate在机器硬盘的第零个分区上(不是C盘),这一分区为FAT32格式,但被设置为了隐藏,即在Windows当中是看不到的。通过DiskGenuis,我们可以自由修改这一隐藏分区当中的内容。由于ExpressGate系统使用了一个grub程序作为引导程序,我们通过编辑其配置文件达到了启动任意操作系统的目的。

本文假设我们使用华硕 N53S,要启动一个位于USB 2.0端口所驱动的移动硬盘上的Ubuntu系统。

=================================================================

操作步骤:

提示,操作有风险,动手需谨慎,责任自己扛,和我没关系= =

修改原始menu.lst

下载DiskGenuis(http://www.diskgenius.cn/)。注意,该软件是有32位及64位区别的,如果您的计算机当前操作系统是Windwos 7 x64,必须使用64位版。

使用其进入第零块硬盘的第零个分区(hd0,0),进入ExpressGate文件夹,将menu.lst拷贝到其它位置(注意备份,必要时请备份整个隐藏分区),然后使用一个文本编辑器进行编辑。(推荐使用Notepad++,而不是Windows自带的记事本)

menu.lst原本的内容大致如下:

default saved

timeout 0

hiddenmenu

title minik

  kernel /ExpressGate/vace ro vga=0xffc i8042.reset quiet video=vesafb:ywrap,mtrr:3 acpi_backlight=vendor acpi_display_output=vendor vaKBD=us vaLANG=zh_CN fastreboot=no acpi_osi=Linux av_flag=1 rw_flag=1 debug_log=1

  initrd /ExpressGate/vace-id

title Win_1 

  savedefault 0    

  rootnoverify (hd0,0)

  chainloader +1

title Win_2

  savedefault 0

  rootnoverify (hd0,1)

  chainloader +1

title Win_3

  savedefault 0

  rootnoverify (hd0,2)

  chainloader +1

title Win_4

  savedefault 0

  rootnoverify (hd0,3)

  chainloader +1

将其整个修改为如下内容:

default saved

timeout 0

hiddenmenu

title Ubuntu 10

  root (hd0,1)

  kernel /grub.exe

title Win_1 

  savedefault 0    

  rootnoverify (hd0,0)

  chainloader +1

title Win_2

  savedefault 0

  rootnoverify (hd0,1)

  chainloader +1

title Win_3

  savedefault 0

  rootnoverify (hd0,2)

  chainloader +1

title Win_4

  savedefault 0

  rootnoverify (hd0,3)

  chainloader +1

这里面注意了,我们修改了启动项的第一个小节,这里面的root (hd0,1)表示我们要启动的程序位于第0块硬盘的的1个分区,而程序本身为grub.exe。

一般地,第0块硬盘的第1个分区,放置的都是Windows,也就是C盘。我们之所以在这里启动C盘里面的grub.exe,其实是为了通过这个grub,再引导我们的其它系统。

安装grub4dos

现在我们要在C盘当中准备一个grub。下载grub4dos(http://www.skycn.com/soft/51969.html),这里使用的版本是0.44。下载之后,grub4dos是一个压缩包,将其中的grub.exe、grldr以及menu.lst(这可不是我们刚才编辑的那个)拷贝至C盘根目录下,之后编辑menu.lst至如下内容:

timeout 0

default 0

hiddenmenu

title Ubuntu

root (hd1,0)

kernel /boot/grub/core.img

这个menu.lst会将我们所需要的系统引导起来,因此这里面的内容,实际上是根据大家自己的系统来写的,我所写的这个,意思是引导第1块硬盘的第0个分区当中的/boot/grub/core.img文件。在这之后实际上进入的是Ubuntu的grub(因为我的ubuntu用的也是grub)。

保存menu.lst,注意Windows 7会有权限问题,如果无法保存,可以先在其它位置保存,之后再覆盖过来。

关机、进入ExpressGate

完事俱全。现在关闭你的计算机,然后通过ExpressGate开机,如果一切正确,你就可以进入自己的系统了(对于我来说,就是进入了Ubuntu)。

=====================================================================================

错误排查:

Q:ExpressGate开机键打开后,只有光标在左上角闪烁。

A:你隐藏分区中的menu.lst书写有误,请检查其内容是否正确。


Q:ExpressGate开机键打开后,经过短暂的时间,进入到了一个命令后环境,左侧是grub >

A:你C盘中的menu.lst书写有误,或者你想启动的Ubuntu的grub配置书写有误。


Q:ExpressGate开机键打开后,像往常一样进入了正常的ExpressGate。

A:你没有编辑隐藏分区中的menu.lst,当中可能有一个menu.lst.bak,估计你搞错了。


Q:我玩腻了,想要原来的那个ExpressGate。

A:使用你原先备份的menu.lst,覆盖掉修改过的menu.lst。在隐藏分区中,存在一个menu.lst.bak,当你没有备份时,可以用这个改名替换。


Q:隐藏分区中内容太多,我想要进行清理。

A:如果你已经使用本文的方法,替换了ExpressGate,那么在隐藏分区的ExpressGate文件夹下,你只需要保留menu.lst以及stage2,其它的均可删除。当然,这么做之前最好备份。


Q:为什么要安装grub4dos,而不是直接引导其它系统

A:测试后发现不行。


Q:能不能给原有的ExpressGate添加软件或功能。

A:ExpressGate系统中的文件都是压缩的,我试图安装squashfs格式进行解析,遗憾的是,解析失败了。


============================================================

参考资料:

http://ubuntuforums.org/archive/index.php/t-1410167.html


Copyright © 2024 liuyanghejerry
Powered by .NET 8.0 on Kubernetes