树莓派安装Kali Linux¶
Kali Linux支持多种平台运行,对于 ARM Atlas 设备,通过 Kali-ARM-Build-Scripts 工具,提供了不同 Kali Linux ARM Images ,并且针对不同的树莓派设备提供了32位和64位镜像。
备注
我准备在 树莓派Raspberry Pi 400 和 树莓派Raspberry Pi Zero 上分别实践64位和32位的ARM版本Kali Linux,学习Linux安全技术以及尝试ARM平台开发。
安装¶
ARM版本的Kali Linux安装和其他ARM Linux操作系统安装方法类似,都是采用 dd
命令将镜像复制到SD卡,然后通过SD卡启动设备:
xzcat kali-linux-2021.1-rpi4-nexmon-64.img.xz | dd of=/dev/sdb bs=4M
启动设备之后,首次登陆用户名和密码都是 kali
需要立即修改账号密码。见 Kali’s Default Credentials
启动和运行¶
首次启动Kali Linux,系统会自动扩展文件系统到整个SD卡,默认启动到图形登陆界面。
和 Raspberry Pi 400的4K显示 相似,默认时显示器周边有黑边,这和 Underscan/overscan
相关,不过Kali Linux Raspberry Pi没有提供 raspi-config
,所以我参考 Raspberry Pi 400的4K显示 通过 raspi-config
工具生成的 /boot/config.txt
修改如下:
disable_overscan=1
此外,还需要激活:
dtoverlay=vc4-fkms-v3d
激活了 dtoverlay=vc4-fkms-v3d
才能识别出我的4k显示器,并支持30Hz下4k显示
初始设置¶
Kali Linux 2021.1 发行版默认优化已经非常完善,无论Xfce 4.16的界面风格和终端模拟器QTerminal结合zsh,已经让我非常顺手了。
修订一下默认的时区:
unlink /etc/localtime ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
这样默认本地时间就能够正确显示。
设置本地编码
locale
echo "en_US.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen sudo locale-gen
备注
如果不正确设置 locale
,则很多命令执行时候会出现设置locale报错,类似:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LC_TERMINAL = "iTerm2",
LANG = (unset)
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
...
不过,在执行 virsh list
依然提示信息:
setlocale: No such file or directory
通过执行 LANG=en_US.UTF-8 locale
查看可以看到:
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE=UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
可以看到 LC_CTYPE
和 LC_ALL
没有调整成 en_US.UTF-8
,你可以通过设置环境变量 LC_CTYPE
和 LC_ALL
来解决这个问题:
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
则再执行 virsh list
就不再报错。
或者重启主机也可以解决。
以上参考 “setlocale: No such file or directory” on clean Debian installation #144
为了方便开发学习,设置 Python virtualenv 完成Python 3开发环境:
sudo apt install python3-venv cd ~ python3 -m venv venv3 source venv3/bin/activate
写文档 安装Sphinx环境:
pip install sphinx pip install sphinx_rtd_theme pip install sphinxnotes-strike
然后可以继续撰写我的 Cloud Atlas
Kali Linux 2021.1 Release¶
我所使用的Kali Linux 2021.1版本是2021年2月24日发布,具有很多有趣的特性:
默认采用 Xfce 4.16 版本: Xfce 4.16当前最新的 xfce 稳定版本(2020年12月22日发布),Kali Linux在此基础上作了优化(基于Xfce调优了GTK3 theme),形成了非常美观的现代化界面

提供了可选的 KDE 5.20 (Plasma) 作为Kali官方支持的桌面,安装过程也可以选择GNOME。此外,系统安装完成后,还可以选择安装Enlightenment, i3, LXDE 和 MATE
提供了不同终端工具
提供了
command-not-found
工具来帮助使用(当输入命令错误时会提供相近命令提示),激活方法如下:# enable command-not-found if installed if [ -f /etc/zsh_command_not_found ]; then . /etc/zsh_command_not_found fi
切换窗口管理器¶
虽然 xfce 相对轻量,但是随着功能逐渐丰富,其内存使用率已经逐渐追平GNOME和KDE(启动后内存占用700+MB)。对于 树莓派Raspberry Pi 400 这样硬件有限的平台,已经非常沉重。Kali Linux发行版提供的 sway - i3兼容Wayland compositor 可以充分利用屏幕空间并且使用资源非常少,所以我改为 运行sway窗口管理器
使用体验¶
Kali Linux可以说是非常完整的桌面系统,即使抛却系统集成的大量hacker工具,从桌面角度来说,也提供了非常完整的体验,基本上一个开发或者运维工作者需要的工具都已经默认安装,并且采用了轻量级的 xfce ,使得即使在 树莓派Raspberry Pi 400 这样非常廉价的ARM设备上也运行流畅(需要精心裁剪)。
我在 Real Atlas 的桌面系统,就采用运行在 树莓派Raspberry Pi 400 上的Kali,目标是把所有复杂运算和开发工作都迁移到自己构建的云计算平台,本地只采用非常轻量级的移动设备工作。这方面经验将不断磨炼完善…