ubuntu系统下安装windows双系统及问题处理

以前想把笔记本安装个双系统,总是想到先从windows下安装,今天玩了一把ubuntu下安装windows7。遇到了一点小坑
在此分享一下心得

需要为windows系统腾挪磁盘空间的情况

ubuntu和windows应该安装在硬盘的两个不同分区,如果你有空闲的分区,可略过下面一大段。如果当初将ubuntu安装在一整块硬盘上,安装windows时需要在硬盘上为它腾出一块地方。可以使用pe带的磁盘分区工具来调整磁盘分区大小,或者使用ubuntu系统的分区工具来调整,如下所示:

首先插上ubuntu启动盘,开机进入BOOT MENU(不同电脑界面不同),选择USB项。
有试用ubuntu和安装ubuntu两个选项出现,选择安装ubuntu。
在下一页,选择最下面 其它选项,然后继续。
在下一页出现的分区列表中选择需要调整出空间的分区。
点击左下角change,会弹出编辑分区这个对话框,大小是你想为原系统即ubuntu保留的大小,比如我一共有150GB,想为windows7分出50GB的大小,在这里改变到100GB左右即可,点击确定。
完成后后退到最初的界面,选择试用ubuntu。
ctrl+alt+t打开终端,运行
sudo gparted
会打开 gparted这个工具,右键选择灰色的未分配区域,新建并格式化为ntfs格式的文件系统(操作完成后记得点击界面上方应用),然后关机。

安装win7系统
关机后插上windows7的启动盘,与打开ubuntu启动盘类似,在新分配的分区安装windows7系统。

安装完成后,会自动进入windows系统,但是可能无法正常进入grub启动菜单;如果是ghost恢复的系统是不会自动进入windows系统的,后面再说这种情况;即不能多引导,需要修复启动项。

修复启动项
重建grub启动项
关机后插上ubuntu启动盘,并进入ubuntu桌面,终端输入

sudo fdisk -l (小写的L)  

输出内容:

Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 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
Disklabel type: dos
Disk identifier: 0x04bcd6c6

设备       启动     Start    末尾    扇区   Size Id 类型
/dev/sda1  *         2048 234041343 234039296 111.6G 83 Linux
/dev/sda2       234043390 250068991  16025602   7.7G  5 扩展
/dev/sda5       234043392 250068991  16025600   7.7G 82 Linux 交换 / Solaris


Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 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
Disklabel type: dos
Disk identifier: 0x853aba59

设备       启动     Start    末尾    扇区   Size Id 类型
/dev/sdb1  *         2048 167776255 167774208    80G  7 HPFS/NTFS/exFAT
/dev/sdb2       167776256 976773119 808996864 385.8G  f W95 扩展 (LBA)
/dev/sdb5       167778304 976773119 808994816 385.8G  7 HPFS/NTFS/exFAT

我这是两块磁盘情况,可以看出都做成了启动盘。
其中,sda是第一块磁盘,sdaX是我的ubuntu分区;sdb是第二块磁盘,sdaX是win7分区,每个人可能情况不同,请自行辨认。/dev/sdb1划分了80G安装win7。
接着,终端输入

mkdir /media/tempdir (用来挂载sda1的,就是创建一个tempdir,名字什么的自己定)  
mount /dev/sda1 /media/tempdir (将sda1挂载在tempdir下)  
grub-install --root-directory=/media/tempdir /dev/sda (重新安装grub2到硬盘的主引导记录(mbr))  

操作成功出现:Installation finished.No Error Reported.

重启后就可以进入原来的ubuntu系统,但是windows暂时无法引导,下面就是更新grub2让它可以引导windows7。进入到系统后打开终端,输入

sudo update-grub2

update-grub或者update-grub2,根据grub版本选择,这个重新生成了grub.cfg.

Generating grub configuration file ...  
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.  
Found linux image: /boot/vmlinuz-3.13.0-37-generic  
Found initrd image: /boot/initrd.img-3.13.0-37-generic  
Found memtest86+ image: /boot/memtest86+.elf  
Found memtest86+ image: /boot/memtest86+.bin  
Found Windows 7 (loader) on /dev/sda2  
done  

重启电脑,即可发现win7引导菜单,可正常引导系统。

点击参考原文地址

推荐阅读更多精彩内容