首页 > 代码库 > GPT硬盘先装ubuntu16.10后装win7

GPT硬盘先装ubuntu16.10后装win7

背景

    我的机器是台老笔记本thinkpad e430c,但是bios也支持efi启动。我并非故意折腾,而是没有考虑到还会装windows。如果你有计划,还是先装windows再装Linux,这样可以省很多麻烦。我不知道什么时候我的硬盘分区被我换成GPT的了,如果你的是MBR,那又可以省掉很多麻烦。

装ubuntu16.10

    将系统镜像用ultraiso写入U盘中,然后安装。因为硬盘上没有数据,所以随意分区,配置。我当时故意留下了一些分区未分配,以备不时之需。分区至少一个efi分区,一个swap分区,一个根分区。

装win7

    32位的WIN7肯定不支持GPT的,所以32位就不要折腾了。听说GPT盘不能用ghost安装,所以我下载了一个原版安装方式的镜像。听说有的安装镜像不支持efi,所以大家选镜像时需要注意一下,当然如果镜像不支持,也有其他办法,可以自己百度。幸好我的镜像是支持efi的,所以不用额外的工作。镜像搞下来了,用刻U盘还是刻光盘按自己的喜好,由于我的镜像有3.7G,我U盘刻不下,所以选择了光盘。

我用的镜像:

http://www.xitonghe.com/win7/qijianban-xiazai-167.html

https://pan.baidu.com/s/1c2MH2jY

bios配置

一定要注意bios配置,我就是bios配置没对,安装win7时一直卡在wIn7的启动界面,我还以为是镜像问题,导致多刻了几张盘。我以我机器的bios为例说明一下,其他型号的bios自己摸索。

startup -> UEFI/Legacy Boot (UEFI Only)
startup -> - CSM Support (Yes)

正确的选项就是在bios中Startup页面的UEFI/Legacy Boot选择UEFI Only选项,同时下面的- CSM Support选择Yes。我说下我遇到的一些情况,刚开始我上面选择的UEFI Only,下面选择的No,结果现象就是安装时卡在win7的启动界面。后来上面选择Both(既支持uefi,又支持legacy),结果顺利进入安装界面,但选安装分区时提示我是GPT分区,不能安装。

现在可以正常安装win7了,我用未分配的空间分配了两个区给win7,一个C盘,一个D盘。顺利安装完。重启后就只能进入win7了,现在可以激活系统了,正版用户忽略接下来的事。因为是GPT磁盘,所以以前各种激活工具不能用了,可以百度下“gpt分区激活win7工具”。我的用就是绿盟这个GPT磁盘win7激活工具经使用可以激活成功。

http://www.xdowns.com/soft/6/7/2015/Soft_134260.html

https://pan.baidu.com/s/1skYRZ1j

接下来是重头戏。

找回ubuntu

重启系统,第一步就是想办法把grub启动起来(ubuntu16.10用的是grub2,下面描述的时候我还是用grub这个词),各种方法,我就是用的我前面用的那个ubuntu的安装u盘。启动时选择从U盘启动,进入选择菜单的时候就按c,进入grub的命令行。就是黑屏幕下一个grub>提示符。

先说下我的分区情况,如下:

设备           Start      末尾      扇区   Size 类型
/dev/sda1       2048    976895    974848   476M EFI System
/dev/sda2     976896  16992255  16015360   7.7G Linux swap
/dev/sda3   16992256  20991999   3999744   1.9G Linux filesystem
/dev/sda4   20992000 220991487 199999488  95.4G Linux filesystem
/dev/sda5  220991488 781459455 560467968 267.3G Linux filesystem
/dev/sda6  781459456 863379455  81920000  39.1G Microsoft basic data
/dev/sda7  863379456 863641599    262144   128M Microsoft reserved
/dev/sda8  863641600 976771071 113129472    54G Microsoft basic data

文件系统           1K-块     已用      可用 已用% 挂载点
udev             3984384        0   3984384    0% /dev
tmpfs             801152     9812    791340    2% /run
/dev/sda4       97905948  7087240  85802340    8% /
tmpfs            4005744      696   4005048    1% /dev/shm
tmpfs               5120        4      5116    1% /run/lock
tmpfs            4005744        0   4005744    0% /sys/fs/cgroup
/dev/sda3        1968400   131852   1736556    8% /boot
/dev/sda1         486456    14044    472412    3% /boot/efi
/dev/sda5      274776980 69853816 190895188   27% /home
tmpfs             801148      128    801020    1% /run/user/100

在grub中(hd1,gpt3)对应着/dev/sda3,(hd1,gpt4)对应着/dev/sda4。如下几步命令可成功引导进入ubuntu。

1. set root=(hd1,gpt4)
说明:(hd1,gpt4)是指ubuntu根文件系统/所挂的分区。

2. linux (hd1,gpt3)/vmlinuz-4.8.0-26-generic root=/dev/sda4
说明:(hd1,gpt3)/boot所在的分区,假如你的/boot没有单独划分区,那么你完全用可以(hd1,gpt4)/boot/vmlinuz-4.8.0-26-generic或者/boot/vmlinuz-4.8.0-26-generic来代替(hd1,gpt3)/vmlinuz-4.8.0-26-generic。vmlinuz-4.8.0-26-generic是你想引导的内核映像,/boot目录下完全有可能有很多不同版本的映像,具体选哪个,一般选最新的吧。如果不知道怎么看自己有哪些映像,后面有说怎么看。/dev/sda4是指根文件系统所在那个分区在文件系统中的设备名。

3. initrd initrd.img-4.8.0-26-generic
说明:注意initrd.img-4.8.0-26-generic版本要与mlinuz-4.8.0-26-generic版本一致。

4. boot

ok,到此你已经进入ubuntu系统了。心里终于可以不慌了,目前你可以继续重复上面的步骤再次进入ubuntu。接下来还有两步,干完就真的搞定了。那就是重新将grub安装到磁盘。在命令终端中输入按顺序执行下面两个命令。

1. sudo update-grub
说明:这一步是更新引导菜单的列表,如果这步不做,那前后也是白做了。在ubuntu中你查命令时也许还有个update-grub2,其是他就是update-grub的一个符号链接。

2. sudo grub-install /dev/sda
说明:将grub写到硬盘上,让其作为默认的引导程序。参数/dev/sda是你的硬盘文件,根据自己的实际情况改,说不定你的硬盘是/dev/sdb呢。

到此一切搞定,重启系统后又可以看到grub的选择界面了,可以自己选择是进ubuntu还是win7,到底想让哪个作为默认启动项,自己再研究grub吧。

附:

前面在grub的命令界面时怎么确定自己的分区等相关参数?

ls命令可以列出当前硬盘所有的分区,如果 有多块硬盘,都会列出来,比如我进入grub时用了我的安装U盘,也被显示出来了。

这时如果你像我一样熟悉自己的分区,基本就可以猜出来是哪个分区了,不然就一个一个试吧,怎么试?

假设列出来有个分区叫(hd0,gpt2),那么输入命令ls (hd0,gpt2)/然后按回车或者连按两下tab键,看它列出来的文件名,符合根文件系统那些目录名,那么这个分区就是/所挂载的分区。如果你的boot目录没有单独挂分区那么到此就可以。如果你单独搞了一个分区,那么还是按刚才的方法找到/boot所在的分区。

如何看内核文件名?

假设/目录挂在分区(hd0,gpt1),/boot挂在分区(hd0,gpt2)。如果/目录与/boot在一个分区,那么用命令ls (hd0,gpt1)/boot/ 。如果不在一个分区,用命令 ls (hd0,gpt2)/。注意最后那个/。

GPT硬盘先装ubuntu16.10后装win7