ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Kali 2020.2安装配置踩坑全记录:从黑屏到虚拟机修复的完整排错手册

Kali 2020.2安装配置踩坑全记录:从黑屏到虚拟机修复的完整排错手册 Kali 2020.2这个版本我前前后后在虚拟机、物理机上一共装了不下十遍。每次刚觉得这次应该顺了转头就撞上一个新问题引导黑屏、磁盘识别不了、软件源连不上、共享目录挂载失败……踩坑记录都能写满一个小本子。这篇文章就把我在Kali 2020.2安装和初始配置阶段遇到的所有问题连同排查过程和最终解决办法完整整理出来给准备入坑或者已经被坑到的朋友一份可以直接照做的排错手册。文章围绕Kali 2020.2展开覆盖从镜像校验、虚拟机选型到引导黑屏、硬盘不识别、软件源换源、中文配置、VMware集成、无线网卡固件、内核升级后模块故障、grub损坏等一整套安装连环坑。不管你是第一次装Kali的初学者还是卡在某个报错里出不来的老折腾党下面这些内容基本都能帮你找到出路。1. 为什么偏偏是2020.2踩坑最多版本背景与安装方式选型1.1 2020.2版本的特殊之处很多人觉得Kali就是一个Linux发行版装完就能用不需要想太多。但2020.2这个版本比较特殊它正好处于Kali几个重要变化的交汇期踩坑的人特别多。第一是默认shell从bash换成了zsh。从2020.1开始Kali把默认shell改为zsh2020.2是这个变化被大量用户接触到的第一个稳定版本。很多老教程里的命令和配置文件路径还是bash时代的老思维照着操作就会发懵比如~/.bashrc改了没反应提示符长得很陌生。第二是用户权限模型变了。Kali 2020.2不再默认使用root账户登录安装时创建的普通用户拥有sudo权限。旧习惯是直接root横着走现在动不动就Permission denied不少人误以为系统装坏了。第三是滚动更新的内核和闭源驱动之间的兼容问题。2020.2自带的内核版本较新VMware Tools、无线网卡驱动、NVIDIA显卡驱动等系统底层模块并不是总能跟上内核节奏。一旦升级内核之前好用的东西就会突然翻车。所以在看到一堆报错之前我们得先接受一个事实Kali 2020.2本身没问题问题出在它作为滚动发行版系统组件变动太快而周边工具、虚拟机软件、硬件驱动没跟上。理解了这一点后面所有排错就不再是天书而是一个版本匹配的博弈过程。1.2 下载镜像时容易被忽略的校验步骤很多人下镜像只关心能装上系统却忽略了ISO文件的完整性问题。Kali镜像体积好几个GB下载过程中只要有一丁点数据损坏安装器就会在某个随机步骤报错比如无法读取文件找不到内核模块解压失败。这种问题排查起来极其痛苦因为每次报错位置可能都不一样。正确做法是下载后立刻做SHA256校验。在Linux终端里执行sha256sum kali-linux-2020.2-installer-amd64.iso然后去官方镜像站的checksum文件里比对输出的哈希值。如果两个值不一致别犹豫删掉重新下载不要抱着可能能用的侥幸心理继续装。另一个容易被忽略的点是下载渠道。建议优先选择国内高校或云厂商维护的镜像站比如清华TUNA、阿里云镜像、中科大镜像。这些镜像和官网内容一致下载速度却快得多。官网服务器在国外断断续续的下行连接最容易导致ISO不完整。1.3 虚拟机、物理机还是双系统选对路径再动手每个准备安装Kali的人都应该先问自己一个问题我装它到底要干嘛这个问题决定了安装载体也直接决定了你会踩哪一类坑。安装方式难度硬件兼容风险日常使用便利性适合人群VMware虚拟机低低高可随时快照恢复新手、学习型用户VirtualBox虚拟机低中高但3D加速和共享目录略折腾新手、预算敏感用户物理机单系统高高无线网卡/显卡都可能是坑中性能好但成天修驱动老手、有特定硬件需求的人WindowsKali双系统极高高中完全依赖grub引导熟悉引导分区、有冒险精神的人我的建议非常明确如果是第一次接触Kali果断选VMware虚拟机。等到你对整个系统结构、软件包管理、内核模块这些概念有了感知再去碰物理机也来得及。物理机或者双系统并不是不能装而是这两条路上的坑往往是硬件级的内置无线网卡没有固件、独立显卡驱动冲突、休眠唤醒后网络失效、UEFI引导被覆盖。这些问题的排查链路长、依赖硬件型号、且难以给你一套通用答案。相比之下虚拟机的问题高度集中且可复现网上解法多、试错成本低是学习阶段投入产出比最高的路径。2. 开机即黑屏、安装器卡住和硬盘不识别引导阶段问题清单这一章的坑基本在按下启动键到看见安装界面的几分钟内集中爆发。每个问题我都按现象-原因-解法的顺序写方便直接定位。2.1 GRUB菜单都看不到先解决启动黑屏现象镜像引导启动后屏幕一直黑着或者左上角只有一个光标在闪烁风扇转了很久就是没有下一步反应。等几分钟也无济于事。原因Kali 2020.2默认使用内核的通用帧缓冲驱动来显示安装界面。部分显卡芯片尤其是老款NVIDIA和某些AMD芯片与新版内核的视频输出模式配合不佳图形安装器初始化画面时就直接崩了。另一个常见原因是虚拟机里开启了3D加速VMware的虚拟显卡偶尔也会在这个版本上抽风。解决思路在GRUB菜单出现时先不要急着回车。如果看不到GRUB菜单就趁黑屏期间多按几次键盘上的上下方向键让菜单显示出来。菜单出现后选中Install这一项或者是Includes graphical install的那个入口按键盘上的e键进入编辑模式。找到以linux开头的那一行在行尾空格后追加参数nomodeset然后按CtrlX或者F10启动。nomodeset的意思是告诉内核暂时不要初始化显卡的硬件模式设置用纯软件帧缓冲先顶上来。这是Linux安装阶段最经典、最管用的黑屏兜底参数。如果是VMware虚拟机里黑屏除了加参数还建议去虚拟机设置的显示器选项里取消勾选加速3D图形。Kali 2020.2的Xfce桌面本来不需要多强的3D能力关掉这个选项之后很多奇怪的渲染问题会一并消失。2.2 找不到硬盘或分区器卡死SATA模式与UEFI设置现象安装进行到分区阶段界面里看不到任何磁盘或者一开始能进入安装界面但点击开始安装后长时间卡在扫描硬盘的步骤。有人还会遇到提示未找到磁盘设备。原因这个词在2020.2的排错里出现频率极高——Intel RST。很多笔记本默认把SATA控制器设置在RAID模式而这个RAID模式挂载出来的虚拟磁盘Linux内核不认识。另外如果使用UEFI引导磁盘的GPT分区表类型和EFI系统分区需求也会让不熟悉引导机制的人晕头转向。解决思路物理机用户需要重启进BIOS/UEFI设置找到SATA Mode或Configure SATA as选项把RAID改成AHCI保存重启后再进安装器。这个改动不会损坏Windows系统但如果你同时装了Windows并启用了Intel傲腾加速建议先关闭傲腾再切换。VMware用户则不需要动BIOS而是检查虚拟机创建时硬盘控制器的类型。默认的SCSI类型一般没问题但如果你为了性能选了NVMe类型某些旧版VMware和Kali 2020.2的组合会出现识别不到硬盘的情况。把硬盘删掉重新添加控制器类型改成LSI Logic或者SATA问题通常迎刃而解。安装时如果UEFI模式有问题也可以回到传统BIOS引导方式试验。Kali的安装器在传统模式和UEFI模式下都能工作但传统模式往往对初学者更友好不用纠结EFI分区大小和引导项顺序。2.3 安装到最后提示GRUB安装失败现象系统文件明明已经写完安装流程走到最后一步却弹出红色错误框GRUB安装失败。接下来的选项通常是继续和返回重试无论选哪个重启后大概率直接进grub rescue或者干脆黑屏。原因GRUB引导加载程序没写进磁盘的引导区域。常见原因有三个一是安装引导程序的设备选错了选了某个分区而不是整块磁盘二是UEFI模式下EFI系统分区ESP太小或类型不对三是BIOS里Secure Boot没有关闭引导程序因数字签名问题被拒绝写入。解决思路安装器里的引导设备选项Install GRUB to a hard disk务必选整块磁盘一般是/dev/sda而不是/dev/sda1这样的分区。如果之前装砸了这一章末尾的6.3部分我写了grub rescue的具体修复命令。物理机用户还应该在BIOS里关闭Secure Boot这不影响系统安全性但能减少大量第三方Linux发行版的引导兼容问题。3. 进入系统的第一件事不是刷工具而是换源、中文与基础环境装完系统后大多数人习惯性先开终端然后发现两个尴尬问题apt update慢到怀疑人生以及终端/浏览器里中文全是方块。这两件事不解决后面什么都干不了。3.1 软件源优化从连接超时到apt update正常现象执行apt update时长时间卡住随后连接超时。或者速度只有几KB/s更新一个软件包列表要等十几分钟。原因Kali默认的官方源服务器在海外国内网络访问质量不稳定。再加上Kali仓库体积大更新频繁官方源拥堵是常态。解决思路换用国内镜像源。修改/etc/apt/sources.list在文件开头添加以下内容deb https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free如果你不想用清华源把域名换成mirrors.aliyun.com/kali或者mirrors.ustc.edu.cn/kali效果一样选择一个靠近你所在区域、速度更稳定的就行。改完源之后别忘了更新软件包签名。因为Kali在2020年更新过仓库签名密钥旧系统直接update会提示一些验证错误。执行wget https://archive.kali.org/archive-key.asc sudo apt-key add archive-key.asc sudo apt update命令跑完后看到正常的软件包列表下载输出就说明源已经通了。别急着apt upgrade。刚装完系统的第一件事最好是先做一轮系统更新但更新前先确认磁盘空间充足至少预留5GB以上否则升级到一半空间耗尽系统就废了。3.2 中文语言包与输入法的完整配置现象系统界面和终端的英文显示正常但打开中文网页或者创建中文文件名时显示为方块豆腐块。装完输入法也不起作用快捷键切不出来。原因Kali默认没有安装中文字体也缺少完整的中文本地化语言包。系统环境变量里LANG设置的是en_US.UTF-8中文字符没有对应的字形渲染自然就是方块。输入法这个问题则是缺少全局输入法环境变量的配置。解决思路先装字体和语言包sudo apt install locales fonts-wqy-microhei fonts-wqy-zenhei sudo dpkg-reconfigure locales在dpkg-reconfigure locales弹出的对话框里用方向键找到zh_CN.UTF-8 UTF-8按空格选中然后选择它作为系统默认locale。这一步做完后大部分中文方块问题就消失了。给Kali 2020.2配置输入法我最推荐fcitx配合fcitx-googlepinyinsudo apt install fcitx fcitx-googlepinyin fcitx-config-gtk3安装完成后需要告诉系统全局使用fcitx作为输入法框架。打开终端编辑用户配置echo export GTK_IM_MODULEfcitx ~/.xprofile echo export QT_IM_MODULEfcitx ~/.xprofile echo export XMODIFIERSimfcitx ~/.xprofile然后运行im-config -n fcitx重启系统。重启后右下角系统托盘中会出现fcitx图标右键图标进入Configure添加Google拼音输入法用CtrlSpace或CtrlShift就能正常切换。位置不同的一个坑2020.2默认shell是zsh所以环境变量写入~/.bashrc可能不起作用。写到~/.xprofile这种会被图形会话启动时读取的文件里更稳妥。3.3 双系统时间错乱Linux和Windows各说各话现象安装完Kali并启动Windows后Windows系统时间慢了8小时手动改回来后重启进KaliKali的时间又不对了。原因Windows默认把硬件时钟RTC当作本地时间而Linux系统默认把硬件时钟当作UTC时间再根据时区转换成显示时间。两种策略之间差了8小时东八区所以切换系统时时间总是不对。解决思路让Kali也使用本地时间执行sudo timedatectl set-local-rtc 1 --adjust-system-clock执行完后用date命令确认时间正确重启进Windows两边时间就安稳了。这个命令只在双系统环境才需要单系统虚拟机用户不用管。3.4 中文环境下的终端提示符乱码现象设置了中文环境后终端里出现一排排的菱形问号或者转义字符序列看起来像是命令提示符坏了。原因部分zsh提示符主题使用Unicode字符比如Git仓库状态图标在没有对应字体的中文locale下无法正常渲染。解决思路不用卸载主题去终端设置的偏好里把字体改成WenQuanYi Micro Hei或者安装powerline-fonts这类支持宽字符和特殊图标的字体。Kali 2020.2默认的Xfce终端Terminal在编辑-首选项-外观里改字体即可。这个坑非常小但第一次碰到的人往往会误以为zsh配置出错了白白折腾半天。4. 虚拟机集成体验剪贴板、共享目录、分辨率和拖拽如果你按我前面的建议选择了VMware虚拟机安装完系统后想实现主机和虚拟机互相复制粘贴、拖拽文件、共享目录、窗口自由缩放还需要做几步额外配置。4.1 该装open-vm-tools还是官方VMware Tools很多教程会叫你虚拟机菜单里点安装VMware Tools然后在虚拟机里解压tar包运行install脚本。但在Kali 2020.2上这个操作多半会失败因为官方VMware Tools安装脚本对deb系统、新内核的适配一直很糟糕编译到一半报错是常态。正确的方案是使用发行版仓库里的开源版本open-vm-toolssudo apt install open-vm-tools open-vm-tools-desktopopen-vm-tools-desktop这个包很关键它提供了图形界面所需的服务自动调整分辨率、剪贴板共享、拖拽文件支持。安装后重启一次VMware菜单里的复制粘贴和拖拽选项在开着的情况下通常就能直接工作。如果重启后剪贴板还是不通检查一下VMware虚拟机设置的选项-客户机隔离里启用复制粘贴和启用拖放两个复选框是否勾选了。这两个选项默认应该是勾选的但有些精简版VMware模板会默认关闭。4.2 共享文件夹挂载失效的手动修复现象在VMware里设置了主机共享目录Kali桌面上看不到挂载点输入ls /mnt/hgfs提示目录不存在或者目录存在但里面是空的。原因open-vm-tools安装后vmhgfs-fuse模块并不总是自动挂载共享目录。在某些内核版本上开机时挂载服务执行得太早或者fuse内核模块还没加载导致挂载失败。解决思路先手动验证挂载是否可行sudo mkdir -p /mnt/hgfs sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other如果执行完ls /mnt/hgfs能看到你在主机里共享的文件夹说明功能正常只是没有自动挂载。那就把挂载命令写进/etc/fstab实现开机自动挂载.host:/ /mnt/hgfs fuse.vmhgfs-fuse defaults,allow_other 0 0保存后执行sudo mount -a测试不再报错就说明配置成功。这个坑我踩过很多次每次都以为是VMware版本或Kali系统层面的问题最后发现就是fstab少了一行。4.3 分辨率上不去或黑屏关3D加速是正解现象安装open-vm-tools-desktop后分辨率依然锁定在800x600无法通过设置-显示里切换到更高分辨率。另一个极端是开3D加速后桌面一半黑屏窗口拖动有残影。原因Kali 2020.2的Xfce桌面与VMware虚拟显卡之间的3D加速兼容问题是真实存在的。虚拟机的3D能力不像物理显卡那样成熟在某些内核版本下反而会干扰正常的2D合成。解决思路先关闭3D加速。在VMware设置里选中虚拟机编辑设置显示器选项卡取消勾选加速3D图形重启虚拟机。绝大多数分辨率上不去黑屏残影窗口显示异常问题在这一步之后就会消失。如果关掉3D加速后分辨率依然不给你想要的大小手动添加分辨率用cvt命令生成显示模式的参数cvt 1920 1080 60复制输出结果里Modeline后面的内容执行xrandr --newmode 1920x1080_60.00 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync vsync xrandr --addmode Virtual1 1920x1080_60.00 xrandr --output Virtual1 --mode 1920x1080_60.00注意Virtual1是虚拟显示器的名称用xrandr不带参数就能看到当前输出设备的准确名称。这样改完立刻生效但重启会丢失想要持久化就把后两条命令写入~/.xprofile。5. 内核更新后硬件与虚拟机连环翻车网卡、VMware模块和grub这是Kali用户最容易破防的篇章。因为Kali是滚动发行版系统升级频繁内核版本隔三差五就变。每一次内核更新都可能把硬件驱动和引导环境炸一遍。5.1 无线网卡能识别但连不上固件缺失问题现象笔记本物理机上装了Kali任务栏的Wi-Fi图标能看到点击后扫描不到任何无线网络或者能扫描到但连接时一直转圈失败。有线网络完全正常。原因无线网卡硬件识别出来了但缺少固件firmware。Linux的无线驱动和Windows不一样Windows网卡驱动把固件打包在一起而Linux驱动只是代码固件需要单独安装。Kali默认镜像出于体积考虑并没有把所有闭源固件都包含进去。解决思路先用lspci或lsusb查无线网卡的厂商型号然后安装对应的固件包sudo apt install firmware-realtek firmware-iwlwifi firmware-b43-installer装完重启多数型号就能正常工作。需要说明的是如果网卡是Broadcom的某些型号安装firmware-b43-installer的同时还要确保系统里没有加载冲突的bcmwl模块。这个冲突很隐蔽安装后系统可能会出现两个驱动争抢网卡的情况表现为Wi-Fi开关失灵。最简单的处理办法是先卸载bcmwlsudo apt remove bcmwl-kernel-source这是一个典型的看似网卡坏了其实只是驱动打架的案例。碰到无线问题不要第一时间怪硬件先去dmesg日志里看固件加载是否报错dmesg | grep -i firmware我见过太多人为了无线网卡买外接USB网卡结果发现原装网卡只是缺了一个固件包。5.2 升级内核后VMware打不开编译vmmon和vmnet模块现象Kali系统apt upgrade升级了内核第二天打开VMware Workstation提示vmmon模块未加载或无法启动Virtual Machine Monitor虚拟机列表里任何系统都无法开机。原因VMware Workstation通过编译内核模块vmmon、vmnet来与宿主机内核通信。内核版本一更新旧模块就失效需要重新编译。解决思路先确保编译工具和当前内核头文件已安装sudo apt install build-essential linux-headers-$(uname -r)然后执行sudo vmware-modconfig --console --install-all这一步会重新编译所有VMware内核模块编译完成后再启动VMware一般就能正常打开虚拟机了。如果编译过程中报错多半是内核头文件对应的版本号和uname -r输出不一致。这种时候先重启一次系统确保当前运行的内核与已安装的headers包匹配。Kali 2020.2之后的内核推进非常快VMware新版本对老内核的兼容性总是在动态变化中。如果vmware-modconfig一直失败优先考虑把VMware升级到当前最新版本而不是和旧版本死磕。5.3 grub rescue紧急修复一条一条命令敲出来的恢复过程现象开机后不进系统弹出一个黑色终端界面提示grub rescue原因grub的引导配置或者引导模块文件丢失了。常见触发场景装了双系统后Windows更新重写了EFI引导项/boot独立分区的挂载UUID变了安装时EFI分区太小导致部分grub模块写不进去。解决思路grub rescue模式下系统还没完全起来很多命令不可用但我们可以用grub自身的命令把它拉起来。首先用ls查看所有磁盘和分区grub rescue ls输出类似(hd0) (hd0,gpt1) (hd0,gpt2) ...。逐个试探哪个分区里有grub模块grub rescue ls (hd0,gpt2)/boot/grub如果能列出normal.mod这类文件说明这个分区就是我们的根分区或boot分区。设置前缀并加载正常模块grub rescue set prefix(hd0,gpt2)/boot/grub grub rescue insmod normal grub rescue normal此时grub菜单会重新出现选择正常进入Kali系统。进系统后不要急着庆祝直接重装grub否则下次开机还会掉回rescue界面sudo grub-install /dev/sda sudo update-grub如果是UEFI启动grub-install需要指定EFI目录sudo grub-install --targetx86_64-efi --efi-directory/boot/efi --bootloader-idKali sudo update-grub这一套流程下来grub问题基本都能解决。实在不行启动Kali Live镜像用chroot进坏系统修复原理一样只不过先把系统根目录挂载到Live环境里再执行上面两条命令。6. 更隐蔽的小毛病与一套可复用的排查方法论6.1 桌面假死、面板消失之类看着像坏了但没坏现象鼠标还能动但桌面图标全部消失下面任务栏也没了右键点击桌面没有任何反应。很多人直接按电源键重启结果进系统后问题依旧。原因Xfce桌面会话的组件崩溃或者卡死了不是整个系统故障只靠重启会话组件就能恢复。解决思路首先尝试刷新桌面和面板xfdesktop --reload xfce4-panel -r如果面板进程彻底挂了直接重启进程pkill xfce4-panel xfce4-panel 还有一个更彻底的兜底方式退出当前会话重新登录通常就能恢复所有桌面组件。如果连登录界面都卡住了再考虑重启图形服务sudo systemctl restart lightdm这个命令只在Xfce Lightdm桌面环境组合下有效正好是Kali 2020.2的默认组合。遇到桌面假死先冷静判断是系统层面还是桌面层面。这种小问题一旦学会了恢复方法能帮你省下大量重装系统的时间。6.2 我的排错顺序日志优先日志真的会说话装了这么多次Kali我最大的感触是Kali的易碎感大部分来自信息不透明。很多问题实际上在日志里写得明明白白只是用户不知道去哪里看于是靠猜。我给自己定了一套排错顺序每次出问题都按这个顺序来效率比瞎试高得多第一步systemctl --failed看有没有关键服务启动失败。第二步journalctl -xe查看最近系统日志尤其是报错时间段的记录。第三步dmesg -T | grep -i error重点看内核层面的硬件初始化和驱动加载日志。第四步定位到具体服务后journalctl -u 服务名 --since 10分钟前看专属日志。举个例子共享目录挂不上不要先去改fstab先执行dmesg | grep vmhgfs如果输出提示fuse: device not found那是fuse内核模块没加载如果提示Host is unreachable那是VMware配置里的共享目录设置问题。根因不同处理方式完全不同只看结果去猜原因很容易南辕北辙。Kali的滚动更新模式决定了它的日志信息量远超普通Linux发行版。养成看日志的习惯是所有折腾党的必修课也是摆脱遇事不决就重装的唯一出路。6.3 给新手的兜底策略快照、Live镜像与重装心态最后说几句掏心窝子的话。如果你在Kali 2020.2里折腾到系统彻底起不来、grub也修不回、实在不知道下一步该怎么办不要觉得难为情重装不可耻反复重装也不可耻。但重装之前请为自己准备好三张安全网虚拟机用户务必在系统能正常用的时间点拍一个快照。VMware菜单里虚拟机-快照-拍摄快照只需要几秒钟。以后不管系统被折腾成什么样一个还原就能回到这个状态。物理机用户做一个Kali Live USB。系统进不去了就用Live USB启动至少能把磁盘上的重要数据拷贝出来。把关键配置文件备份到一个独立分区或U盘里。比如/etc/apt/sources.list、/etc/fstab、个人配置文件目录重装之后五分钟就能恢复到原来的工作环境。我个人在实际安装过程中最深的一个体会是Kali 2020.2安装阶段出的所有问题几乎都不是坏到只能重装的程度它们更像是一连串可以预测、可以绕过的路障。只要你愿意花时间看日志、理解版本背景、按部就班排查大部分坑都能填平。希望这篇长文能帮你在面对黑屏、报错和grub提示时少一点慌张多一点从容。
返回列表