Win 10 + Ubuntu + Kali 三系统完美 UEFI 启动 跳坑填坑指南

分享,记录 2017-02-12 13 条评论 访问: 45,366 次

0x00 牢骚

最初我只是想把 Ubuntu + Win10 换成 Kali + Win10 方便以后搞事情,可谁知这个坑一跳就是,三天从早上起来一直弄到晚上两点中途除了吃饭上厕所没别的事情。几乎尝试完了网上所有的教程全部失败告终,本来要放弃了,今天又抱着试一试的心态再尝试最后一次。

0x01 前车之鉴,如急于安装可以跳过看下一节。只看,别按着做!少踩坑!

从 kali 官网上下载了 iso 镜像用 UtraISO 烧录到 U盘。

如果 BIOS 设置的是纯 UEFI 启动模式,按 F12 (我的机子是 F12)进入启动管理菜单,却找不到 U盘。
在 BIOS 里面设置启动模式为 Legacy Support 然后重启,可以找到 U盘,选中
进入后提示 failed to load ldlinux.c32 无法正常启动
后来把 iso 文件里面 boot 文件夹下的 efi.img 提取出来解压(用 UtraISO),把 EFI LIVE INSTALL 三个文件夹复制到启动 U盘 根目录覆盖。
要想 UEFI 启动那么启动设备里面就必须有 EFI 这个文件夹,里面还要放对东西。
重启,BIOS设置 UEFI 启动,可以找到 U盘 了,选中
黑屏,什么也没发生
重启,BIOS 设置 Legacy Support 然后启动菜单选择 Legacy 方式启动 U盘(没有 UEFI 字样的那个启动项)
顺便说一下,不要把 U盘 插在 USB Hub 上!!!!这个地方坑啊啊
再说一下,不要使用 UtraISO(在这上面浪费了不少时间),用 win32DiskImager 或者 UniversalUSBInstaller,linux 直接 dd 命令把 iso 文件烧录到 U盘。
总之还是启动不起来。以下换软件 win32DiskImager 烧录。
用 Legacy 模式能够顺利启动 U盘
然后选择 Install 进入安装界面,然后接下来是大坑,越走越远
安装过程中出过几次错误,什么无法识别光驱(我电脑就没光驱),只要拔插 U盘 多重试几次就行了
安装完成后重启
如果 BIOS 这时设置成纯 UEFI 启动或者选了 Legacy Support 但是选择 UEFI First ,那么就直接进入 Win10,看不到 kali ,如果选了 Legacy Support 选择 Legacy First 那么可以成功启动,看到 kali 的 grub 引导界面,然后,win10 消失了。如果此时选择妥协,就可以 BOIS 设置 Legacy Support 并选择 UEFI First 在需要进入 kali 的时候按 F12 调出启动管理器,选择相应的启动选项。如此尴尬的局面,win10 kali 二者不可得兼....

0x02 正式教程

说在前面,我的电脑安装的是 Win10 + Ubuntu 双系统。整个硬盘分区情况:
ESP MSR WIN10系统 Data / /boot /home swap WINRE_DRV 原厂恢复分区 原厂保留ESP分区
现在在 Data 区里分出 10G 来装 kali 只分一个区
我们直接在硬盘上启动 kali ISO(这一步是关键,硬盘加载)
在 Ubuntu 下
sudo fdisk -l 查看设备

/dev/sda1       2048    534527    532480  260M EFI System
/dev/sda2     534528    567295     32768   16M Microsoft reserved
/dev/sda3     567296 210284543 209717248  100G Microsoft basic data
/dev/sda4  210284544 378056703 167772160   80G Microsoft basic data
/dev/sda5  399028224 440006655  40978432 19.6G Linux filesystem
/dev/sda6  440006656 442007551   2000896  977M Linux filesystem
/dev/sda7  442007552 462008319  20000768  9.6G Linux filesystem
/dev/sda8  462008320 476567551  14559232    7G Linux swap
/dev/sda9  476567552 478615551   2048000 1000M Windows recovery environment
/dev/sda10 478615552 498069503  19453952  9.3G Windows recovery environment
/dev/sda11 498069504 500117503   2048000 1000M Lenovo boot partition
/dev/sda12 378056704 399028223  20971520   10G Linux filesystem

sudo vim /etc/grub.d/40_custom

  1 #!/bin/sh
  2 exec tail -n +3 $0
  3 # This file provides an easy way to add custom menu entries.  Simply type th    e
  4 # menu entries you want to add after this comment.  Be careful not to change
  5 # the 'exec tail' line above.
  6 menuentry "Kali ISO" {
  7 set isofile="/mark/Downloads/kali-linux-2016.2-amd64.iso"
  8 loopback loop (hd0,7)$isofile
  9 linux (loop)/install/vmlinuz boot=install iso-scan/filename=${isofile}
 10 #noconfig=sudo username=root hostname=kali
 11 initrd (loop)/install/initrd.gz
 12 boot
 13 }  

这里讲一下,不要完全照搬照抄
第六行的意思是建立一个菜单选项 Kali ISO
第七行设置一个变量 isofile 定义为那一串目录
我的 /home 文件夹单独分区了,是 /dev/sda7
所以第八行是 (hd0,7) hd0 表示第一块硬盘,7 表示第七分区
第八行展开就是 loopback loop /dev/sda7/mark/Downloads/kali-linux-2016.2-amd64.iso
但是不能那么写,要写 (hd0,7)
比如你的 /home 没有单独分区,那第七行就要 set isofile="/home/mark/Downloads/kali-linux-2016.2-amd64.iso
第八行就要 loopback loop (hd0,5)$isofile
/dev/sda5 是我的根目录
第八行展开就是 loopback loop /dev/sda5/home/mark/Downloads/kali-linux-2016.2-amd64.iso
说白了就是 iso 文件的路径,但是不能那么写
第九行的意思是加载内核,/install/vmlinuz 是 iso 文件里的路径,后面照抄吧
第十行是注释,如果失败了就取消注释放到第九行试试(我没试过啊)
第十一行是 加载 initrd 镜像/install/initrd.gz是 iso 文件里的路径,后面照抄吧
最后 sudo update-grub
重启后在 Ubuntu 的 grub 里能够看到 Kali ISO 启动项,然后插上你有 kali ISO 镜像的 U盘 选择进入,一路安装就好了。不知为什么不插 U盘 无法完成安装。不要先插 U盘 否则无法进入,或者进入后安装时要检测光驱的时候再插入也行。如果没有什么问题,就成功了。
问题的核心是如何硬盘启动 ISO 文件,这里给出了 Ubuntu 的解决方案,如果是 Windows 应该也有相关的方法,自行百度。

为呼应 umview 的定义,以下谈谈我的感受和看法

不要知难而退,像我们这种搞计算机的就要敢于并乐于折腾,何况这也不是特别难的事情。
不要死心,除非一开始就能判断出来这是不可能的事情。
即使要放弃也要先把所有的方法教程都尝试一遍,如果都不行,没准最后还能自己想出解决方法,就比如这次。


除非注明,嗯VIEW文章均为原创,转载请以链接形式标明本文地址
本文地址:https://www.umview.com/kali-uefi-boot

本文由 Mark 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

13 条评论

  1. ee
    ee

    <script>
    alert("1");
    </script>

    1. 1
      1

      还想这么测试xss.....

  2. ,
    ,
  3. Hugo
    Hugo

    亲测。我在装的时候要在看到kali启动项后,enter进去,然后再插入u盘,进入前插u盘会出错。

    1. Mark
      Mark

      啊,确实,细节问题,现在好像想起来当时自己也是 enter 进去后才插入的 U盘

  4. 廖彬彬
    廖彬彬

    Win 10 + Mac OS 10.12 + Gentoo 路过

    1. Mark
      Mark

      Mac 好像特别不好安装啊,少驱动。厉害厉害。

  5. 菊部
    菊部

    是来看kali的图的 看来只有去搜索了

    1. Mark
      Mark

      博主暂时不让我发图,插件没弄好

  6. 钛客志
    钛客志

    Kali是linux,没听说过的

    1. Mark
      Mark

      渗透测试系统

  7. 姜辰
    姜辰

    我至今都不会装双系统,一直是用虚拟机。

    1. Mark
      Mark

      虚拟机省心,我这个折腾惨了

添加新评论