第一步 准备工作

分区

给CentOS 系统单独创建一个分区,具体看空闲硬盘的大小决定。

  • 右键桌面上 [我的电脑] 或者 [此电脑] 图标,选择 [管理] → [计算机管理] → [存储] - [磁盘管理]
  • 选择一个空闲空间较大的分区,右键选择 [压缩卷(H)…]
  • 在弹出的对话框中输入需要分配给 CentOS 系统的空间大小,以 MB 为单位
  • 输入完毕后,点击对话框右下角的 [压缩] 按钮执行压缩即可

注意:压缩出的新分区,不要执行 [新建简单卷],否则稍后 CentOS 不识别,到此步即可

下载 CentOS 7 系统文件

CentOS官网 下载 ISO 文件,DVD 版即可。

制作优盘启动盘

同样很简单:

  • 准备一个优盘,备份里面所有你认为不能删的文件,稍后将会格式化此优盘
  • UltraISO官网 下载软件
  • 安装,我基本是用完就卸载,所以,除了安装路径改下,其他全部默认
  • 运行 UltraISO,选择试用,选择主界面菜单栏里的[文件] → [打开],选择你刚下载好的 CentOS 7 镜像
  • 选择菜单栏里的 [启动] → [写入硬盘映像]
  • 在弹出框中确认选中的优盘无误,其他选项保持默认,无需修改,直接点击下方的 [写入] 按钮,执行制作优盘启动盘,稍后确认制作成功的提示信息即可

准备工作到此结束

第二步 从优盘启动安装

调整 BIOS 引导顺序

  • 插入刚刚制作的优盘启动盘,重启电脑,开机阶段按 F2F8F12 进入 BIOS
  • 切换到 Boot 界面,找到优盘启动项,使用 F5F6 调整其顺序至第一位,即从优盘启动
  • F10 保存并退出 BIOS ,即可从优盘引导启动。
  • 稍后进入一个标题为 CentOS 7 的黑白界面:
    图片加载中...

    同时提示 Press Tab for full configuration options on menu items.Automatic boot in 60 seconds...

  • 默认选中的是 第一项即 Install CentOS 7,按 Tab 键,下方的提示信息将显示为 vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207x20x86_64 rd.live.check quiet
    图片加载中...

  • 移动光标,删除 LABEL=CentOS\x207x20x86_64 rd.live.check 这部分,并用 linux dd 替换,最终的内容为 vmlinuz initrd=initrd.img linux dd quiet
    图片加载中...

  • 确认无误后回车,可以看到如下界面
    图片加载中...
    这里可以看到,界面下方有4列,分别是 DEVICETYPELABELUUIDLABEL 这一列就是驱动器名称,据此找到你的优盘,并记下对应 DEVICE 列的值,一般是 sdb4

  • 强制关闭计算机后再开机,回到刚才倒计时那个界面,依旧按 Tab 键,修改启动参数,这次修改为 vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 rd.live.check quiet,这里的 sdb4 替换成你刚才记下的自己优盘对应的 DEVICE 列的值。
    图片加载中...

  • 确认无误后回车,稍等片刻就可以看到暖暖的界面啦!
    图片加载中...

开始安装

  • 上面的系统语言根据需要自行选择(为了防止系统自动生成家目录下有 桌面下载 这类中文名路径,切换路径的时候还要修改输入法,比较麻烦,所以这里我保持默认,即 English),这里主要说下第二步的 INSTALLATION SUMMARY
    图片加载中...

选择需要安装的基础软件

  • 点击 SOFTWARE 下的 SOFTWARE SELECTION 选择一些需要安装的基础软件,这里只选择安装一个桌面软件 GNOME Desktop 就够了,选择完成之后点击左上角的 Done 回到 INSTALLATION SUMMARY 主界面。
    图片加载中...

磁盘分区

  • 点击 SYSTEM 下的 INSTALLATION DESTINATION 选择安装位置,这里可以看到我们之前压缩出来的那个新分区,以及优盘分区。
    选中那个新分区,并选中 Other Storage OptionsPartitioning 下的 I will configure partitioning 选项,切记,一定要选中此项,否则整个硬盘的数据都将被删除!!!
    确认无误后,点击左上角的 Done
    图片加载中...

  • 这一步对硬盘进行分区,可以点击 Click here to create them automatically 即可让安装程序自动创建分区,非常方便,也可以点击左下角写有 AVAILABLE SPACE 字样的红色区域上方的 + 按钮手动创建分区。
    图片加载中...
    选择手动分区的话,要注意单位,这里我选择自动分区。分区完成并且确认无误后,点击左上角的 Done 结束对硬盘的分区操作。下面我讲下手动分区操作步骤。

    点击 + 按钮,在弹出的对话框中选择新分区挂载的路径,并输入新分区的大小,这里我们设置新分区的大小为 6 GB,并挂载在 根目录 / 下。点击 Add mount point 保存分区信息。
    图片加载中...

    此时,可以看到新分区已经出现在左侧栏里了,但分区的单位并不对,默认刚才输入的单位是 MiB 并显示为 KiB ,这里我们修改为 MiB 即可,点击右下角 Update Settings 保存修改后的信息。
    图片加载中...
    以同样的方式添加 swap 等分区,添加完成后,点击左上角的 Done 按钮,完成对磁盘的分区。如果没有给 /boot 进行分区,会在第一次点击 Done 后收到警告信息。可以点击 Click for details 查看警告原因,然后点击 Close 后再次点击一次 Done ;也可以忽略警告信息,再点一次 Done
    图片加载中...
    忽略警告信息,点击两次 Done 之后,可以在弹出的对话框中看到,即将对磁盘进行修改的摘要信息,直接点击 Accept Changes ,开始对硬盘执行分区操作。
    图片加载中...

  • 回到 INSTALLATION SUMMARY 界面,待分区执行完成后, SYSTEM 下的 INSTALLATION DESTINATION 下的黄色感叹号就没有。点击右下角的 Begin Installation 按钮开始安装 CentOS 系统。
    图片加载中...

初始化账户

  • 安装进度界面可以看到 USER SETTINGS 下,ROOT PASSWORD 提示需要给 root 账户设置密码(root 账户默认是没有密码的),USER CREATION 提示创建一个普通用户。下面我们按照提示完成对账户的初始化。
    图片加载中...

  • 点击 USER SETTINGS 下的 ROOT PASSWORD ,给 root 账户设置密码。如果设置的密码强度不够,需要点两次 Done 按钮忽略警告信息,完成对 root 账户的初始化。
    图片加载中...

  • 完成对 root 账户初始化后,可以看到 USER SETTINGSUSER CREATION 的黄色感叹号已经消失了,说明初始化 root 账户的密码后,创建普通账户已经变成一个可选项。
    图片加载中...

    但推荐仍创建一个普通账户,以便平时使用,而非平时直接使用 root 账户,这样可以减少使用过程中的误操作,以及 root 账户密码泄露的风险。点击 USER CREATION ,创建一个新的账户,同样 ROOT PASSWORD 一样,如果密码强度不够,请点击两次 Done 按钮。
    图片加载中...

完成安装

  • 约15 ~ 30 分钟后,CentOS 7 的安装就大功告成啦。为了避免重启后再次从优盘启动,可以先拔掉优盘,再点击 Reboot 按钮重启计算机;也可以在重启时进入 BIOS 调整引导顺序,恢复硬盘作为第一引导盘。

    图片加载中...

  • 开机后会看到一个黑白屏的启动菜单,并且有一个默认选项,屏幕下方有一个 5 秒的倒计时,若 5 秒内没有任何操作,将使用默认选中的内核启动系统,也可以使用上下键进行切换并按回车键,即可使用选中的内核启动系统。这里默认即可。

第三步 找回 Windows 10 启动项

可能大家都注意到了,上面重启之后,已经无法进入之前的 Windows 10 系统。是的,CentOS 7 不能在安装过程中设置之后的启动项,不像 Ubuntu 那样,在安装 Ubuntu 的过程中,就可以选择启动项,因此这时候就无法进入 Windows 10 了。
不过,不用担心,因为 Windows 10 系统的引导信息以及数据都是还在的,我们只需要在 CentOS 7 中找回 Windows 10 的引导信息并添加到启动菜单中就可以了。

  • 启动 CentOS 7 并使用事先设定的账户,登录系统。这里我使用的是非 root 账户登录的。

安装 ntfs-3g

  • 右键桌面,打开一个终端。执行以下命令安装 ntfs-3g

    sudo yum install -y ntfs-3g

    之所以需要安装 ntfs-3g ,是因为 Windows 家族专用的文件系统,CentOS 7 默认不能识别,而要想在 CentOS 7 系统中找回 Windows 10 的引导信息,势必要让 CentOS 7 系统识别 Windows 10 的文件系统,故安装此库。

更新 Grub2 启动菜单,找回 Windows 10

  • 执行以下命令即可找回 Windows 10 引导信息:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg

    这一条命令,是让 grub2 自动扫描磁盘中已经安装的所有系统的引导信息,并将其加入到启动菜单中。重启一下计算机,在上面提过的启动菜单界面,是不是可以看到一个有 Windows 字眼的启动项啦?这就是你的 Windows 10!切换到此项,回车,我 Windows 10 又回来啦!

第四步 修复启动菜单界面 Windows 版本显示错误的问题

虽然 Windows 10 已经找回,然而,不尽如人意的是,引导 Windows 10 的菜单项上的 Windows 系统的版本并非“Windows 10”,而是“Windows 7”或 “Windows 8.1”等。
初步推测,此启动项上显示的 Windows 版本号,取决于你从何版本的 Windows 升级到 Windows 10的(若你是从 Windows 7 升级到 Windows 10 的,那此启动项的文字就会显示“Windows 7”字眼,对于从 Windows 8.1 升级也是一样的道理。未考虑直接安装 Windows 10 的情况)。
需要说明的是,这里只是一个文字显示错误,对正常使用没有丝毫影响。但你有强迫症的话,请继续往下看。

修复显示错误

我已经打好了一个 patch,放到了这里了,登录已安装好的 CentOS 7 系统,打开一个终端,并这行以下命令即可:

  • 下载patch

    wget https://gist.githubusercontent.com/liangzai-cool/59f0c29a528305a9aa1c3971aeef604b/raw/316a739240b388ff46ee95d38d2c7a97dcd53cbf/20microsoft-win10.patch
  • 安装patch

    ((sudo cp 20microsoft-win10.patch / && cd / && sudo patch -p0  ) < 20microsoft-win10.patch)

错误原因浅析

  • 启动菜单是执行 Grub2 的命令后,由 Grub2 生成的
  • Grub2 本身并不能识别磁盘中已安装的操作系统,它是依赖 os-prober 这个库来识别的
  • os-prober 本是为 debian 系统编写的,其在 debian 系统下不能识别 Windows 10 的问题已经修复
  • CentOS 下的 os-prober 目前最新版本依旧是 1.58 ,该版本依旧存在此问题,貌似 CentOS 下的 os-prober 无人维护。问题代码位置是 /usr/libexec/os-probes/mounted/20microsoft
About Me
WEB开发工程师
GitHub Repos