U盘制作kali持久启动盘+文件存储
概述
希望制作一个可以存储文件、 kali持久启动的U盘。
一开始以为使用简单的工具就可以达成目标,
但是搜了很多文章,觉得实现方法很复杂,
然后开始学习工具背后的实现原理,了解了原理之后就觉得很简单了。
准备材料
硬件
U盘一个,
最好使用USB3.0的U盘,速度比较快。
可能用到的软件
-
Diskgenius
Windows下给磁盘分区的软件,免费版功能就够用了 -
一个Linux系统
会用到Linux系统下的dd命令和其他相关命令 -
一个kali的iso镜像
-
BOOTICE
-
win32Disk
参考链接
- Kali Linux Live | Kali Docs
https://docs.kali.org/category/downloading
kali官方文档,用来制作kali启动盘,但是制作完成后U盘就不能作为普通U盘存储文件了,全英文。
原理
-
常用的2种分区表:MBR与GPT区别
MBR(master boot record)
即主引导记录,有时也称主引导扇区。位于整个硬盘的 0 扇区( 硬盘的 0~62 即前 63 个扇区为保留扇区,目前只有 MBR 占用其中的第一个或前几个扇区 ),可以看作是硬盘的第一个扇区,通常只占用这一个扇区。 -
怎么查看自己的硬盘分区表
磁盘管理查看
桌面–>计算机图标–>右键–>管理–>磁盘管理–>选择一个磁盘(注意是磁盘不是分区)
–>右键–>属性–>鼠标左键点击“卷”–>查看“磁盘分区形式”
参考链接:Windows–如何查看硬盘分区表类型 - 叫我龙哥的博客 - ****博客
https://blog.****.net/ZuoWeiXiaoDuZuoZuo/article/details/87599032 -
系统启动流程
BIOS -> MBR -> DPT -> PBR-> 寻找根目录下 NTLDR(XP)/bootmgr(WIN7/Vista)/grldr(Grub)/btldr.mbr(BootLink) 等可用于引导的程序。 -
GRUB (简体中文) - ArchWiki
参考链接:
https://wiki.archlinux.org/index.php/GRUB_(简体中文)
GRUB 不支持 F2FS 文件系统。如果根目录分区是一个不支持的文件系统,那就需要为 /boot 单独分区,并使用一个支持的文件系统。
注意: 必须使用 fdisk 或者类似于它的工具来设置可启动标记,而不能用 Gparted 等工具,因为它们不会在 MBR 里面设置可启动标记。
一些 Intel 的 BIOS 要求至少有一个 MBR 方案下的可启动分区,导致 GPT 方案下的启动设置无效。
-
关闭kali引导菜单的beep声音
编辑/boot/grub/grub.cfg
注释掉下面两行:
insmode play
play 960 440 1 0 4 440 1
参考链接:kali linux 2017.1 boot menu beep
https://forums.kali.org/showthread.php?37280-kali-linux-2017-1-boot-menu-beep
目前只有1703版本(及以上)Windows 10才能正常识别多分区的U盘,其他低版本Windows只能识别U盘第一分区。
有的文件系统Windows无法识别,可以放到Linux系统下查看。
实验流程
先放上一张diskgenius的截图,
数据无价,谨慎操作,及时做好数据备份
-
使用diskgenius将U盘分为3个区
第一个分区用来作为普通U盘存储文件,文件系统任意,我设的是NTFS
第二个分区用来存放kali镜像,文件系统设为fat32,空间大小略大于镜像的大小
第三个分区用来实现kali持久化,文件系统设为ext3 -
将镜像解压的内容复制到第二个分区
修改grup.cfg -
设置U盘的MBR
可以使用dd命令
或者使用BOOTICE -
使用第3个分区实现kali持久化
其他
1.Unable to find a medium containing live file system
编辑grub.cfg。
在linux命令中添加apci = off
或者将U盘插到USB2.0的接口
参考链接:boot - Unable to find a medium containing live file system: USB ports shutdown during Ubuntu install - Ask Ubuntu
https://askubuntu.com/questions/1105203/unable-to-find-a-medium-containing-live-file-system-usb-ports-shutdown-during-u
最后
先写这么多,有时间再写的详细点。