Kali Linux 2020启动引导选项详解与安装配置实战

Kali Linux 2020启动引导选项详解与安装配置实战 用了这么多年Linux发行版我最大的感受就是Kali Linux 虽然本质上是个基于Debian的良心发行版但不少新手第一次接触它十有八九是栽在启动引导和安装阶段而不是后面的渗透测试本身。你从官网下好镜像烧录进U盘兴致勃勃重启电脑结果面对屏幕上一排启动引导选项愣住选错一个直接黑屏或者卡死装好了系统又发现开机不进GRUB直接进了Windows或者无线网卡没驱动软件源慢到怀疑人生。这篇文章就是围绕“Kali Linux 2020启动引导选项说明、系统安装与配置”这条主线把我踩过的坑、验证过的步骤和排查思路一次性理清楚。不管你是第一次装Kali的新手还是想在双系统里把引导和配置调顺的老手都可以对照着操作。很多教程喜欢一上来就让你回车、回车、下一步但从不解释为什么这么选导致你换个环境就不会了。所以这篇文章不只写“怎么点”还会讲清楚每个启动引导选项背后的逻辑、磁盘分区怎么规划、GRUB怎么修复以及装完系统后必做的软件源和驱动配置。我尽量用大白话该给参数的地方给参数该贴命令的地方贴命令确保你照着做能顺利跑起来。1. 拿到安装镜像后先搞清楚引导流程Kali Linux 2020版本和之前的版本相比默认桌面环境换成了Xfce官方安装镜像也做了调整。你从官网下载的ISO通常是一个可以同时用于Live模式和安装模式的完整镜像。很多人不理解为什么Kali既有“Live”又有“Installer”总觉得一个镜像应该直接进入安装界面才对。实际上这种设计是为了让你在真正写入硬盘之前先跑起来看看硬件兼容性、网络和桌面环境是否正常也算是Kali官方比较贴心的地方。1.1 官方镜像的两种启动方式Live模式与安装模式Kali Linux 2020的官方ISO启动后你首先会看到一个带图形背景的引导菜单里面一般有“Live (amd64)”、“Live (amd64, failsafe)”、“Install”、“Graphical install”具体名称随版本略有差异等选项。这些选项的本质区别就是启动后是进入一个临时内存系统还是进入正式的安装程序。Live模式会把整个系统解压到内存中运行不触碰硬盘适合用来做体验、救急和硬件排查。如果你只是想在别人的电脑上临时做个系统检测或者想先看看Kali的桌面是什么样的选Live就行。但Live模式有两个明显短板一是所有修改在重启后全部丢失二是内存占用较高如果机器内存小于4GB用Live模式浏览网页都会卡顿。Install模式则是传统的文本安装界面Graphical install是图形化安装界面。注意图形化安装并不代表体验一定好它只是用鼠标操作更方便一些。后续章节里的步骤我默认你选择“Graphical install”因为大多数新手对鼠标点选更熟悉而且它的分区界面做得比文本模式直观很多。1.2 启动菜单里每个选项背后的含义如果你仔细观察启动菜单还会看到“Advanced options”这类子菜单里面可能包含“Live (amd64, safe graphics)”和“Live (amd64, drm-free)”等选项。很多第一次装Kali的人看到这些选项心里发怵其实它们是用来解决特定硬件问题的。“failsafe”或“safe graphics”模式会强制使用低分辨率图形驱动适合显卡比较老或者新到Linux还没适配的时候。如果在正常Live模式下屏幕出现花屏、一直黑屏或者卡在某个驱动加载界面就用这个选项启动。“drm-free”模式会禁用Direct Rendering Manager相关驱动这主要是为了排查显卡直渲染导致的内核崩溃。我自己的体验是如果你用的是NVIDIA独立显卡的笔记本加上现在新内核版本的Kali镜像正常启动时经常会在加载nouveau驱动后黑屏这时候进安全图形模式比折腾内核参数更快。除了这些启动菜单底部还有个“Boot from first hard disk”之类的选项意思是不加载镜像直接从电脑硬盘上的现有系统启动。这个选项很适合你发现U盘插着但想进原系统时用不用拔U盘。1.3 UEFI与Legacy BIOS的引导差异——别让启动引导选项白选Kali 2020时代的安装镜像做得比较完善它同时支持UEFI和传统BIOS启动。但这里藏着一个坑如果你的机器开启了安全启动Secure Boot默认情况下Kali的GRUB引导是加载不起来的因为官方签名的引导加载器可能不在你的主板信任列表里。我在给一台2019年的联想笔记本装Kali时就遇到过这种情况。启动U盘后界面停在了一个蓝色背景的GRUB菜单然后按回车想进Live模式结果屏幕直接黑一下又回到了固件设置界面。后来一查是Secure Boot在作怪。解决办法有两种第一种是进BIOS把Secure Boot关掉这也是最常见的做法第二种是用MOKMachine Owner Key手动给Kali的引导加载器签名但这对新手来说操作成本太高不推荐。另外UEFI模式下Kali的安装程序要求你的磁盘必须有一个EFI系统分区ESP分区且一般默认使用GPT分区表。传统BIOS模式则使用MBR分区表即可分区类型也必须是“用于ext4”或“swap”等Linux分区。如果你用的U盘是制作工具以传统方式烧录的但电脑设成了UEFI优先也会导致引导不了。所以制作U盘时最好用RufusWindows下或dd命令Linux下选择合适的目标类型——Rufus里有个“分区类型”下拉菜单如果你不确定电脑是UEFI还是传统BIOS选“UEFI使用GPT”基本覆盖了2020年之后的绝大多数电脑。2. 系统安装的完整实操过程引导流程搞明白了安装就成了一件按部就班的事。这部分的重点是磁盘分区规划别的安装步骤比如选国家、键盘布局、主机名只要别乱填基本不会出问题。但是分区选错轻则Windows进不去重则全盘数据被清空所以我把这一块单独拎出来详细写。2.1 安装前的准备U盘制作与磁盘分区规划在Windows系统下我推荐用Rufus制作Kali的启动U盘。Rufus操作简单烧录速度也快。下载ISO之后插入U盘打开Rufus设备选择你的U盘引导类型选择“镜像文件”然后点击“开始”。弹出来的写入模式选择“DD模式”还是“ISO模式”这个细节很关键。官方推荐使用DD模式因为它在写入时是逐字节镜像拷贝对后续引导兼容性最好。ISO模式虽然也常见但在某些主板上启动不了Kali原因是Kali的ISO是可擦写混合ISOISO模式会把引导扇区按Windows那种方式处理有时候会丢一些UEFI引导文件。如果你是在Linux环境下烧录命令很简单sudo dd ifkali-linux-2020.4-live-amd64.iso of/dev/sdb bs4M statusprogress注意of参数一定是U盘设备文件而不是某个分区例如/dev/sdb而不是/dev/sdb1否则会写不进去。磁盘分区规划方面如果你是单硬盘只装Kali直接让安装程序自动分区就行。但如果你想组双系统我强烈建议先在Windows里用磁盘管理工具把空闲空间留好不要在安装Kali的时候去动Windows分区。具体做法在Windows中按WinX打开磁盘管理右键你较大的数据分区选择“压缩卷”压缩出至少60GB——这是Kali的“黄金容量”起步价。如果要做持久化存储或者跑很多重型工具建议100GB以上。2.2 手动分区方案详解该给Kali留多大空间进入安装程序的分区步骤时如果你的电脑支持UEFI你会看到类似“使用整个磁盘”和“手动”两个关键选项。这里我建议选择“手动”哪怕你只有一块硬盘。为什么因为自动分区虽然省心但它会把整个磁盘当成Kali的如果你电脑上已经存在Windows自动分区极容易把Windows引导分区弄乱。手动分区通常需要创建三个分区一个EFI系统分区如果机器是UEFI且之前没有。这个分区必须设置为“EFI系统分区”大小建议300MB到500MB挂载点不用填文件系统选FAT32。如果机器原本有ESP分区例如Windows已经创建了一个100MB的EFI分区你可以直接把它复用不用再建。一个根分区。挂载点设为“/”文件系统选择ext4大小建议至少40GB推荐60GB以上。根分区存放系统文件、工具软件和大部分配置太小的话后续安装大型工具会捉襟见肘。一个swap分区。挂载点设置为“swap”大小一般等于内存大小或稍小。如果你内存16GB以上也可以不建swap分区但在Kali跑大型编译或者内存压力骤增的场景swap还是能救命的所以建议至少有8GB。如果你的内存只有4GBswap可以给到8GB。使用手动分区时创建完上述分区后要把“可引导标志”打开如果安装程序允许的话然后点击“完成分区操作并将修改写入磁盘”安装程序会列出即将执行的格式化动作确认无误再继续。还有一个细节很多人选择手动分区后发现磁盘里多出了一个几百MB的“Microsoft reserved”分区这是Windows保留分区千万不要删。在手动分区界面里你只需要为Kali在空闲空间上新建分区其他分区一律保持原样。2.3 网络安装与离线安装的选择Kali 2020镜像本身是一个Live镜像安装过程中不会强制联网下载所有软件包它默认使用镜像内自带的软件包仓库。但安装完后你仍然需要联网做更新和补充工具。这个阶段有两个选择如果在安装过程中连接了网络安装程序会从网络上的Debian仓库拉取一部分软件索引但大多数Kali工具仍然在安装完成后才下载。如果你没有网络你也可以顺利装完系统只是后续需要找一台有网的电脑下载离线工具包再拷贝过来。我自己的建议是安装过程中可以连接网络但不要勾选“安装第三方软件”或“获取软件更新”之类的选项因为这会显著拉长安装时间而且如果你的网络到国外源的延迟比较低那还好如果延迟高装两三个小时都不是新鲜事。安装完系统后再配置国内软件源速度会快得多这一步我们在下一部分细说。3. 装完系统后的基础配置系统安装完成重启后终于看到Kali的GRUB菜单选择第一项进入系统理论上已经成功了一大半。但很多人的Kali此时还是不顺手软件源慢、无线网卡连不上、中文输入法没有、桌面字体发虚。这些都属于“基础配置”范畴把它们搞定之后Kali才真正成为一台可以日常使用的安防测试环境。3.1 更换软件源与系统更新别再用默认源卡半天Kali基于Debian Testing分支官方源在国外国内直连速度通常很慢。默认情况下Kali的/etc/apt/sources.list里面有若干官方源地址你在终端里执行apt update时可能卡在某个源上十几分钟都完成不了。解决办法是换成国内镜像源。编辑软件源使用root权限sudo nano /etc/apt/sources.list在文件里注释掉官方源写入镜像源。比较常用的有阿里云、清华、中科大deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib或者用清华deb https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main non-free contrib这里有个细节Kali仓库分为main、non-free、contrib三部分其中non-free包含硬件驱动等非自由软件包务必保留否则后续安装无线网卡固件时可能找不到包。执行sudo apt update后如果看到类似“GPG错误”或者“NO_PUBKEY”的提示需要手动导入Kali签名密钥wget -q -O - https://archive.kali.org/archive-key.asc | sudo apt-key add -注意apt-key在新版本中已被标记为废弃但对于Kali 2020这种老版本这个命令依然是最直接的解决方式。密钥弄好后再次apt update就能正常识别。更新系统用sudo apt upgrade sudo apt dist-upgrade有些教程会建议直接apt full-upgrade这两个命令在Kali里作用类似但dist-upgrade更倾向于处理依赖关系变更。更新过程中可能会提示“配置文件是否需要保留”之类的问题如果你不确定默认保留原有配置即可。大型更新后建议重启一次保证内核等组件生效。3.2 配置无线网卡、显卡驱动和常用工具Kali自带大量无线网卡驱动但并不意味着所有网卡插上就能用。2020年的Kali内核版本是5.9左右如果你的无线网卡型号太新可能驱动没跟上。常见做法是先确认网卡芯片型号lspci -nn | grep -i network # 或者 USB 无线网卡 lsusb如果看到网卡没有被驱动先尝试安装固件包例如sudo apt install firmware-iwlwifiIntel的无线网卡常用这个包安装后重启一般就能识别。Realtek的网卡可能需要单独安装Realtek驱动这类驱动通常需要联网下载源码编译比较麻烦。我个人的建议是如果你打算长期用Kali做无线安全研究最好准备一个Atheros芯片的外置USB网卡例如AR9271它和Kali的兼容性非常好属于即插即用级别。显卡驱动这块大多数Kali用户不需要专门装NVIDIA驱动因为Kali主要面向命令行和桌面工具使用集成显卡驱动已经够用。如果你一定要用NVIDIA独显跑Hashcat等GPU加速工具安装NVIDIA闭源驱动前请务必先安装对应内核头文件sudo apt install linux-headers-$(uname -r) sudo apt install nvidia-driver安装完NVIDIA驱动后很大概率会出现重启进不了图形界面的情况尤其是有的人装了新版驱动后Xfce直接黑屏。我的建议是针对Kali 2020这种滚动发行版不要轻举妄动装NVIDIA最新驱动优先用系统自带的nouveau开源驱动如果一定要装装完之后坏了就进恢复模式卸载sudo apt purge nvidia-*在恢复模式下联网操作或者进文本终端CtrlAltF2操作。经验之谈千万不要在Kali里盲目安装驱动否则你会非常后悔。常用工具方面Kali默认已经预置了大多数渗透测试工具但有些基础工具还是得自己补比如Git、Net-tools、Vim这些sudo apt install git vim net-toolsKali默认没有开启SSH服务如果你希望远程连接它可以通过sudo systemctl enable ssh --now然后把/etc/ssh/sshd_config里的PermitRootLogin改为yes如果你要root登录改完重启SSH服务即可。注意默认的root密码是你在安装过程中设置的不是“kali”或“toor”。3.3 登录与桌面环境的个性化调整Kali 2020默认登录界面是LightDM输入安装时设置的root账户或普通用户密码即可。它默认装了普通用户但它有一个比较与众不同的地方官方建议你用root做日常操作。原因是很多安全测试工具需要特权频繁sudo反而麻烦。默认安装时如果你按普通用户身份登录root账户已经被创建但未解锁。你可以用sudo passwd root设置root密码后选择root登录。我不反对用root但提醒一句用root操作时一定要明白自己在干什么因为误删系统文件、改坏配置的概率会直线上升。如果在桌面环境里修改系统文件记得大文件备份。桌面环境是Xfce它比GNOME轻量但默认字体和主题比较朴素。如果你想让桌面看着舒服点可以安装字体和主题工具sudo apt install fonts-noto-cjk fonts-wqy-zenhei之后在“设置”-“外观”里把字体调整为Noto Sans CJK SC中文显示就不会出现方块字了。如果输入法没装可以装Fcitx5sudo apt install fcitx5 fcitx5-chinese-addons装完在“设置”-“会话和启动”里加入fcitx5自启动再配置一下输入法插件即可。这些内容虽小但直接影响日常使用体验很多教程都不提我在这里一并说了。4. 启动引导问题排查与技巧实录装了Kali之后你可能会遇到开机直接进Windows、GRUB菜单消失、或者启动到一半卡在某个地方的情况。这些都是引导相关的高频问题而且往往在安装完成后的第一次重启就出现。这一部分我按问题类型做了个速查表并给出具体的修复方法。4.1 常见问题开机直接进Windows没有GRUB菜单怎么办这是双系统安装后最常见的情况。原因是GRUB没有被写入到UEFI引导序列的顶部或者主板默认从Windows Boot Manager启动而Kali的GRUB虽然安装了但没出现在首选引导项里。解决思路分两步。第一步重启时狂按F2或Del进BIOS设置找到“Boot”或“启动”选项把“Ubuntu”或“Kali GNU/Linux”这一项调整到第一启动顺序。不同主板显示名称不同有的叫“ubuntu”因为Kali安装器沿用了Debian的EFI引导标签看到“ubuntu”就选它通常就是GRUB。第二步如果BIOS里根本没有这个选项说明GRUB没有正确安装到EFI分区需要进入U盘Live环境修复。这里我特别说一下很多新手在BIOS里看到多个带“UEFI”前缀的启动项不知道选哪个。一般规律是硬盘名称或者“Windows Boot Manager”这类名称就对应原系统而“ubuntu”或“Kali”对应GRUB引导。如果GRUB被正确安装选择“ubuntu”会引导进入GRUB菜单然后在GRUB里你既能进Kali也能用“Windows Boot Manager”跳转进Windows这才是双系统正常的打开方式。4.2 修复GRUB引导的三种办法如果GRUB菜单丢失或者开机直接黑屏出一个grub rescue提示符不要慌。我有三种常用的修复方式按从简单到复杂的顺序排列。第一种进BIOS看能否找到UEFI启动项。如果能找到ubuntu启动项直接选它进入GRUB然后在Kali系统里执行sudo update-grub这个命令会扫描所有磁盘并重新生成GRUB配置文件把Windows引导项加回来。大多数情况下问题只是配置文件损坏用这个方法就能解决。第二种如果BIOS里完全没有ubuntu启动项用Kali启动U盘进入Live模式挂载根分区和EFI分区然后chroot进去重新安装GRUB。具体命令如下命名分区要根据你的磁盘分区实际情况调整sudo mount /dev/nvme0n1p2 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo chroot /mnt grub-install /dev/nvme0n1 update-grub exit其中/dev/nvme0n1p2是根分区/dev/nvme0n1p1是EFI分区。如果你不确定哪个是哪个可以用lsblk -f查看每个分区的类型和挂载点。grub-install的最后一个参数是磁盘设备名不是分区名这一点很容易搞错写成/dev/nvme0n1p1就没有意义。第三种如果连chroot都进不去可以先用Boot-Repair等工具一键修复。Boot-Repair在Live模式里通过PPA安装sudo add-apt-repository ppa:yannubuntu/boot-repair sudo apt update sudo apt install boot-repair boot-repair然后在图形界面里点击“Recommended repair”它会自动检测引导问题并把GRUB装回去。这个方法对新手最友好但前提是Live系统能联网。实测下来绝大多数引导缺失问题都能用Boot-Repair解决。4.3 双系统下改默认启动项与等待时间成功的双系统状态下开机后会显示GRUB菜单默认进Kali等待时间为5秒或10秒。如果你想让Windows作为默认系统或者把等待时间调短可以编辑/etc/default/grub。sudo nano /etc/default/grub主要改三个参数GRUB_DEFAULT默认系统序号从0开始。你可以通过grep menuentry /boot/grub/grub.cfg查看GRUB菜单条目的顺序比如Windows条目在第二个那GRUB_DEFAULT1。GRUB_TIMEOUT等待时间单位秒设置成3或5都行。注意如果值为0GRUB菜单一闪而过不利于你临时切系统建议至少保留2秒。GRUB_CMDLINE_LINUX_DEFAULT内核启动参数如果你遇到黑屏或者花屏问题可以在这个参数后面加nomodeset让内核不切换显卡驱动模式这是最常用的应急参数。修改完后记得执行sudo update-grub改配置文件却不执行update-grub等于白改这是新手特别容易忽略的操作步骤。后面还说点啥聊聊我这几年的实操体会每次安装Kali都会遇到一些奇奇怪怪的硬件兼容性问题。我统计了一下其实一半是引导问题另外一半是驱动和软件源问题。真正有问题需要靠“黑客技巧”解决的很少大部分都能靠耐心排查搞定。我个人建议如果你只是想熟悉Kali的界面和常用工具第一遍最好在虚拟机里装比如VMware或VirtualBox。虚拟机里可以先熟悉启动引导选项、分区逻辑和命令行操作不用担心把电脑搞坏。等你在虚拟机里把安装配置流程走了一遍再考虑在物理机上做双系统或全盘安装成功率会高很多。还有一个很多人容易忽略的细节Kali的滚动更新机制决定了它和Debian stable不一样不要在生产环境里拿它当日常办公系统长期跑它更适合用来做测试、实验和安全学习。所以在配置时如果某个功能折腾了两三个小时还不行不妨退一步换个思路比如先查查是不是源的问题而不是执着于折腾驱动。最后再分享一个小技巧装好Kali后记得第一时间给系统做个快照虚拟机场景下或者备份好分区表物理机场景下。很多时候你装完所有工具结果一次full-upgrade把桌面环境搞崩了这时候如果有快照几分钟就能恢复着装好的状态不用从头再来。这是我从无数次重装Kali中总结出来的血泪教训希望对你有用。