您的位置:首页 > 其它

ubuntu/win7 双系统,重新装win7,系统卡在grub终端的问题修复

2016-03-08 21:12 615 查看
在一台机器上装windows/ubuntu可充分利用系统的硬件资源,比起在主系统里通过VirtualBox或Vmware安装虚拟机的做法, 更能充分利用CPU/memory的资源。

Win 7/ ubuntu双系统,一般先安装Win7, 然后在win 7 中通过安装easyBCD软件来引导ubuntu。按照这样的顺序安装的话,一般问题不大。具体安装步骤,可参考这篇文章: 点击打开链接

之前机器的独立分区里安装了ubuntu,在安装了win 7后,开机直接进入了Win 7, 原来的ubuntu启动项消失了。作为一个GEEK的我,怎么会不把ubuntu找回来。步骤如下:

1. 用U盘制作了一个ubuntu 的启动盘,Try ubuntu(不安装ubuntu), 进入ubuntu

2. 获取超级用户权限

sudo -s

3. 执行 fdisk -l,得到如下结果


4. 找到 ID 为83的设备路径,可能有多个,找到ubuntu根分区所在的路径,这里是 /dev/sda9。其中sda10是linux交换分区,sda11是home分区。

5. 挂载sda9

mount /dev/sda9 /mnt

6. 输入命令安装grub到硬盘的MBR:

grub-
install
--root-directory=
/mnt
/dev/sda


出现“Installation finished. No Error Reported.” 表示操作成功。

当然也可通过echo $? 查看命令的执行结果。为0表示成功,非0表示失败。

7. 卸载/mnt

umount /mnt

8. 关机后,移除启动U盘,重新启动机器。ubuntu和windows的启动界面都出来了。

但是windows的启动可能会有问题,选中进入ubuntu 系统

9. 输入命令更新引导项:

sudo
update-grub


9. 重新启动后,Windows/ubuntu都应该可以进入了,而且多了很多启动项。

10. 修改启动项的顺序,让常用的系统作为默认的开机启动项

sudo gedit /boot/grub/grub.cfg

其中一个menuentry 表示一个启动菜单项。例如,下面就有两个ubuntu系统的启动项,

调整menuentry 的先后顺序即可调整系统启动顺序。

menuentry 'Ubuntu, with Linux 3.8.0-44-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 8d8dcd27-054f-4b60-92b8-b27a75a49020
linux	/vmlinuz-3.8.0-44-generic root=UUID=1b1c5a10-39b2-4a8d-b8a2-c0d5876c957b ro   quiet splash $vt_handoff
initrd	/initrd.img-3.8.0-44-generic
}
menuentry 'Ubuntu, with Linux 3.8.0-44-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 8d8dcd27-054f-4b60-92b8-b27a75a49020
echo	'Loading Linux 3.8.0-44-generic ...'
linux	/vmlinuz-3.8.0-44-generic root=UUID=1b1c5a10-39b2-4a8d-b8a2-c0d5876c957b ro recovery nomodeset
echo	'Loading initial ramdisk ...'
initrd	/initrd.img-3.8.0-44-generic
}


11. 修改timeout的值,可减少每次的等待时间

sudo gedit /boot/grub/grub.cfg

terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=hidden
set timeout=0
# Fallback hidden-timeout code in case the timeout_style feature is
# unavailable.
elif sleep --interruptible 0 ; then
set timeout=0
fi
fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: