简介:这份 Kali Linux 安装教程 PDF 面向刚接触渗透测试与安全运维的初学者、以及需要在虚拟机或裸机上搭建实验环境的开发与运维人员,系统讲解从准备到安装完成的完整流程,帮助读者在单系统、加密磁盘或双引导等场景下少走弯路。压缩包内为 1 个 PDF 文件,约 2.07MB,篇幅紧凑便于离线阅读与随时查阅。教程从硬件与平台要求讲起,说明 amd64 与 i386 镜像的选择、PAE 内核与内存磁盘空间的配置建议;随后梳理下载镜像、制作 DVD 或 USB 启动介质、备份数据、BIOS/UEFI 启动顺序与关闭安全引导等前置步骤。正文按引导界面、语言与键盘布局、网络探测与主机名、用户账户、时区、磁盘分区方案逐步展开,并重点介绍引导式整盘加密的 LVM 全盘加密(FDE)选项,以及代理设置、元包选择、GRUB 安装和重启后的系统定制,附有 DHCP、多网卡等异常情况的处理提示。已有 833 人学习,适合希望快速完成环境搭建并理解各安装选项含义的读者对照操作。
1. Kali Linux 安装卡住的人,多半栽在装之前
某开发者把一份 Kali Linux 安装教程.pdf 翻了三遍,还是卡在分区确认那一屏不敢点继续;另一位装完重启,屏幕直接黑了,以为是镜像损坏,连着重下了两次。这两件事跟 Kali Linux 安装器本身关系都不大——图形安装器跑完也就十几分钟,真正决定成败的是装之前的几个选择:跑虚拟机还是裸机、磁盘怎么划分、装完第一件事做什么。这篇内容就按这个顺序走,先把安装形态和资源参数定下来,再给一套能照着敲的虚拟机最小链路,然后是物理机与双系统的分区和引导,最后把几个高频问题单独拿出来讲现象、原因和处理办法。适合想搭一套长期可用测试环境的人;只想看看界面长什么样,Live 模式启动就够了,不必安装。
2. 镜像与安装形态选型:SHA256 校验、写盘与虚拟机参数怎么定
镜像拿到手到系统能启动,中间隔着一串容易被跳过的动作。跳过校验、跳过 Live 试跑、跳过形态选择,最后都会在安装器跑到一半或者装完之后以别的方式找回来。这一章把这三步拆开讲清楚,参数给到可以直接改数字的程度。
2.1 拿到 ISO 先做两件事:SHA256 校验与 Live 试跑
镜像文件名里通常带installer或live字样,这是两个不同用途的东西。installer是完整安装镜像,装完系统落在硬盘上;live是免安装的运行镜像,改动重启即失效。新手最容易犯的错就是拿 live 镜像去装,装完以为成功了,重启回到原样。选 installer 版本,这是前提。
下载完成后第一件事是校验,不是解压也不是写盘。镜像在传输过程中损坏的概率不低,尤其是网络不稳定的时候,损坏的镜像写进 U 盘后表现往往是安装器跑到某个百分比卡死,报错信息还指向别的地方。
# Linux 下校验,输出与镜像站点公布的 SHA256 逐字符比对 sha256sum kali-linux-*-installer-amd64.iso # 只比对前几位没有意义,必须完整比对 64 位十六进制串# Windows PowerShell 下等价操作 Get-FileHash .\kali-linux-*-installer-amd64.iso -Algorithm SHA256 | Format-List# macOS 下 shasum -a 256 kali-linux-*-installer-amd64.iso三个平台的命令逻辑一样:读全文件算摘要,和发布页给的值比对。不一致就重下,别想着“可能只是某个字节的问题”。校验通过之后,如果手头有闲置机器或者虚拟机,建议先用 live 模式跑一次,目的不是体验桌面,而是提前确认三件事:网卡有没有驱动、显卡能不能正常出画面、USB 设备能不能识别。
# Live 桌面打开终端,三条命令摸清硬件底细 rfkill list # 看无线设备是否被软/硬开关禁用 ip -br a # 看有没有拿到 IPv4 地址,无线是否出现 wlan0 lspci -k | grep -A3 -i 'net\|vga' # 看网卡和显卡加载的是哪个内核模块rfkill list输出里出现Soft blocked: yes,说明是系统层面的开关关掉了,rfkill unblock all能解;出现Hard blocked: yes,那是机身物理开关或者 BIOS 里的无线禁用,得去硬件层解决。lspci -k里Kernel driver in use后面为空,说明这个设备当前没有驱动,装完系统后大概率还是没驱动,得提前想好补救方案。这三条命令花不了两分钟,能省掉后面几小时的排查。
2.2 三种落地形态的边界:虚拟机、双系统、裸机怎么选
这是整个安装流程里最该花时间的一步,也是最容易被跳过的一步。三种形态没有优劣,只有适配场景的差别。
| 维度 | 虚拟机 | 双系统 | 裸机单系统 |
|---|---|---|---|
| 隔离性 | 高,宿主不受影响 | 中,共用引导和磁盘 | 低,全盘归它 |
| 硬件直访 | 需 USB 直通,无线网卡受限 | 完整 | 完整 |
| 快照回滚 | 秒级 | 需额外备份方案 | 依赖外部备份 |
| 磁盘占用 | 按需增长,可压缩 | 固定切分 | 整盘 |
| 误操作影响面 | 仅虚拟机 | 可能波及另一系统分区 | 整机 |
| 恢复成本 | 删掉重建 | 需修复引导或重装 | 重装 |
日常绝大多数场景,虚拟机就够了。装软件、跑脚本、学命令、验证配置,虚拟机给到的体验和裸机差别很小,而快照带来的容错是裸机给不了的。需要直接访问物理无线网卡、外接 USB 设备、或者对 GPU 有实际要求时,才考虑裸机。双系统夹在中间,它的代价不在安装那一步,而在后续:每次切系统要重启、磁盘空间是硬切分、一次引导损坏可能两个系统都进不去。如果只是偶尔用一次,双系统带来的麻烦往往超过它省下的那点性能。
我的习惯是先虚拟机跑两周,确认这套环境确实天天用得上,再考虑要不要迁到物理机。迁的时候也建议保留虚拟机作为备份,直到物理机稳定运行一个月。
2.3 虚拟机资源参数:内存、CPU、磁盘、网络模式怎么给
虚拟机性能不够,很多时候不是宿主机不行,是参数给得不合理。下面这张表是我一般会用的起步配置,跑图形桌面和常规工具足够,后续按实际负载调。
| 参数 | 建议值 | 说明 |
|---|---|---|
| 内存 | 4096 MB 起,8 GB 更稳 | 低于 2 GB 图形桌面会明显卡顿 |
| CPU 核心 | 2~4 核 | 不超过宿主物理核数的一半 |
| 显存 | 128 MB | 低于 64 MB 高分屏容易花屏 |
| 磁盘 | 60~80 GB,动态分配 | 别用固定大小,扩容麻烦 |
| 磁盘控制器 | SATA 或 NVMe | 安装器对 SATA 兼容性最好 |
| 固件 | UEFI | 与物理机保持一致,便于迁移 |
| 网络 | NAT 起步,需要被访问时改桥接 | NAT 下宿主可直接访问虚拟机 |
| USB 控制器 | USB 3.1 (xHCI) | 2.0 控制器接高速设备会掉 |
用命令行建虚拟机比在图形界面里点更可控,参数也留得下来。以 VirtualBox 为例:
# 创建并注册一台名为 Kali-Base 的虚拟机,类型按 Debian 64 位处理 VBoxManage createvm --name Kali-Base --ostype Debian_64 --register # 关键参数:4 GB 内存、2 核、128 MB 显存、UEFI 固件、默认 NAT 网络 VBoxManage modifyvm Kali-Base \ --memory 4096 --cpus 2 --vram 128 \ --graphicscontroller vmsvga --accelerate3d on \ --firmware efi --nic1 nat # 创建一个 80 GB 的动态分配磁盘(单位 MB) VBoxManage createmedium disk \ --filename ~/VMs/Kali-Base/Kali-Base.vdi \ --size 81920 --variant Standard # 挂 SATA 控制器,两个端口:0 号接硬盘,1 号接光驱 VBoxManage storagectl Kali-Base --name SATA --add sata \ --controller IntelAhci --portcount 2 --bootable on VBoxManage storageattach Kali-Base --storagectl SATA --port 0 --device 0 \ --type hdd --medium ~/VMs/Kali-Base/Kali-Base.vdi VBoxManage storageattach Kali-Base --storagectl SATA --port 1 --device 0 \ --type dvddrive --medium /path/to/kali-linux-installer-amd64.iso几个参数值得单独说。--firmware efi让虚拟机走 UEFI 引导,装完和物理机的分区结构一致,以后想把虚拟机磁盘挂到物理机上排查问题不会对不上。--accelerate3d on开启 3D 加速,桌面环境的窗口动画和滚动会顺畅很多,但部分宿主机显卡驱动和这个选项冲突,开完进不去图形界面就把它关掉。--variant Standard是动态分配,磁盘文件随实际写入增长,不会一上来就吃掉 80 GB;代价是写入性能略低于固定大小,日常使用感知不到。
网络模式这里多说一句。NAT 模式下虚拟机能上网,宿主能访问虚拟机,但局域网内其他机器访问不到它;桥接模式则相当于虚拟机直接接在同一网段,会占用一个 IP 地址,适合需要从其他设备访问虚拟机的场景。切换不需要重装,虚拟机关机后改设置再启动即可,但虚拟机内的 IP 会变。
3. 虚拟机里跑通 Kali 的最小操作链:从新建到能上网
参数定好之后,安装本身是一路下一步的事。这一章把安装器里几个真正需要动脑的界面拆出来,再把首次启动后的四件事补齐,做完这些才算真正能用。
3.1 安装器走查:语言、主机名、分区方案与账户策略
启动虚拟机,选择 Graphical Install。前面几步语言、区域、键盘都是常规项,按实际情况选,区域建议选Asia/Shanghai,时区会跟着对上。主机名随便起,但别用默认的kali,以后多台机器放一起容易混。域名留空。
真正需要停下来想的是分区这一步。安装器给了几个选项:
- Guided - use entire disk:整盘自动分区,不单独分
/home。最省事,适合一次性环境。 - Guided - use entire disk and set up LVM:走 LVM,后续可以在线扩容,代价是多一层抽象,出问题时排查链路变长。
- Guided - with separate /home:把用户数据单独放一个分区,重装系统时
/home可以保留。日常用这个最舒服。 - Manual:手动分区,完全可控,也最容易出错。
选第三个,然后按下面的方案分配:
| 挂载点 | 大小 | 文件系统 | 说明 |
|---|---|---|---|
| EFI 系统分区 | 512 MB | fat32 | UEFI 固件必需,安装器通常自动创建 |
/ | 30~40 GB | ext4 | 系统与软件,留足升级余量 |
/home | 剩余空间 | ext4 | 用户数据,重装可保留 |
| swap | 4 GB 或 swapfile | swap | 内存 8 GB 以上可以用 swapfile 代替分区 |
分区确认那一屏会列出所有将被格式化的分区,卷标和大小都要看一眼,确认没有选中宿主机的磁盘。这一屏是全程唯一一个“点错了没法撤销”的地方。
账户设置这一步有个容易误解的点:安装器会让你设置普通用户密码,同时 root 账户默认是锁定状态。装完之后用普通用户登录,需要提权时加sudo。这是设计如此,不是安装失败,也不建议装完就把 root 解锁日常使用,sudo的审计日志在排查问题时很有价值。
3.2 首次启动后的四件事:网络、时间、软件源、sudo
安装完成重启,进入登录界面,第一件事不是打开浏览器,而是按顺序确认四样东西。顺序不能乱,后一步依赖前一步。
# 1. 确认网卡拿到地址,NAT 模式下通常是 10.0.2.15 这类地址 ip -br a # 2. 网络管理器状态,设备必须是 connected,unmanaged 说明没纳管 nmcli device status # 3. 校时。时间偏差超过几分钟,apt 会因为签名有效期校验失败而报错 timedatectl set-timezone Asia/Shanghai timedatectl set-ntp true timedatectl status # 4. 核对软件源,先备份再改 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak cat /etc/apt/sources.list软件源这一项值得单独讲。默认源指向官方仓库,国内访问速度取决于网络情况。更换镜像源时注意两点:一是必须用https或确认http源可用,二是仓库组件要写全,缺non-free-firmware会导致部分无线网卡和显卡固件装不上。
# 只保留一行主源,组件写全:main contrib non-free non-free-firmware echo "deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware" \ | sudo tee /etc/apt/sources.list # 更新索引并做一次完整升级,首次升级包比较多 sudo apt update sudo apt full-upgrade -y # 清理不再需要的依赖,回收磁盘 sudo apt autoremove -y && sudo apt cleanapt update只更新索引,不装包;apt full-upgrade才会实际升级,并且在需要时安装或移除依赖包来解决冲突。第一次跑完整升级的时间通常在十分钟以上,中途断网会导致 dpkg 处于半配置状态,恢复命令是sudo dpkg --configure -a再sudo apt install -f。这也是为什么第 2 章强调要先打好快照——出问题直接回滚比重装快。
3.3 中文环境:locale、字体与 fcitx5 输入法
英文界面用着没问题的话,这一步可以跳过。需要中文界面和输入法,装的东西比想象中多:locale 数据、中文字体、输入法框架、输入法引擎,四样缺一样都表现不正常。
# 一次性装齐:locale 数据、两套中文字体、fcitx5 框架与拼音引擎 sudo apt install -y locales fonts-wqy-microhei fonts-wqy-zenhei \ fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk3 fcitx5-frontend-qt5 # 生成中文 locale,取消 zh_CN.UTF-8 前面的注释 sudo dpkg-reconfigure localesdpkg-reconfigure locales会打开一个选择界面,找到zh_CN.UTF-8 UTF-8打上星号,然后把它设为默认。这一步不做,即便界面语言改成中文,终端里中文文件名也可能是乱码。
输入法光装框架不够,环境变量不配,应用根本不会去调 fcitx5。在/etc/environment里加上三行:
# 让 GTK、Qt 和 XIM 三类应用都走 fcitx5 GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx保存后重新登录。登录进去之后在应用菜单里启动 fcitx5,托盘出现图标,右键配置里添加“拼音”,用Ctrl+空格切换。如果某个应用里打不出中文,先确认那个应用是通过 Wayland 还是 X11 运行的——部分 Wayland 会话下 fcitx5 需要额外配置~/.config/environment.d/或者改用 Xorg 会话。桌面登录界面的齿轮图标里能切换会话类型,这一步很多人不知道,白白折腾半天。
4. 物理机与双系统:U 盘启动、分区表与 GRUB 引导
虚拟机里跑顺了,迁到物理机是另一套流程。差异集中在三处:写盘方式、固件设置、引导管理。这三处出问题,表现都是“装完进不去系统”,但原因完全不同,得分开处理。
4.1 制作启动盘:dd 的参数与三个必须核对的东西
写盘工具很多,命令行最透明,也最容易出事故。核心风险只有一个:of=后面写错设备名。
# 第一步:列出所有块设备,确认目标 U 盘的设备名和容量 lsblk -o NAME,SIZE,MODEL,TRAN,HOTPLUG # 输出里看 TRAN 为 usb、HOTPLUG 为 1 的那一项,比如 /dev/sdb # 留意容量,8 GB 的盘绝不会是 500 GB确认无误再写。bs=4M是块大小,status=progress输出进度,oflag=sync让写入同步落盘,避免拔盘时数据还在缓存里。
# 第二歩:写入镜像。of 后面是整块盘(/dev/sdb),不是分区(/dev/sdb1) sudo dd if=./kali-linux-installer-amd64.iso of=/dev/sdb \ bs=4M status=progress oflag=sync conv=fsync # 第三步:确保缓存全部刷到设备再拔盘 sync写错了of=会直接覆盖那块盘的分区表,宿主机的数据也救不回来。血泪经验是:写盘前把除 U 盘外的所有外接存储都拔掉,减少误判的机会。Windows 下用图形化写盘工具时,注意不要选成“ISO 模式”和“DD 模式”里错的那个,选错的表现是开机后 U 盘能引导但中途报找不到安装介质。
固件设置这一块,开机按对应热键进 BIOS/UEFI 设置,需要确认三件事:启动模式是 UEFI 还是 Legacy(建议统一 UEFI)、Secure Boot 是否开启、启动顺序里 U 盘是否排在前面。Secure Boot 开启时,未签名的引导程序会被拒绝执行,表现是 U 盘选进去直接跳回 BIOS。可以临时关掉,也可以走安装器的密钥注册流程,前者省事,后者更规范。
4.2 分区表怎么划:EFI 512M、根分区 60G、/home 余量与加密的代价
物理机的分区和虚拟机思路一样,但要考虑和另一套系统共存。假设一块 512 GB 的盘,Windows 已占用一半,剩下的空间按下面划:
| 分区 | 大小 | 类型 | 挂载点 |
|---|---|---|---|
| EFI 系统分区 | 已有的不动,新建则 512 MB | fat32 | /boot/efi |
| 根分区 | 60 GB | ext4 | / |
| 家目录 | 剩余 | ext4 | /home |
| 交换 | 8 GB 或 swapfile | swap | 无 |
EFI 分区双系统共用,Windows 装系统时已经建好了,不要重新格式化,只要挂载上去即可。安装器手动分区界面里,把已有 EFI 分区设为“保留原有数据,挂载到 /boot/efi”,这一步设错会导致 Windows 引导丢失。
# 分区前先看清楚现有分区表和空闲空间位置 sudo parted /dev/nvme0n1 unit GiB print free # 找 Free Space 那一段,确认起始位置,再在安装器里按这个范围划LUKS 全盘加密是个诱人的选项,代价要说清楚:每次开机要额外输一次密码,密码忘了数据没有任何恢复途径,磁盘出现坏道时恢复难度显著高于未加密分区。日常练习环境不建议开,除非机器会带出门且里面有真实敏感数据。
4.3 GRUB 与引导:update-grub、efibootmgr 和消失的 Windows 启动项
装完重启,进 GRUB 菜单,正常情况下应该能看到 Kali 和 Windows 两项。只能看到 Kali,说明os-prober没检测到另一套系统。
# 确认 os-prober 已安装并允许探测 sudo apt install -y os-prober grep -r GRUB_DISABLE_OS_PROBER /etc/default/grub # 若有该行且值为 true,改成 false 或注释掉 # 重新生成引导配置 sudo os-prober sudo update-grubos-prober会把探测到的系统打印出来,输出里有 Windows 字样,update-grub之后菜单里就会出现。如果这一步报错或者探测不到,多半是 Windows 所在分区没有正常卸载(比如休眠状态下关机),进 Windows 完整关机一次再来。
反过来,如果装完 Kali 后 Windows 启动项在 UEFI 启动菜单里消失了,用efibootmgr看:
# 列出所有 UEFI 启动项,带 * 的是当前默认 sudo efibootmgr -v # 恢复顺序,假设 Windows 是 Boot0001,Kali 是 Boot0000 sudo efibootmgr -o 0000,0001efibootmgr -v的输出里能看到每个启动项对应的 EFI 程序路径,\EFI\Microsoft\Boot\bootmgfw.efi就是 Windows。这条路径还在,说明文件没丢,只是启动顺序被改了,用-o重排即可;路径对应的文件不在了,才需要走 Windows 的引导修复流程。
5. 安装环节避坑:5 个高频翻车点的现象、原因与处理
安装这一步的报错信息往往指向不准,看到的现象和真正的原因隔着一层。下面五个是我遇到过次数最多的,按“现象 → 原因 → 解决”记下来。
5.1 重启后又回到安装界面,什么都没有保存
现象:安装流程走完,提示重启,拔掉镜像后启动,又回到了安装器欢迎界面,磁盘上没有任何系统。
原因:拿的是 live 镜像,安装器只是把系统跑在内存里,重启即清空。或者是虚拟机里光驱没拔,BIOS 启动顺序又把光驱排在了硬盘前面。
解决:确认镜像文件名带installer。虚拟机在设置里把光驱的 ISO 弹出,或者把硬盘调到启动顺序第一位。物理机进 UEFI 把内置磁盘提到 USB 之前。
5.2 装完重启黑屏,或者分辨率锁死在 800×600
现象:GRUB 能过,进入图形界面时黑屏、花屏,或者进去了但分辨率极低且改不动。
原因:三种可能。虚拟机的显存给得太少,低于 64 MB 时高分屏直接花;3D 加速和宿主显卡驱动冲突;物理机上开源显卡驱动没装全,或者 Wayland 会话下的兼容问题。
解决:虚拟机关机后把显存调到 128 MB,先关掉 3D 加速试一次。物理机在 GRUB 菜单按e编辑启动项,内核行末尾加nomodeset临时进入系统,然后装对应驱动。能进系统但只有 Wayland 有问题,登录界面切到 Xorg 会话。
# 物理机进系统后看显卡型号和当前驱动 lspci -k | grep -A3 -i vga # 确认固件包是否齐全,缺固件时 dmesg 里会有 firmware 加载失败 sudo dmesg | grep -i firmware5.3 apt update 报签名错误、404 或“仓库没有 Release 文件”
现象:apt update输出一堆NO_PUBKEY、404 Not Found、Release file is not valid yet。
原因:NO_PUBKEY是密钥环缺失;404 多半是源地址写错或者镜像站同步滞后;not valid yet是系统时间比仓库签名时间还早,校时没做。
解决:先跑timedatectl status看时间。时间没问题就核对/etc/apt/sources.list,只保留一行主源,组件写全。还不行就把源临时换回官方地址排除镜像站因素。
# 一键恢复成官方源,排除镜像站同步问题 echo "deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware" \ | sudo tee /etc/apt/sources.list sudo apt update5.4 磁盘扩容了,df 里还是原来的大小
现象:虚拟机磁盘从 80 GB 调到 120 GB,进系统df -h看根分区还是 80 GB。
原因:扩容只改了虚拟磁盘的容量,分区表和文件系统都没动,中间隔了两层。
解决:先扩分区,再扩文件系统。
# 看磁盘总量和分区结束位置,确认尾部有未分配空间 sudo parted /dev/sda unit s print free # 扩容第 2 个分区到磁盘末尾(编号按实际情况改) sudo growpart /dev/sda 2 # 在线扩容 ext4 文件系统,不用卸载 sudo resize2fs /dev/sda2 # 确认结果 df -h /顺序不能反。先resize2fs会报文件系统比分区大,白跑一趟。growpart命令来自cloud-guest-utils包,没装的话用parted手动删了重建分区(保留起始扇区不变),效果一样但风险高,建议装包用前者。
5.5 双系统装完,Windows 启动项在 UEFI 里消失了
现象:装完 Kali 重启,UEFI 启动菜单里只有 Kali,进不去 Windows,但 Windows 的分区数据还在。
原因:安装器重建 EFI 分区时把原有的 Windows 引导文件覆盖了,或者启动顺序被改写,Windows 项还在但没排在前面。
解决:先用efibootmgr -v确认 Windows 项是否存在。存在就调顺序;不存在但\EFI\Microsoft目录还在,可以从 Kali 里重建引导项。
# 确认 EFI 分区挂载点和其中的厂商目录 ls /boot/efi/EFI/ # 有 Microsoft 目录说明文件还在 # 重建 Windows 启动项,指向 bootmgfw.efi sudo efibootmgr -c -d /dev/nvme0n1 -p 1 \ -L "Windows Boot Manager" -l '\EFI\Microsoft\Boot\bootmgfw.efi'-d是磁盘,-p是 EFI 分区号(从 1 开始),-l是 EFI 程序路径,路径里的反斜杠在 shell 里要单引号包住避免转义。重建完efibootmgr -v再确认一次,然后重启进 UEFI 菜单选 Windows。这条命令属于后悔药,但前提是 EFI 分区没被格式化——所以第 4 章才强调分区那一步不能动已有的 EFI 分区。
6. 把安装结果固化成基线:快照、清单与一次验证
装完能用,和装完可复现,是两件事。前者靠运气,后者靠记录。我的习惯是系统能正常上网、软件源升级完成、输入法和驱动都确认没问题之后,立刻做三件事,把当前状态钉死。
第一件是打快照。虚拟机直接右键拍快照,命名带上日期和状态,比如clean-install-2024。物理机没有快照,退而求其次,用timeshift做一次系统级备份到外接盘,或者至少把/etc目录打个 tar 包。这一步花五分钟,能省掉后面重装的两小时。
第二件是导包清单。系统里装了什么,光靠记忆靠不住。
# 导出全部已安装包,重装后可以按这个清单批量恢复 dpkg --get-selections > ~/baseline-all-pkgs.txt # 只导出用户手动装的,排除依赖自动带进来的,清单更干净 sudo apt-mark showmanual > ~/baseline-manual-pkgs.txt # 顺带记录源配置和网络配置 cp /etc/apt/sources.list ~/baseline-sources.list nmcli connection show > ~/baseline-nmcli.txt # 虚拟机环境下同时拍快照 VBoxManage snapshot Kali-Base take clean-install \ --description "源已换、驱动已确认、输入法可用"apt-mark showmanual的价值在于:一次apt install会带进来几十个依赖包,全量清单几百行,重装时照着敲不现实;手动装的通常只有二三十个,恢复时一条xargs就搞定。恢复命令是sudo apt install $(cat baseline-manual-pkgs.txt | tr '\n' ' '),跑之前先apt update。
第三件是做一次验证,别等真出问题才发现快照是坏的。验证方法很土但有效:关掉网络启动一次,确认系统能正常进桌面、能打开终端、ip -br a有回环地址;然后恢复快照,确认恢复过程不报错、恢复后能正常登录;最后看df -h的剩余空间,低于 15% 就说明该清理或者扩盘了。
我踩过最疼的一次坑,是装完系统觉得“反正有快照”,把源换成了某个同步不全的镜像站,升级到一半依赖冲突,回去恢复快照才发现快照是在换源之前拍的——等于白拍。从那以后我的习惯改成:任何一次“改配置”之前先拍一张,改完验证通过再拍一张,两张快照之间就是这次变更的完整撤销范围。快照不是备份,它只能带你回到拍它的那一刻,拍的时间点选错了,等于没拍。
这套流程走下来,一次安装大概花四十分钟,其中安装器本身占十五分钟,剩下都是校验、配置和固化。时间花在哪,出问题时就能省在哪。希望帮到你。
本文还有配套的精品资源,点击获取