首先发出linux超级菜鸟的吼声:他喵的,原来升级ubuntu内核不一定要自己编译,有直接安装升级的包,我叉!

ok,我发泄完了,下面稍微总结一下:

一、目前vboot对linux的支持仅限于几个版本的内核,比如:ubuntu的2.6.35-28和2.6.38-7。

二、如果对ubuntu等linux版本无追求,那么可以直接去vboot官方网站下载已经打包好的vhd,把vhd下载到电脑上,安装vboot,编辑grub.cfg,比如加入如下菜单:

menuentry "VHD ubuntu11" {

insmod vhd

vhd vhd0 (hd0,5)/ubuntu-1104-beta1-i386.vhd --partitions

linux (vhd0,1)/boot/vmlinuz-2.6.38-7-generic root=/dev/sdb5 vloop=/ubuntu-1104-beta1-i386.vhd vlooppart=p1 quiet splash

initrd (vhd0,1)/boot/initrd.img-2.6.38-7-generic

}

官方包含vhd的压缩包内的htm文件中已经有相应的菜单了。里面需要修改的部分也已经用红字标出,直接拷贝过来基本上需要修改的就是 第二行vhd0后的路径,第三行root、vloop后面的路径。需要注意的是 第二行 (hdx,x)和第三行sdxx的确定。(hdx,x)很容易确定,不敢确定的话在vboot菜单下进入命令行,用ls命令查看就能知道。关键是sdxx,我原来以为与hd(x,x)一致,后来发现有些机器上是不一样的。晕,这个只能靠你自己去修改发现了。反正vboot可以直接修改后按运行测试。另外,官方提供的ubuntu11的下载文件的htm文件中,菜单少了insmod vhd这句话,得加上,不能漏了。

三、如果你需要把一些网络上修改的ubuntu装到vhd上,那么你就需要动手了,首先要用虚拟机把系统装到vhd文件里面,用终端查看内核版本,命令式uname -a  ,然后:

1.如果需要安装的ubuntu内核版本与官方支持的一致,那就很简单了。直接去官方下载ubuntu-.....-setup-files.7z,把initrd.img-2.6.35-28-generic,vmlinuz-2.6.35-28-generic这两个文件覆盖vhd里面boot下面的同名文件。然后像官方vhd那样安装启动就行了。比如深度deepin_10.12.1_i386.iso 这个版本就是2.6.35-28内核的,直接覆盖文件就能搞定了。

2.如果内核版本不在支持之列,那么就只能先安装相应内核。别寄希望于apt-get install xxxx,我试了,没用。用google搜索 package 2.6.35-28-generic  就能找到相应的deb包下载,直接在虚拟机里面安装。安装完毕后,直接用官方文件替换boot下的同名文件。如果原来的内核版本高过后来安装的版本,还得修改/boot/grub/grub.cfg,把低版本的那个启动行调到前面去。然后同样是像官方vhd那样安装启动就行了。

这里再倒一下苦水,我在linux方面就是一绝对菜鸟,居然以为内核必须编译安装,结果测试几个ubuntu修改版,反反复复编译了好几次,每次耗时都快一个小时,每次都是内核编译成功了,但运行vhd却失败(估计是内核文件起名与官方文件不符)。后来偶尔才知道原来安装内核直接有相应的运行文件,就像win下双击鼠标就行了,我晕啊。windows xp 装vhd,我只用了不到半个小时就研究弄懂兼搞定,而linux却花了我几天时间,因为我连Linux命令都不懂几个。有的人可能会说,既然你如此菜,肯定整天用win,何必装linux玩?我要说的是,如果我linux不菜,我何必装Linux进vhd? linux高手必定不屑用wubi或vhd安装linux。

四、目前仍有小问题。现在测试了linuxdeepin , xhacker修改的ubuntu,都能运行的不错,其他各种操作比如上网、看电影、听音乐等均无问题。但是如果在设备里面双击查看vhd所在的硬盘,则出现错误提示" Internal error: No mount object for mounted volume", 而进入media里面双击该盘却能正常查看,不知道是不是兼容问题。不过这只是小毛病了。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐