老样子,先分享一篇文章——用 EasyBCD 硬盘安装 Ubuntu(适用于Windows 7/8)
http://forum.ubuntu.org.cn/viewtopic.php?t=392854
本文适用人群:对GRUB没有基础,但是遇到与博主相同问题,同时希望对GRUB有所了解的朋友
处理了两种情况,先对情况进行说明:
1、UBUNTU升级后,不能正常进入,通过GRUB命令行引导进入UBUNTU
博主手贱,昨天晚上一路点击升级,于是乎将UBUNTU14.04升级了,到了哪个版本也不知道。直到今天早上起床开机,直接在GRUB引导界面点击UBUNTU后,没有进入那熟悉的紫红色的界面,然后,就没有然后了...
博主的机子装的 WINDOWS7 和 UBUNTU 双系统,因为之前 ubuntu 也出过一次问题,grub又不熟悉,不想重蹈覆辙,所以还是保持了 windows 的 grub 引导。
2、需要安装UBUNTU,通过GRUB命令行引导加载.iso文件
没有光盘,直接通过加载 iso 镜像进行 ubuntu 的安装。
好了,两种情况都说明完成,下面说具体的方法,前提条件有3:
1、按照链接中的方法安装的NeoGrub
2、将ubuntu的iso文件复制到C盘根目录
3、将ubuntu的iso文件中的/capser目录下的vmlinuz.efi和initrd.lz文件复制到C盘根目录
这里记录的方法,均为从开机以后,进入NeoGrub引导加载器以后,也就是从界面
进入到
按照右下角提示,点 C 进入命令行模式,提示符为 grub>
两种操作方法均在命令行中执行。
对于第一种情况,在已经安装好的系统,仅仅不能正常的引导,可以通过如下的grub命令进入ubuntu:root (hd0,5)
kernel /vmlinuz-3.19.0-78-generic ro quiet splash root=/dev/sda5
initrd /initrd.img-3.19.0-78-generic
boot
root 设定工作路径,类似于 cd,不方便的是它只能设定绝对路径。这个命令不要怕,随便用,在写好 “root (hd” 后用 tab 键可以补全,如下图。
kernel 设定内核。前一条 root 命令已经将工作路径切换到 ubuntu 的 boot 路径下,路径下直接输入 /vml 进行补全即可得到内核,同时添加 ro、quiet、splash选项(设置为图形界面,否则是命令行),设置参数 root=/dev/sda5。这里一定要说一下这个 root 参数,也就是造成图 “grub 命令行” 中无法找到的问题所在。这里添加的 root=/dev/sda5 为加载 ubuntu 时的根目录,参考下图(使用 df -h查看),及 / 的挂载点。然而一般的都是在 sda6。
initrd 专业解释为 Load an initial ramdisk for a Linux kernel image, and set the appropriate parameters in the Linux setup area in memory。
暂且绕过,我理解为启动配置吧。
boot 启动系统。
而对于第二种情况,需要新安装一个系统,通过加载 iso 的话,就要用如下命令(和链接中的一样)
root (hd0,0)
kernel /vmlinuz.efi boot=capser iso-scan/filename=/ubuntu-14.04-desktop-i386.iso quiet splash ro locale=zh_CN.UTF-8
initrd /initrd.lz
boot
想要说明的是,必须使用 iso-scan 来加载 iso 文件,而 kernel 命令中的 /vmlinuz.efi ,和 initrd 命令中的 /inintrd.lz ,就是从镜像文件中拷贝出来的两个文件,
/ubuntu-14.04-desktop-i386.iso 就是 ubuntu 镜像。
这里 / 不能少,表示工作路径的根目录,同时 root(hd0,0) 就是 C 盘的位置了,可以通过 ls 命令查看其中的文件,就知道了。
—— 对于需要安装的同学,进去后一定要按照链接中的,先 umount 掉镜像再安装哦,否则后果自负哦。
小结一下:
其实搞了这么久,就了解了两个命令 root 和 ls,剩下的都是直接使用。 grub 命令行中的参数基本上都没有 -- 做标识,所以注意 root 命令和 kernel 参数 root 的区别就好。
而最让人纠结的就是路径的确认问题,几个地方可以注意一下(镜像安装的不涉及此问题):
1、在安装时,进行分区,记录好根目录 / 的挂载点
2、进入系统后,使用 df -h 查看根目录 / 的挂载点
3、在 GRUB 命令行中可以通过 ls 查看路径中的文件,从而确定工作路径(只是一种判断方法)
加注:
通过GRUB命令行进入UBUNTU肯定不是长久之计,当发生楼主的情况或者安装完成后GRUB中没有UBUNTU的GRUB信息时,一次性永久解决的方法就是:
进入 windows 中,打开 EASYBCD,然后添加新条目,在 Linux/BSD 选项卡下,勾选“使用EasyBCD的GRUB副本,然后点击”添加条目“即可自动搜索并添加新的GRUB信息。
2017/5/11 新增:
还有一种比较麻烦的永久解决办法,就是自己去修改WIN下面的grub文件,由于风险较高,笔者暂时还没尝试,
爱冒险的朋友试成功了记得出来分享哦