开头
每次出去做安全评估或者临时帮人排查系统,最烦的就是环境不统一。今天在这台机器上装的工具,明天换台机器就全没了;有些时候需要在现场快速开一个测试环境,但现场的那台电脑又不是自己的,装一堆软件既不现实也不安全。所以我一直习惯用U盘带一个便携系统,插上就能用、拔了就走。这篇要聊的,就是怎样把Kali封装进一个U盘,并且给关键数据加上加密层,做成加密持久化U盘版KALI。所谓“持久化”,就是你在系统里做的修改、装的工具、写的脚本,重启之后不会丢;所谓“加密”,就是万一U盘掉了,别人也读不到你留在里面的数据。这套方案适合做安全测试的人、CTF玩家、隐私敏感用户,也适合任何想随身带一套干净Linux工作台的人。接下来我会把从选U盘、烧镜像、做分区、配LUKS加密、设置持久化引导,到最后验证效果的全过程,一步步拆开讲。
1. 加密持久化U盘的思路拆解
1.1 为什么不能直接用原版Live U盘
很多人第一反应是:Kali官网下个ISO,用工具烧到U盘里不就好了吗?确实能启动,但那就是一个Live系统,相当于每次开机都从一张只读光盘上启动。你在里面装了个工具、改了配置、存了文件,一重启全没了。这是因为Live模式把系统镜像只读挂载,所有运行时写入都放在内存临时文件系统里,内存一清空,数据就没了。
所以就有了“持久化”的概念:额外划分一块空间,把系统运行时的变化保存下来。原理很简单,Live系统启动以后,把根目录的变化通过overlay方式叠加到持久化分区上。你在系统里看到的一切,根目录下的写入操作,最终落盘到U盘的持久化区,重启之后能重新挂载回来。
但光有持久化还不够。如果这个U盘就是一块明文分区,那数据安全和没做一样。U盘这种物理介质太容易丢了,一旦丢了,别人把U盘插到自己电脑上,不用任何破解就能看到你整个持久化目录,你留在里面的报告、脚本、账号信息全都暴露。所以还要把持久化分区做成加密分区,也就是标题里说的“加密持久化”。加密层用LUKS来实现,这是Linux上最通用的磁盘加密标准,稳定、可靠、兼容性好。
1.2 方案对比:几种常见的Kali U盘玩法
在做加密持久化U盘之前,我先把市面上常见的几种玩法放在一起对比一下,方便你判断哪种适合自己。
| 方案 | 优点 | 缺点 | 适合场景 |
|---|---|---|---|
| 纯Live U盘 | 制作最快,启动简单 | 数据不保留 | 临时用一次,跑个工具就走 |
| 普通持久化U盘 | 数据可以保留,制作不算复杂 | 数据明文,丢了就泄露 | 自己日常使用,不涉及敏感数据 |
| 加密持久化U盘 | 数据保留且有LUKS加密,安全 | 制作步骤多,启动需输密码 | 安全测试、隐私敏感、多机迁移 |
| 直接全盘安装到U盘 | 拥有完整系统,能更新内核 | 对U盘寿命和性能要求高,制作慢 | 想长期当作独立工作系统的人 |
这三种方案我都试过。纯Live只适合应急,普通持久化适合随便折腾,但如果你要做安全测试,或者会在里面存报告和客户信息,那我强烈建议直接上加密持久化。别看多了几步操作,换来的是数据泄露风险大幅下降。而且加密持久化和普通持久化的日常使用体验基本没差别,只是开机时多一步输密码。
这里有个很多人混淆的点:加密持久化加密的是“持久化数据区”,并不是整个U盘都加密。Kali的系统文件本身还是公开的,这一点后面会专门讲。所以不要以为做了加密持久化,整个U盘就变成打不开的黑盒了。理解这个边界,才不会在实际使用里产生错误的安全预期。
2. 动手前需要准备的东西
2.1 U盘怎么选:别让硬件拖后腿
很多人第一次做U盘系统,随手拿了个几年前的USB 2.0小U盘,结果启动慢得离谱,装个包等半天,然后得出结论说U盘系统不好用。其实多数时候是U盘本身性能不行。
我个人建议,容量至少32GB起步。Kali的Live镜像虽然只有几个GB,但是持久化空间太小的话,装几个渗透工具和依赖库就满了。如果预算允许,64GB或128GB会更从容。接口上优先选USB 3.0或USB 3.1,读写速度快不少。这里说的速度不只影响写入系统那段过程,日常用的时候,文件操作、包安装、日志写入全部依赖U盘IO,速度差距非常直观。
更讲究一点的话,可以考虑用固态U盘,或者干脆用移动固态硬盘加一个USB转接盒。固态主控的随机读写性能和寿命都比普通U盘强很多,长期跑持久化系统更稳。普通U盘掉速问题很常见,写到后面越来越慢,有些质量差的还会掉盘。如果你打算把这个U盘当成主力便携工作站用,硬件上不建议太省。
顺带提醒一下,买U盘的时候别光看容量,还要看4K随机读写能力。Live系统持久化模式下,大量小文件读写非常密集,4K性能差的U盘会卡到你怀疑人生。我早期用过一个便宜U盘,跑apt update的时候CPU占用不高但界面卡到没法操作,就是4K性能太差导致的。
2.2 镜像与工具选择
软件方面需要准备Kali的Live镜像。注意选Live版,不要选Installer版。Live版本来就是为U盘启动设计的,自带一套完整的即用系统;Installer版是用来安装到硬盘的,你也可以装到U盘里,但那是另一套玩法,不在今天的范围内。
下载的时候看准架构,一般电脑都是amd64,也就是x86_64架构,选对应的Live镜像就行。我的建议是去官网的镜像列表下载,校验一下SHA256哈希值,防止镜像文件在传输过程中损坏。哈希校验这步很多人会跳过,但真遇到烧录后启动失败,排查起来会浪费更多时间。
烧录工具我用的是balenaEtcher,跨平台、界面简单、选镜像选U盘点Flash就行。在Linux底下也可以用dd命令,但dd对新手不太友好,一不留神设备号写错就可能把本地硬盘数据清空。所以这里统一用balenaEtcher,图形化操作,还会在写入完成后自动校验一遍,比较省心。
分区工具方面,推荐GParted,图形化界面能直观看到U盘的分区布局。命令行工具需要fdisk、parted、cryptsetup,这些在Kali Live环境里基本都自带,不用额外装。
2.3 环境准备与安全意识
制作加密持久化U盘,建议从刚烧录好的Kali Live系统启动后再操作。这样做的好处是:当前是干净环境,U盘上没有持久化分区被自动挂载,你后续对U盘的分区操作不会跟已有数据产生冲突或误挂载。
操作前还要确认一下:你需要在哪个系统里制作分区?我的做法是,先用balenaEtcher把Live镜像烧进目标U盘,然后这台电脑先重启,从U盘启动进入一个临时Kali环境,在这个环境里用终端工具完成剩余步骤。当然你也可以在Windows或其它Linux发行版里通过图形化分区工具和命令行去处理目标U盘,逻辑是一样的,但为了减少混乱,我强烈推荐直接启动U盘来制作U盘。
另外强调一下安全底线。本文涉及的全部技术,请只用于你本人拥有或已获得明确授权的设备。安全测试、隐私保护、应急响应,这些场景的前提都是合法授权。用这套东西去做未授权的扫描或渗透,就完全偏离了工具原本的意义,也是被法律明确禁止的行为。每个从业者都应该把这条底线刻在脑子里。
3. 手把手制作加密持久化U盘
3.1 第一步:把Live镜像刷入U盘
先把U盘插到电脑上,打开balenaEtcher,选择下载好的Kali Live ISO镜像,然后选择目标U盘,确认无误后点击Flash。
这里有几个细节要注意。第一,balenaEtcher会自动识别U盘,但有时电脑里插了多块移动硬盘,要再三确认选中的设备容量和型号是不是你的目标U盘。刷写过程会清空U盘全部数据,选错设备就是一场事故。第二,刷写过程中不要拔U盘,也不要让电脑休眠,等它完成校验再操作。第三,刷写完成后的U盘在Windows里可能只显示一个很小的EFI分区,剩下的大分区Windows不认,这是正常的,不要点“格式化磁盘”。如果你想确认U盘是否完好,直接重新插拔看系统是否识别即可。
烧录完成后,先别急着做持久化,建议直接用这个U盘启动一次,确认Live系统能正常进入。这一步的意义在于排除镜像损坏或U盘硬件问题。如果这一步就没法启动,后面做再多分区也没意义。我见过有人跳过这一步,做完持久化才发现根本启动不了,白白排查很久。
3.2 第二步:查看U盘设备名与分区布局
进入Kali Live系统后,打开终端,先执行lsblk看一下磁盘布局。例如:
lsblk正常情况下你会看到类似这样的输出:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 238.5G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi ├─sda2 8:2 0 238G 0 part / sdb 8:16 1 57.9G 0 disk ├─sdb1 8:17 1 512M 0 part └─sdb2 8:18 1 4.4G 0 part这里的sda是本机硬盘,sdb才是你的U盘。判断依据是大小和RM列,RM为1表示可移动设备。这个例子中,sdb1是EFI分区,sdb2是Live系统的只读镜像分区,后面那几十GB空闲空间还没有建分区。
注意,设备名在不同机器上不一样,可能是sdc、sdd甚至nvme0n1的组合。千万不要凭经验拍脑袋认定哪个盘符是U盘,一定要用lsblk确认。这一步错了,后面所有命令都可能对着硬盘执行,后果不堪设想。
3.3 第三步:创建持久化分区
确认好设备名后,我用GParted来创建分区。终端里执行:
sudo gparted在GParted窗口右上角的下拉菜单里选择目标U盘设备,你会看到一块未分配的空间。这是烧录Live镜像后剩余的空间,也就是我们要做持久化分区的区域。
在未分配空间上右键,选择“新建”,分区大小默认就是全部未分配空间,文件系统可以先选ext4,然后在分区上右键“应用所有操作”完成创建。创建成功后,GParted会自动分配一个分区号,比如/dev/sdb3。注意,分区号不一定是3,要根据GParted界面里显示的实际分区号来记,比如有时候会是/dev/sdc3、/dev/sdd3。
如果用命令行而不是GParted,也可以这样创建,效果相同:
sudo parted /dev/sdb mkpart primary ext4 <起始位置> <结束位置> sudo mkfs.ext4 /dev/sdb3但我更推荐GParted,因为它能直观显示分区是否创建成功,减少敲错命令的概率。
3.4 第四步:用LUKS加密该分区
有了分区以后,下一步是对这个分区做LUKS加密。
先执行:
sudo cryptsetup luksFormat /dev/sdb3注意,/dev/sdb3要替换成你实际的分区号。执行后终端会提示你输入YES确认,然后设置LUKS密码。这个密码非常重要,它将来在你每次启动U盘系统、需要解密持久化分区时要输入。如果忘了,没有任何找回手段,只能把U盘重新做一遍,里面所有持久化数据全部丢失。
密码建议设置得复杂一点,至少12位以上,混合大小写、数字和符号。别用手机号、生日这类可猜测信息。有人觉得每次开机输密码麻烦,随便设个6位数字,这就等于给加密打了个折扣。暴力破解的成本会随着密码强度显著上升,这是最经济的安全投入。
如果遇到老版本cryptsetup提示LUKS2兼容性问题,也可以用LUKS1:
sudo cryptsetup luksFormat --type luks1 /dev/sdb3具体用哪个版本看你主板和Kali Live的兼容情况,默认的LUKS2一般都能用。如果不确定,先按默认来,启动阶段有问题再改。
加密完成后,把加密分区映射到系统里:
sudo cryptsetup luksOpen /dev/sdb3 kali_persist这会在/dev/mapper/下生成一个名为kali_persist的逻辑设备。后面所有对持久化分区的读写操作都针对这个映射设备,而不是直接操作/dev/sdb3。这里相当于给加密分区动态加了一把锁,打开之后才有一个可读写的“门”。
3.5 第五步:格式化并打上persistence标签
现在对映射出来的逻辑设备做文件系统格式化:
sudo mkfs.ext4 -L persistence /dev/mapper/kali_persist-L persistence是关键。这个标签必须命名为persistence,小写,不能写错。Live系统的启动脚本会通过这个标签来自动定位持久化分区。如果标签写错了,系统启动了但持久化不会生效,很难排查。
格式化完成后,挂载这个逻辑设备:
sudo mkdir -p /mnt/kali_persist sudo mount /dev/mapper/kali_persist /mnt/kali_persist进入挂载目录,创建持久化配置文件:
cd /mnt/kali_persist echo "/ union" > persistence.conf解释一下这个persistence.conf。它的格式是<挂载点> <存储方式>。这里的含义是“整个根目录用联合挂载方式持久化”。也就是说,你在根目录里做的所有写入,包括安装的软件、修改的系统配置、创建的普通用户文件,都会持久化保存。如果只想持久化某个目录,也可以改成/home ext4之类,但日常使用还是建议整个根目录持久化,省心。
很多教程写的是/+ ext4,其实两种写法都能生效,因为format字符串里的空白会被忽略,/和union都表示overlay类型存储。我习惯用/ union,语义更清晰。
确认文件内容没问题后,安全卸载:
sudo umount /mnt/kali_persist sudo cryptsetup luksClose kali_persistluksClose这步不要省。它会把当前解密的映射设备关闭,相当于重新锁上加密分区。如果你漏了这步,系统重启后分区可能还处于解锁状态,不仅影响再次启动时的正常流程,也降低了安全性。
3.6 第六步:启动时如何加载加密持久化
到这一步,持久化分区已经具备“加密+persistence标签”的属性。但还有一个关键问题需要处理:系统启动时怎么让Live脚本知道要解密这个分区、并加载它作为持久化层?
Kali的Live系统基于Debian的live-boot框架。启动时传入persistence参数,live-boot会去扫描是否存在标签为persistence的分区。如果扫描到的是一个LUKS加密分区,live-boot会在启动阶段弹出密码提示框,让你输入LUKS密码,然后解密并挂载。
具体操作是这样:U盘启动进入GRUB菜单后,移动到默认启动项上,按e键进入编辑模式。找到以linux开头的那一行,一般在行尾已经有quiet、splash之类的参数。在行尾追加一个空格,然后输入persistence。
修改完成后按Ctrl+X或F10启动。系统启动过程中会在某个环节停下来,显示类似等待输入密码的界面,此时输入你在加密时设置的LUKS密码,回车继续。
需要说明的是,部分Kali版本的启动菜单里直接就带有Live USB Persistence (encrypted)这类条目,如果看到就省事多了,直接选它即可,不用再手动改参数。不同版本菜单样式略有差异,原理都是一样的。如果你添加了persistence后启动过程没提示输密码,大概率是live-boot没识别到加密持久化,这种情况可以再尝试追加一个参数persistence-encryption=luks,它会让live-boot明确按LUKS加密持久化来寻找和调用解密流程。
3.7 第七步:验证持久化是否真的生效
启动成功后,第一件事不是急着用,而是验证持久化到底有没有生效。
最简单的验证方式:在桌面根目录创建一个测试文件,例如:
touch /test-abc echo "hello" > /test-abc然后正常关机,拔掉U盘,再重新插上并启动。登录后看这个文件是否还在。如果还在,说明持久化生效了。如果不见了,说明持久化没挂载成功,得回头检查。
也可以用磁盘空间判断:
df -h /如果根目录的可用大小接近你的持久化分区大小,说明overlay挂载成功;如果根目录是个几百MB或1GB左右的小分区,那就说明当前还在纯Live模式,持久化层没有加载。
我实际测试下来,加密持久化生效的标志通常是这样:启动过程中会短暂停在一个黑屏或者日志输出界面等待输入密码,输入正确后继续启动。如果你从头到尾没看到任何输入密码的提示,大概率是引导参数没生效或者persistence标签不对。
4. 启动挂载链路与安全边界
4.1 一次加密启动,系统到底做了什么
理解了启动链路,排查问题会容易很多。整个流程大致是这样:
- U盘的EFI引导器启动GRUB。
- GRUB加载Kali Live的内核与initramfs。
- initramfs阶段,live-boot脚本检查引导参数里有没有
persistence。 - 如果有,脚本开始扫描磁盘,寻找label为
persistence的分区。 - 找到后发现该分区是LUKS加密格式,于是调用cryptsetup工具,弹密码框等待输入。
- 密码正确后,解密出ext4文件系统并挂载到
/run/live/overlay之类的临时挂载点。 - 系统正式启动后,把这个加密分区作为overlay的上层目录,与只读的Live系统目录叠加成最终根文件系统。
所以,这七个环节里任何一个断了,都会导致持久化不生效或启动异常。最常见的断点有三个:GRUB参数没加成功、label标签不对、LUKS密码输入环节被跳过或出错。
这里还有一个细节值得注意:Live系统的系统文件本身是只读挂载的,所有的写入都会走overlay写到持久化分区。所以只要持久化分区数据是加密的,你在使用过程中产生的新数据、修改配置、包管理器的缓存和数据库,都会落在这个加密分区里。这不光保护了“文档”,也保护了系统运行时产生的痕迹,对整个工作环境的隐私保护比较完整。
4.2 数据安全边界:它到底能防什么
很多人可能会误以为“U盘做了加密,插到任何电脑上别人都无法读取任何内容”。不对。准确地说,无法读取的是持久化数据。Kali Live系统镜像本身,包括内核、基础系统文件,仍然是明文可见的。谁拿到你的U盘,插到电脑上,还是可以看到几个分区,其中一个是Windows能识别的EFI分区,另一个装着Live系统文件。加密的只有持久化分区。
这个边界有助于你决定哪些数据适合放在这个U盘里。比如,系统自带的工具、公开的脚本、不敏感的配置,放了也就放了;但你自己生成的报告、采集的数据、客户信息、私钥明文,这些只能放在加密持久化区里,也就是默认的根目录写入路径。
另外要明白,LUKS加密保护的是“静态数据”。U盘拔下来、关机断电之后,持久化数据以密文形式存储,这时候防的是物理丢失、设备被窃取。但在U盘正在使用、已经解锁的状态下,系统保护就退回到常规操作系统安全范畴了。所以用完建议锁屏或关机,特别是在公共场合、共享电脑环境下,不要因为“加密了”就觉得可以随便离开座位。
从实际操作角度看,这个加密方案能防的场景包括:U盘丢失后被直接读取、送修或转卖时数据不被还原、设备被临时扣走时无法立即翻看内容。防不了的场景包括:你在已解锁状态下别人通过你屏幕偷看、你的登录密码被键盘记录器截获、你主动把解密后的数据拷到明文U盘里再弄丢。这些属于个人操作习惯的问题,再强的加密也兜不住。
5. 常见问题与排查实录
5.1 高频问题速查表
我把制作和使用加密持久化U盘过程中经常遇到的问题整理成了一个速查表,方便你按图索骥。
| 问题现象 | 可能原因 | 处理方法 |
|---|---|---|
| 启动后没有要求输密码 | GRUB参数没有persistence | 按e进入编辑,确认在linux行尾追加了persistence |
| 加了参数仍不提示输密码 | 分区label不是persistence | 重新执行e2label设置label为persistence |
| 输入密码后提示解密失败 | 密码记错或分区损坏 | 重新输入确认,仍失败则只能重建分区 |
| 持久化没有生效,数据重启丢失 | persistence.conf缺失或路径不对 | 检查/mnt/kali_persist/persistence.conf内容是否为/ union |
| Windows提示U盘需要格式化 | Windows不认识ext4/LUKS分区 | 不要点格式化,这是正常现象 |
| 启动卡在grub或黑屏 | Secure Boot未关闭或引导模式不匹配 | 关闭Secure Boot,尝试UEFI/Legacy切换 |
| 系统运行一段时间后越来越卡 | U盘4K性能差或空间不足 | 换固态U盘,或用GParted清理分区膨胀数据 |
这张表覆盖了我遇到过的绝大多数问题。如果以后你碰到表里没有的新情况,优先做两件事:一是重新确认分区label,二是重新确认GRUB参数。我复盘这些年的制作和排障过程,至少有一半问题出在这两个点上。
5.2 制作过程中容易踩的坑
分区和格式化操作指向错误设备,是最常见也最致命的问题。cryptsetup luksFormat /dev/sdb3写成了/dev/sda3,那你的硬盘数据瞬间就没了。所以我反复强调先用lsblk看容量和可移除标志,确认目标盘。就算你很有经验,我也建议每次操作前念一遍设备名,形成肌肉记忆。
还有一个容易被忽略的坑:使用GParted创建分区时,文件系统如果提前选了ext4,后续luksFormat会覆盖整个分区,没问题。但注意不要在GParted里直接对创建好的分区做“加密”操作后又在同一个环节格式化,那样可能会把加密头覆盖掉。我的建议是GParted只负责把分区建出来,加密和格式化全部交给命令行工具,步骤更清晰。
另外,persistence.conf文件里面不要有多余的空格或不可见字符。有时候从教程网页复制内容,会带上一些看不见的换行符或全角空格,导致live-boot解析失败。建议直接用cat查看文件内容,如果显示只有一行/ union,就没问题。
LUKS密码忘掉这件事,遇到的人不少。加密分区没有“找回密码”功能,没有后门。一旦忘记,唯一出路是重置整个U盘,所有持久化数据归零。所以设置密码后,我建议在本地密码管理器或者加密笔记里留一份副本,别只凭脑子记。这不算降低安全,因为密码管理器本身也有主密码保护。
还有一个体验方面的问题:加密持久化U盘用了几个月后,可能遇到“根目录明明还剩很多空间,系统却说磁盘已满”。这是因为live-boot的overlay机制本身会有一些临时空间占用,或者持久化分区里的lost+found、日志文件、包缓存堆积。解决办法是定期清理包缓存:
sudo apt clean然后再用du排查大目录。这种问题不属于故障,更像是长时间使用后的运维负担,但提前知道处理方法能少走弯路。
5.3 引导兼容性问题处理笔记
U盘系统在不同电脑上启动的兼容性问题很常见。同一个U盘,在一台笔记本上正常进桌面,换一台台式机就黑屏或者直接跳过引导,这不一定是你制作错了,更多时候是目标机器的固件配置问题。
优先检查Secure Boot。Kali Live使用了自己的引导链,不是所有主板都认。关掉Secure Boot之后大部分情况都能解决。其次是引导模式,有的机器默认只开UEFI,有的默认Legacy,你的U盘是混合ISO制作出来的,一般兼容两种模式,但有些主板在某种模式下可能识别不到。这时候到机器的BIOS/Boot菜单里,看能不能看到U盘设备,有就手动选择,没有就切换引导模式再试。
我也遇到过有些电脑USB口供电不足,特别是使用移动硬盘盒时,U盘和硬盘盒抢电会导致启动过程中掉盘。解决办法是换一个供电稳定的USB口,优先插主机后面的直连口,不要通过USB HUB转接。
这里有个经验:如果你打算在不同电脑之间频繁使用,制作完成后一定要至少在一台真机上完整跑一遍加密启动和持久化验证流程。只用虚拟机测试是不够的,虚拟机的USB直通和真实主板的固件交互存在差异,在虚拟机里能启动不代表在所有品牌机器上都能启动。
6. 一些扩展用法和优化建议
6.1 修改加密密码
如果觉得初始密码不够强,或者怀疑密码泄露,可以用命令修改:
sudo cryptsetup luksChangeKey /dev/sdb3执行后先输入旧密码,再设置新密码。这个操作不影响持久化分区里的数据,只修改加密密钥,不用重新格式化。
如果还想更灵活,LUKS支持多个密钥槽。也就是说,可以同时设置两个密码,其中一个作为备用,另一个作为日常使用。这样即使一个密码泄露,还能用另一个解锁。管理密钥槽的命令是cryptsetup luksAddKey和cryptsetup luksRemoveKey,操作都有交互式提示,跟着走就行。
但要注意,别把所有密钥槽都加满还设成同一个密码,那就没意义了。我的习惯是日常使用密码加一个备用恢复密码,备用密码藏起来,只在紧急时用。
6.2 备份策略
加密U盘最怕的不是故障,而是加密分区损坏加上忘记密码,双重打击直接让数据彻底蒸发。所以有条件的话,定期备份持久化分区内容。
备份方式有两种思路。第一种是直接备份文件:启动U盘后挂载持久化分区,把里面需要的重要目录拷到另一个加密容器或移动硬盘里。第二种是备份整个LUKS分区镜像:在系统未挂载该加密分区时,用dd把/dev/sdb3整个分区导出来。这样备份的好处是能保留完整的加密结构和文件系统状态,恢复时直接写回U盘。缺点是备份文件体积等于整个持久化分区大小,不管里面实际用了多少数据。
我一般两种结合:日常用第一种,做关键节点备份时用第二种。因为dd备份对于超大分区来说比较耗时,不适合频繁执行。
6.3 让U盘系统更好用的小细节
持久化生效后,可以在系统里固定一些个性化设置。比如键盘布局、代理配置、终端配色、常用工具快捷键,这些都会保存在持久化分区里,下次启动自动恢复。
软件安装上,因为持久化的存在,你可以放心用apt install装工具,不必担心重启后消失。要清理时用apt remove,同样持久化。
还有一点,Live系统的内核版本会随Kali官方发布更新,但U盘里的Live系统是完整的发行版,不是精简版本,所以apt update && apt upgrade是能正常工作的。但升级前最好保证U盘电量充足或电脑插电运行,不要在升级过程中断电,否则可能损坏文件系统。真实遇到的损坏事件里,很大比例都是升级中途断电或强行拔U盘引起的。
写在操作体验之后
做了这么多次U盘系统,个人体会最深的一点是:加密和便携是可以兼得的,只要你愿意在制作阶段多花十几分钟。早期我图省事只做普通持久化,后来有一次U盘落在外头,虽然最终没造成实际损失,但那种后怕让我彻底改掉了偷懒的习惯。如今我手边这个加密持久化U盘,已经跟了我大半年,装满了工具和常用脚本,多台机器即插即用,密码早就成了肌肉记忆。如果你也经常在不同电脑之间切换工作环境,又对数据安全有点执念,照这套流程做出来的U盘,大概率不会让你失望。最后再分享一个小技巧:开机输入LUKS密码后如果发现某些功能异常,优先重启进入默认启动项,确认是否真的加上了persistence参数,很多时候只是GRUB参数没有保存,并不是系统坏了。