三个操作系统安装(Win 10、Deepin、Kali)

作者 Marlous 日期 2018-10-28
三个操作系统安装(Win 10、Deepin、Kali)

注意:
Grub 安装在 /dev/sda 上。

一 概况

  • 本篇文章的流程概况:以有 Windows 10 -> 在 Win 10 中划分出一个分区 -> 安装 Deepin Linux -> 返回 Win10 再划分一块分区(之前没打算装两个 Linux)-> grub rescue 恢复引导 -> 返回 Win 10 查看、制作第二个 Linux 启动盘安装 -> 完成
  • 如果一开始就打算安装两个 Linux,可以直接划分出两个分区准备好,这样就不会出现 grub rescue 恢复引导。
  • 在 Windows 基础上安装 Linux 很容易,但返过来在引导上会比较麻烦。
  • 根据硬盘分区容量大小搞清楚自己已经安装的操作系统、将要安装的操作系统在哪个分区上以及相关信息。

二 安装第一个 Linux 系统

  • 此篇均为 BIOS 传统模式 + MBR,非 UEFI + GPT。
    查看 BIOS 模式:
    查看 BIOS 模式

  • 已存在 Windows 10,在 Windows 下准备好划分出一定的磁盘空间(用分区魔术师切割并转为主分区。一开始就准备装两个 Linux 的话,直接划两个分区出来。);用 UltraISO 解压出其中的 deepin-boot-maker.exe,用它来制作 U 盘映像;设置 BIOS 启动顺序等其他配置,U 盘安装即可(引导会自动设置好)。Deepin 安装成功。

三 安装第二个 Linux 系统

  • 先进入 Deeppin,为以防万一和备份一些信息,备份 gurb.cfg(一般不会有问题,可略过),查看分区情况和 UUID(硬盘分区唯一识别符),拍照记录。根据硬盘分区容量大小搞清楚自己已经安装的操作系统、将要安装的操作系统在哪个分区上。
    分区情况
    UUID

  • 重启返回 Windows 10。

  • 使用 Win32DiskImager-0.9.5(用其它软件写入可能会数据写入出错)将 Kali 镜像写入准备好的 U 盘,注意路径及文件名用英文。

  • 用分区魔术师切割一部分空间并转为主分区(之前没预留空间的情况,已预留分区可直接重启安装,结束。),并重启。
    分区魔术师切割
    分区魔术师转为主分区

  • 重启后因为分区的变化导致 Grub 引导找不到 Windows 操作系统位置而无法正常启动(最好之前预留好空闲分区),进入 grub rescue:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    # 查看各分区文件系统类型,确定哪个是 Deepin 系统安装位置,文件系统为 ext。
    ls
    ls (hdx,msdosy) # x,y 为数字,参见 ls 命令后显示的分区情况。

    # 如果之前安装 Linux 时没有分 /boot 分区:
    ls (hdx,msdosy)/boot/grub
    set root=(hdx,msdosy)
    set prefix=(hdx,msdosy)/boot/grub
    insmod normal
    normal

    # 如果之前安装 Linux 时分出了 /boot 分区:
    ls (hdx,msdosy)/grub
    set root=(hdx,msdosy)
    set prefix=(hdx,msdosy)/grub
    insmod normal
    normal

    # 回车进入 Linux,命令行输入命令:
    sudo update-grub
    sudo grub-install /dev/sda
  • 重启进入 Windows 查看,准备好的空闲分区也已成功:
    空闲分区状态

  • 重启用 U 盘安装第二个 Linux 操作系统 Kali,完成(Grub 会自动识别并完成引导的配置)。

四 补充:换成 Deepin 的 Grub 引导

由于先安装的 Deepin,后安装的 Kali,导致后者的 Grub 覆盖了前者的,现在恢复用 Deepin 的 Grub 来引导(更加美观)。

  • 先进入 Deepin,终端查看分区情况,我的 Kali 装在 /dev/sda8。如下图。

  • 安装 Grub:grub2-installgrub-install /dev/sda

  • 在 /boot/grub/grub.cfg 中添加 Kali Linux 的启动项,让 Deepin Linux 的 Grub 能找到 Kali 操作系统的位置并添加在开机启动操作系统选择菜单上(想再改回去则同理,在 Kali 里覆盖安装 Deepin 的 Grub,然后添加 Deepin 的启动项),如图:

    1
    2
    3
    4
    5
    6
    7
    menuentry "显示的操作系统名" {
    insmod part_msdos
    insmod ntfs # 文件系统类型。
    set root='hd0,msdos8' # hd0 为第几块硬盘,8 为第几个分区。
    search --no-floppy --fs-uuid --set=root 7E58BCF758BCAF71 # 磁盘用 UUID 来标记,更精确。
    chainloader +1
    }

添加启动项

  • 更新 Grub 配置:update-grub,重启完成。