win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

时间:2023-03-08 15:49:12
win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

win7 64 + Ubuntu 14.04.1 64双系统安装

背景:我的笔记本之前的系统是window 7 64 + Ubuntu 14.04.1,用UEFI引导系统。安装过程是先装的win7,再装Ubuntu。本来挺和谐的搭配,但是因为装Win7 的时候格式化硬盘为GPT(Globally Unique Identifier Partition Table)分区表格式(在PE系统里用Diskgenius格的),并且勾选了MSR分区(Microsoft Reserve,微软保留),所以最后装完系统在C盘之前还会出现两个分区:512MB的ESP(uEFI System Partion)分区和128MB的MSR分区。这就造成了Windows 7系统无法激活。尝试了各种激活工具都失败了。

这里有两个对应关系:

UEFI ~ GPT
legacy ~ MBR(Main Boot Record,主引导记录)
一般情况下,系统采用UEFI引导,那么把硬盘格式化为GPT格式比较好。
举个例子,在UEFI+GPT情况下安装Win7+Ubuntu 14.04双系统,先装win7后装Ubuntu。启动的时候是Ubuntu的gurb引导win7(也就是按开机键后->显示屏闪笔记本LOGO(这时候就是UEFI在引导)-> 进入紫色背景的Ubuntu grub界面,在这个界面选择启动Windows系统还是Ubuntu,还是memory test等等)。
在这样的双系统环境下,如果重装Windows 7系统(Linux分区不动),Ubuntu grub菜单不会被覆盖,还能正常进入Ubuntu。猜测原因:这是因为重装win7时没有动ESP和MSR分区,Ubuntu的grub是装在ESP里的,所以grub依然存在。
但是如果是legacy + MBR下的双系统,重装win7后,Ubuntu grub就没有了。开机直接进入win7,然后得采取一些措施恢复Ubuntu 启动菜单。参见恢复被win7覆盖的Ubuntu Grub

不一般的情况就是用UEFI + MBR,或者legacy + GPT。这种搭配的可行性和稳定性参看这篇文章《WIN8 与WIN7的64位及32位 分别对Legacy BIOS+MBR和UEFI+GPT两种 启动方式和分区架构下的安装可行性分析》

那么,接下来目的很明确,采用legacy + MBR重装Windows 7和Ubuntu,这样win7 C盘前无ESP和MBR分区,达到激活的目的。


简要步骤:

1. 进bios设置为legacy启动(其实我是用的UEFI)。

2. 用U盘启动盘进PE系统,用PE系统里的Diskgenius将整个盘格式化成MBR分区表格式。然后分区如下:

一个主分区为C盘,一个扩展分区包含了DEF三个逻辑分区,空余的60多G不动,留作装Ubuntu。(下图后面两个分区因为我已经装了Ubuntu,所以已经显示为主分区。未装Ubuntu之前应该是一个未分配的空闲空间,装Ubuntu的时候再对空闲空间进行分区)

win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

3. 在PE系统里安装Win7系统到C盘。

4. 重启进入Win7后,采用EasyBCD硬盘安装的方法装Ubuntu 14.04.1


下面是详细过程,以及一些可能出的错误。

装Win7可能出现的错误

(1)在PE系统里用Diskgenius分区后,然后用Windows 安装器安装Windows 7,在部署镜像到6%左右时可能会报错说C盘下的Image文件损坏云云。我的解决办法是在Diskgenius分完区后,退出了Diskgenius,再在计算机里,右键C盘再格式化一遍。

(2)接着,如果正常部署完镜像到100%,初步安装完成,会让你重启。重启后如果报错说找不到系统(system can not be found)或者说xxx丢失让你按ctrl alt delete重启,那么你就重启,选择从U盘启动,然后在PE选项菜单选择尝试从本地硬盘引导系统。然后应该会进入windows安装界面了。

(3)接下来,安装程序会启动服务,安装设备,到100%后,如果弹框报错说“windows安装程序无法将windows配置为在此计算机的硬件上运行”。这个错误的原因网上有很多解释,我这里的原因是分区的时候设置C盘为活动分区,最后却把系统装到了F盘。一般不会出现这个错,我都是第一次见。真出现了的解决办法:
当出现如上提示的时候,按下shift+f10 会打开命令窗口,进入到C:\windows\system32\oobe文件夹,输入msoobe回车然后输入msoobe即可进入下一步操作,但错误提示框仍然在,不用理会按照屏幕提示输入相应的信息。之后又会回到弹框报错界面,再次进入命令行窗口,用shutdown命令关机后重启。完成后续桌面设置。安装好后WIN7系统无任何问题。

好!到这里就顺利装完win7了,接下来该装Ubuntu了。

先给出方案:用EasyBCD辅助硬盘安装。刻U盘安装就是作死!!!各种死法后面讲。先讲Windows 7下用EasyBCD辅助硬盘安装Ubuntu14.04.1。参看用 EasyBCD 在 Win7/8 中硬盘安装 Ubuntu。Ubuntu 14.04.1在安装过程中,如果之前留了空白分区,它会有个选项是安装Ubuntu与Windows 7共存,如下图:

win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

【【【如果你要自己分区(选择了最后一项something else),那么有个细节要注意:在安装ubuntu地时候,选择boot loader安装的位置,如果选的整个硬盘,后果是整个Windows分区没有了,最后会在硬盘前512MB形成ESP分区(uefi system partion)。因为装win 7之前用的是legacy+MBR模式,而Ubuntu 14.04.1带了EFI特征,装的时候会用ESP分区。所以猜测应该选择ubuntu boot loader的安装位置为ext4分区???选择“安装Ubuntu与Windows 7共存”后,Ubuntu安装程序是怎么安装grub的???这个有待研究。】】】

装完了Ubuntu之后,在磁盘管理程序中可以验证上述说法。如下图,Windows 分区完好。空闲分区被分成Linux ext4分区和Linux swap分区。尾部剩下的那1.1MB不用理会。

win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别


下面说说刻U盘安装Ubuntu 14.04.1的各种死法!!

(1)首先看看Ubuntu官网给出的Universal USB Installer (UUI)工具,Universal-USB-Installer-1.9.5.7.exe和ubuntu-14.04.1-desktop-amd64.iso刻好U盘之后启动,报错如下:

这个错误在网上各种搜没有找到好的解决方案。

win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

(2)那么试试ultraISO刻U盘。legacy+mbr模式下安装好了win7,然后在Windows下用ultraISO刻4G的U盘,U盘格式为fat32。刻好之后从U盘安装Ubuntu 14.04.1必须设置bios为uefi启动,否则无法启动。ok,启动起来了,开始安装Ubuntu,结果出现如下错误:

win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

这个错误网上的说法是,用ultraISO刻U盘的时候,U盘为fat32,存放iso文件的硬盘为ntfs格式。把U盘格式化为ntfs重刻即可。好,那来测试一下:

(3)ultraISO刻U盘,便捷启动用usb-hdd+格式,U盘格式化为ntfs(同电脑硬盘格式),刻好之后从U盘启动。

若用legacy启动,如下错误:

win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

若用uefi启动,有个错,cannot found /efi/xxx,进入安装菜单后,卡死:

win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

草!浪费了我好多时间。U盘安装去死!!!



下面也是一些刻U盘的细节。没用,留个反面教材。我记得12.04刻U盘安装倒是很正常。当然刻光盘安装最保险!

在Ubuntu官网上下载的Universal-USB-Installer-1.9.5.7.exe和ubuntu-14.04.1-desktop-amd64.iso,刻录好U盘之后,从U盘启动报错如下:

BusyBox v1.15.3 (Ubuntu :1.15.-1ubuntu4) built-in shell (ash)
Enter 'help' for a list of built in commands. (initramfs) mount: mounting /dev/loop0 on //filesystem.squashfs failed: input/output error
Can not mount /dev/loop0 (/cdrom/casper/filesystem.squashfs) on //filesystem.squashfs

(如果从U盘启动说“operating system not found”,那么请在bios中把uefi打开。因为Ubuntu 14.04采用了efi特性。)

在网上搜了一堆的资料,不知为何。

https://bugs.launchpad.net/ubuntu/+bug/636711

http://www.hacktohell.org/2011/07/fixing-can-not-mount-devloop0-while.html#.T3aOM8W5HzY

然后用UltraISO再刻了一遍,解决。如下图:

1. 格式化U盘,选择写入方式

2. 点击便捷启动->写入新的MBR->USB-HDD+

3. 点写入

win7 64 + Ubuntu 14.04.1 64双系统安装,详解UEFI ~ GPT和legacy ~ MBR区别

有个细节是UltraISO直接打开ubuntu-14.04.1-desktop-amd64.iso,只显示一个EFI文件夹,其他的文件都没有。解决办法是先将iso文件挂载到虚拟光驱(可以用UltraISO带的虚拟光驱,或者你安装的其他虚拟光驱软件),然后点文件->打开光盘,打开虚拟光驱驱动器,然后iso里所有的文件就进来了。后面就是常规步骤了:点启动->写入硬盘映像。