Ubuntu 和 Win10 系统的安装

曹至梧 2018-10-15 02:31 更新
  1. 现在的情况
  2. Win 安装
  3. Linux 安装

1. 现在的情况

最近因为各种原因,重复不断地安装了好多次的操作系统,包括 Win10 和 Ubuntu 18.04 。

这些原因有:

所以呢,在更新了一台机器之后,也就自然地想把所有的机器都更新了。

时过境迁,现在的主板对 UEFI 已经有很好的支持了, Legacy Mode 虽然还有保留,但是已经不再需要使用它。而就是因为这两种模式混合存在,让市面上你能搜索到的很多文章都是以讹传讹,很容易把人带坑里。

不管是 Win10 还是 Linux ,只用,也只需要用 UEFI 的方式来安装就可以了。(在主板管理中,配置成 UEFI Only

2. Win 安装

Win10 可以在微软的官方网站下载到 iso ,好像直接也有对应的制作工具,可以制作安装用的 U 盘。然后 U 盘启动,按提示安装就可以了。

在安装 Win10 后,除了一个保存操作系统相关文件的大分区,安装程序还会因为引导,恢复等功能,多做 3 个空间不大的分区出来:

设备            起点      末尾      扇区  大小 类型
/dev/sda1       2048   1023999   1021952  499M Windows 恢复环境
/dev/sda2    1024000   1228799    204800  100M EFI 系统
/dev/sda3    1228800   1261567     32768   16M Microsoft 保留
/dev/sda4    1261568 165758975 164497408 78.4G Microsoft 基本数据

大概是这样,注意一下那个 EFI 系统的设备位置即可,因为等下安装 Linux 时,需要把引导作到这里。

Win10 安装后,会创建它的 UEFI 启动项。

3. Linux 安装

Ubuntu 的 iso 在官方网站就可以下到。以前安装它时,我会先用 Universal USB Installer 这个工具来制作安装 U 盘,这样比较快。但是,现在的问题是这个工具作的安装 U 盘是不支持 UEFI 方式的。于是,如果主板是 UEFI Only 的,那么这个安装 U 盘无法正常启动,如果主板兼容了 Legacy Mode ,因为之前的 Win10 在 UEFI 上的引导,可能会造成新安装的 Linux 没有启动引导的入口,那么你可能又要搞一大堆事来解决这个问题。

事实上,根本不需要这样麻烦的。

UEFI 算是比较先进的东西,它的工作方式基本是遵循的软件定义的处理方式,所以,启动引导时只要能找到相应的 EFI 定义,就什么问题都没有了。而 EFI 定义及 UEFI 这套东西, Ubuntu 18.04 是支持的,你打开 iso 文件,能看到一个 EFI 目录。

剩下的事就好办了,把 iso 直接解到 U 盘中就可以了。

Linux 下可以使用 dd

dd if=xxx.iso of=/dev/sdx

Win 下可能需要借助专门的烧录类工具,直接打开 iso 文件完整复制里面的内容可能也可以,没试过。

接下来,重启, UEFI 模式下直接从这个 U 盘就可以启动,然后就像以前光盘一般的安装过程了。

安装 Ubuntu 时,引导程序(分区那个页面,下方会让你选),安装在之前 Win10 的 EFI 系统那个位置。因为使用 UEFI , Linux 的 /boot 不需要单独再分,前面 Win10 已经搞了一个。

一路按提示操作下去就可以正常安装好了。

Ubuntu 安装之后,在 EFI 系统那边,会自动处理好已有 Win10 的启动的。

安装好之后,进入 Ubuntu ,可以把 /dev/sda2 挂截上,看到里面的目录结构:

root@x250:/home/zys/mnt# tree -L 3
.
└── EFI
    ├── Boot
    │   ├── bootx64.efi
    │   └── fbx64.efi
    ├── Microsoft
    │   ├── Boot
    │   └── Recovery
    └── ubuntu
        ├── BOOTX64.CSV
        ├── fw
        ├── fwupx64.efi
        ├── grub.cfg
        ├── grubx64.efi
        ├── mmx64.efi
        └── shimx64.efi
评论
©2010-2018 zouyesheng.com All rights reserved. Powered by GitHub , txt2tags , MathJax