打造Kali Linux+WinPE+文件储存 多系统启动自定义U盘
不甘于拿两个U盘(WinPE+Kali Linux),便想到了制作多启动U盘。实现多系统合一的U盘,方便我们工作的同时也不忘享受自定义的过程。有说得不对或者不妥的地方还请大佬们指出!思路明确,要打造一个多系统启动的U盘,首先要明确计算机开机后引导的过程。(这里踩了很多坑走了很多弯路)系统启动时的顺序为:BIOS->MBR->DPT->PBR->寻找根目录下可用于引导的程序。U盘看作是一个硬盘。MBR即是位于磁盘最前边的一段引导代码。DPT是这个硬盘的分区表。MBR的引导代码和DPT分区表一起记录在硬盘最前端的主引导扇区,以AA55为结束标志。PBR可以理解为分区最前边的一段引导代码。当系统启动时先由BIOS控制启动顺序,即设置U盘为第一启动项。选择U盘启动后,计算机会读取U盘前端的MBR扇区,让MBR中的引导程序指引下一步动作。(硬盘同理)MBR的引导程序具有代表性的即是主分区单系统,还有就是大白菜、U大师这一类自启动U盘。而涉及到多分区多系统的硬盘(U盘)则会用到PBR。MBR的引导程序向计算机展示分区表后,让计算机根据分区表找到分区并开始读取前端PBR引导。PBR引导这个分区下的系统内核开始启动系统,或者加载ISO文件写入内存。为了达到我们的目的,需要充分利用MBR和PBR。由于WinPE通常用于装系统、分区等维护工作,我们让其加载ISO镜像入内存,不用实时更新。而Kali则需要修改随时保存,Live方式的运行已经无法满足需求。总而言之,我们的思路是制作一个存在MBR的菜单,用来引导加载一个分区里的ISO文件或是另一个分区里的Kali。用户通过菜单选择Kali后,引导至指定分区的PBR,从而启动该分区下的Kali。我们需要使用的工具有:Bootice(用于安装MBR引导)、EasyBCD(用于配置与调整启动配置数据,适用于硬盘多系统的引导,例如Win10+Linux,UEFI启动的用EasyUEFI)以及FbinstTool(用于读取大白菜、U大师这样的隐藏分区,从而修改用它们做出来的自启U盘的菜单)。以上这几个软件非常实用,但在本次操作中我们用不到。下面让我们开始制作多系统启动U盘。
EasyBCD: 用来配置与调整启动配置数据。此方法可以用在硬盘多系统的引导上,例如Win10+Linux(UEFI启动的用EasyUEFI)。
FbinstTool: 这个工具可以读取大白菜、U大师这样的隐藏分区,从而修改用它们做出来的自启U盘的菜单。
以上这几个软件非常实用,但是在本次操作中我们用不到。下面我们开始制作多系统启动U盘。
一、U盘分区
准备一个U盘,我使用的是USB3.0的32G。使用DiskGenius将U盘分区都删除,然后开始建立新分区。分区方案如下:
- 主分区1G用来储存WinPE的ISO文件,格式为NTFS(其实可以和第二个分区合并,这么做方便理解也避免出错)。
- 其余空间建立扩展分区。
- 第一个逻辑分区(以下称为第二分区)分配8G用来作普通U盘,即用来装文件的。空间可以多分配一些,保证Kali有足够的空间。
- 剩下的空闲空间用来装Kali。不需要再建立分区,因为安装时会删除原有分区。
完成分区后进行格式化,然后退出。
二、安装Kali Linux
安装方法参考了博主的文章。
- 首先安装VMware,在服务里开启以"VM"开头的服务,避免后续操作出现错误。
- 准备好Kali的ISO文件,我使用的是"kali-linux-2017.2-amd64.iso"。
- 打开VMware,选择新建虚拟机,选项可以选择默认。
- 安装来源选择第二项,然后浏览Kali的ISO镜像文件。这里可能会提示无法检测操作系统,不用担心,选择"Linux Debian 8.0x 64位"即可。
- 根据情况调整内存大小,一般1-2G左右即可。
- 创建一个20G的虚拟硬盘,选择默认选项。
- 新建好虚拟机后先别急着打开,先进入虚拟机设置,调整USB控制器里的接口,如果使用USB3.0的U盘,一定要将接口调整为USB3.0,USB2.0同理。
- 将U盘插入电脑。
- 开启虚拟机,进入Kali的引导界面。
- 选择"Graphical Install"图像化安装。
- 选择语言,中文或英文都可以(博主前辈说light版一定要选择英文,因为light版没有自带中文字体,会有乱码)。
- 接下来按照默认选项一路回车,等待安装完成。如果遇到问题,可以参考原博主的文章进行排查。
- 到了磁盘分区这一步一定要注意,务必根据设备空间选择U盘,而不是选择虚拟机的虚拟硬盘。因为我们已经提前分好了区,所以要在分区向导里选择第一项使用磁盘的空闲空间。安装程序会将之前的空闲空间分为两个区,一个用来装Kali系统,一个是Linux的swap分区,这两个分区Windows是读不出来的。在这里要记录一下各个分区的名字,后续装Kali的引导时需要填写正确。比如用来装PE ISO镜像的第一分区是
/dev/sdb1
,第二分区8G装文件的是/dev/sdb5
,/dev
后面的sda
或sdb
是设备序号,顺序是a>b>c>d这样,后面的数字对应分区。选择最后一项结束修改并写入磁盘,然后开始进行Kali的安装。这个过程需要大约半小时的时间。 - 安装完成后,配置网络镜像,默认选项即可,如果出错也可以先跳过。安装完成后,进入Kali手动配置源:
/etc/apt/sources.list
。重要的是,当询问是否将grub启动引导安装在主引导记录(MBR)时,一定要选择"否"。选择手动选择安装grub,填写手动安装grub的位置。这里我们选择8G储存文件的第二分区,不选第一分区是因为它和MBR靠在一起,可能会出问题。而后面安装Kali的地方最好别动。在输入框中输入/dev/sdb5
,然后回车开始安装grub。安装完成后,等待安装进程结束,虚拟机将会重启,此时可能会找不到操作系统,关闭虚拟机即可。至此,U盘制作完毕。Windows可能会提示格式化U盘,不要格式化,它只是无法识别而已。此时,通过BIOS设置U盘为启动项,就可以进入Kali了(引导进Kali期间可能会遇到两个问题,接下来会提到)。
三、制作自定义菜单引导
我们将Kali的grub安装在第二分区的PBR上,目的是为了将MBR空出来。如果安装在MBR上,接下来的配置会覆盖MBR,导致grub被覆盖,Kali也无法启动。
现在我们需要使用一个软件,XORBOOT。
- 打开XORBOOT,创建一个新的配置。
- 全局设置方面都是关于美化的,可以根据个人喜好进行调整。
- 首先设置WinPE的引导。请事先将需要引导的ISO文件放到U盘的第一分区或第二分区,并将文件名改为简单一点的名字。
- 在右侧菜单中选择第一个选项,启动方式选择"从指定文件启动",然后在下面输入ISO文件的文件名,启动系统类型选择"光盘映像"。
- 勾选"启动时激活主分区",起个名字美化一下,然后编辑下一个。我这里设置了3个PE的启动。
- 接下来是Kali的菜单。与之前不同的是,这里的启动方式选择"从分区的引导扇区启动",也就是PBR。
- 磁盘号与分区号要指定grub安装的分区,点击参考会有提示。我们这里选择8G装grub的分区,格式为NTFS。
- 启动系统类型选择PBR,同样勾选"启动时激活主分区"。
- 设置一个酷炫的Kali Linux引导菜单。
- 完善接下来的菜单,比如重启计算机、关闭计算机等。
- 配置完成后点击"部署",选择部署到硬盘MBR,选择U盘,然后完成部署。
- 至此,一个集合了Win10PE、Win8PE、Win03PE、Kali Linux和普通U盘的超级U盘制作完成。
- 启动计算机时,在BIOS中设置U盘为启动项,然后就能看到XORBOOT设置的菜单了。选择PE项就会将ISO加载进内存,开启PE。启动完成后可以拔出U盘,因为ISO已经加载进内存,不再需要U盘的支持。
- 当我们选择Kali Linux这一项后,就可以看到grub引导界面了。选择第一项或等待一段时间后,就会进入Kali系统。
- 然而,问题出现了。
四、进入Kali Linux问题修复
漂亮的grub蓝色界面消失后,迎来的是黑白字体类似DOS的界面,结尾有
(initramfs)
,可以输入命令。 这是因为grub的引导设备丢失,我们需要修改grub。首先在这个界面输入blkid
,回车后会显示当前计算机的所有硬盘设备和分区情况。找到ext4这一项,记录它对应的分区名。比如我这里是/dev/sdc5
。记录好后,按下Ctrl+Alt+Del
重启电脑。 重复刚才的菜单选择,进入grub后按下E
进入编辑状态。将光标移动到quiet
那一行,也就是Linux那一行,将root=/dev/sdb5 ro
改成之前记录的分区名。我这里将其改成了root=/dev/sdc5 rw,ro
。将ro
改成了rw,ro
,关于只读和读写的设置,实际上不改也能进入系统。 修改完成后按下F10
重新引导启动,稍等片刻就能进入Kali的登录界面了。如果顺利进入Kali,请不要忘记在终端输入update-grub
更新grub,否则每次启动都需要修改grub才能进入系统。输入密码后卡死,类似灰屏,无法进入系统。经过查阅资料得知,这是双显卡驱动问题,需要禁用独立显卡,使用集显进入Kali。 解决方法如下: 进入grub编辑界面,即第一点修改路径的界面。 将光标移动到同一行,即Linux那一行,在
quiet
后面加上nouveau.modeset=0
。 注意检查之前的路径是否正确。上一步的修改不会保存,因为修改grub只会保存引导一次,除非进入系统并更新了grub。 修改完路径后按下F10
开始引导。现在输入密码后就可以顺利进入Kali了。 同样,先使用update-grub
更新grub,然后通过添加黑名单的方式永久禁用独显。
附录:
更新源:安装中文输入法
更新源: Kali默认的源是官网的,比较慢,国内有很多比较快的源,如中科大、163等。
命令:leafpad /etc/apt/sources.list
清华大学:
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
Kali官方源:
deb http://http.kali.org/kali kali-rolling main non-free contrib
中科大的源:
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb http://mirrors.ustc.edu.cn/kali kali-rolling main contrib non-free
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main contrib non-free
deb http://mirrors.ustc.edu.cn/kali kali-current/updates main contrib non-free
deb-src http://mirrors.ustc.edu.cn/kali kali-current/updates main contrib non-free
阿里云源:
deb http://mirrors.aliyun.com/kali sana main non-free contrib
deb http://mirrors.aliyun.com/kali sana/updates main contrib non-free
deb-src http://mirrors.aliyun.com/kali sana/updates main contrib non-free
增加源后保存,然后执行apt-get update
即可。
安装中文输入法: 默认是英文输入法,要安装搜狗输入法,请参考以下步骤:
问题修复第一点以及附录部分参照博主。
问题修复第二点参照博主。