在 MBP 2013 上面安装 Kali + macOS 双系统

最近突发奇想,放抽屉里很久的 Macbook Pro 2013 用的是 intel 处理器,相较于 arm 架构的苹果 M 系芯片,成功安装 Linux 的可能性还是不小的,遂打算装个 Linux 玩。这里记录下安装时要注意的一些步骤,以及安装完成后打驱动的方式,防止日后自己手贱导致要重装系统的时候又要到网上到处找资料。

1. macOS + Win10 + Ubuntu

在装 Linux 之前,Mac 就已经通过自带的启动转换助理安装了 Win10 实现了双系统。
安装的第一个 Linux 发行版是 Ubuntu 22.04.4 LTS,安装前从 macOS 所在的主分区中划分了 10 GB 出来给 Ubuntu 用。划分过程中还报错了,但是依旧划分出来了:

image.jpg

之后尝试将 Ubuntu 的镜像文件放到 Ventoy 做的装机盘里面启动 PE,虽然能进 PE,但是选择镜像文件后无法引导进入,会报 Not a Secure Boot Platform 14 的错误,后面谷歌了下,发现是 Ventoy 保护支持苹果的机器。后面还是老老实实用 Rufus 把镜像文件刻录到U盘里:

7.webp

之后就是正常的 Ubuntu 安装过程,其中需要注意的是 Ubuntu 的 grub 要安装在 Windows 的 Boot MGR 分区里:

2.jpg

这样才可以在启动 Windows 的时候选择是否启动 Ubuntu。
完成系统安装后开机就能直接使用,网卡驱动也是齐全的,能正常调用蓝牙和 WiFi。只有相机驱动不确定是否能运行,因为我忘记打开相机进行测试了。后面感觉一开始分的那 10GB 存储太少了,装完机就只剩 1.7GB(而且还是最小化安装的情况下):

3.jpg

就从 Windows 的 NTFS 分区中又划分了 10GB 出来,结果就悲剧了,开机进 grub 引导菜单时,选择 Windows 开机会直接黑屏,而 Ubuntu 却正常,后面还是用另一个装机盘进 WePE,用里面的 DISM++ 工具修复了下引导,才能正常启动 Windows。后面又进 Ubuntu,使用 GParted 工具将空出来的 10GB 添加到了 Ubuntu 的 EXT4 分区,重启之后就彻底寄了,直接是黑屏,grub 启动菜单也不显示,重启时按住 option 键进如磁盘选择,结果一个硬盘也不显示,最后只能 Command + R 进入恢复模式,清空整个硬盘,然后联网重装 MAC OS。

2. macOS + Kali

经过这次分区翻车,在装好 macOS 后就没再打算装 Windows 了,把空间留给装 Linux,省的后面分区又翻车。同时,考虑到 Ubuntu 已经在好几台物理机和云主机上安装了,就有些无味了,干脆直接上 Kali,毕竟还没在物理机上面装过 Kali。

123

从 Kali 官网下载好当前最新的 2024.1 版本的镜像文件后,也是一样用 Rufus 将镜像刻录到U盘中,然后选择U盘启动,之后也是一样的引导式安装,不过需要注意的是在 2K 分辨率下选择图形化安装会使得 DPI 特别的小,显示的文字也全集中在屏幕左上角,看着特别费劲,因此需要选择经典的终端式界面来安装 Kali(安装流程以及选项和图形化安装没有任何区别)。其次是安装过程中触控板和无线会用不了,原因 Kali 官方也解释了,镜像文件中默认不含无线功能,触控板用不了也无实际影响,只用方向键和 Tab 键就足够了。而无线用不了就只能使用 USB 转 RJ45 的转换器,或者用安卓的 USB 网络共享功能给 Kali 安装器联网,前者我没试,因为转换器落学校了,而后者在给 Kali 连接上去后,虽然通过 DHCP 获取到了 IP,但却在安装软件的过程中失败了(实在不明白为什么Kali的安装必须要联网,4GB的镜像难道就不是直接从中释放相关软件吗),无奈只能将所有软件包取消勾选来跳过联网安装:

5.webp

等系统装完后,开机就会进入一个命令行界面的 Kali,此时需用用以下命令来安装元软件包(包括了桌面环境以及常见渗透工具):

1
sudo apt install -y kali-linux-default

4.jpg

安装完后重启就会直接进入 Kali 的图形化 grub 引导菜单:

6.webp

倒计时结束或者手动启动后,开机就能看到图形化的 Kali 了:

8.webp

2.1. 网卡驱动

Kali 不同于 Ubuntu,安装完成后使用不了无线网络,需要手动装驱动。
从网上找了半天,搜出来的安装方式都不可用,后面还是全能的 YouTube 帮了大忙,根据这个视频:https://www.youtube.com/watch?v=7Xt9hd7H9lk ,几条命令就该搞定了网卡驱动:

1
2
3
4
5
6
7
8
9
10
11
12
# 查看网卡型号,可以看到是博通的BCM4360
lspci -vnn | grep -i net

# 安装 wl 驱动程序
sudo apt-get update
sudo apt-get install linux-headers-$(uname -r | sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms

# 移除冲突的预装驱动程序
modprobe -r b44 b43 b43legacy ssb brcmsmac

# 加载 wl 驱动程序
modprobe wl

执行完以上命令后,重启电脑就能使用无线网了,但蓝牙还用不了,需要使用以下命令启用:

1
2
3
sudo systemctl enable bluetooth
sudo systemctl start bluetooth
sudo systemctl status bluetooth

9.webp

2.2. 相机驱动

https://github.com/patjak/facetimehd/wiki

根据上面项目的维基逐步操作,重启后 apt 安装 guvcview 相机客户端并启动,即可正常调用摄像头并看到摄像画面。
需要注意的几点是,安装步骤参考系统为 Debian,其次提取传感器校准文件(色彩文件)时,需要从苹果官方下载一个 500MB 的驱动包,然后再从中提取出相关文件,这里直接给出驱动包中的要用到的 AppleCamera64.exe 文件,节省一部分时间和流量:https://blog.lololowe.com/file/AppleCamera64.exe
测试相机功能使用的软件不能是 cheese(茄子),会花屏。

10.webp

11.webp

2.3. 风扇控制

Mac 的风扇控制在 Windows 下可以用 Macs Fan Control,在 Mac OS 下可以用 stats,而 Linux 可以用 mbpfan:

https://github.com/linux-on-mac/mbpfan

sudo apt install mbpfan 即可安装 mbpfan 的最新发行版。使用以下命令即可启动 mbpfan:

1
2
3
sudo systemctl enable mbpfan
sudo systemctl start mbpfan
sudo systemctl status mbpfan

配置文件在 /etc/mbpfan.conf,我的配置如下(汉化了注释):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 请参考 https://ineed.coffee/3838/a-beginners-tutorial-for-mbpfan-under-ubuntu 查看数值
#
# mbpfan 将从 applesmc 驱动程序生成的文件中加载最大/最小速度。如果找不到这些文件,它将将所有风扇设置为默认值,min_speed = 2000 和 max_speed = 6200
# 通过在此配置中设置速度值,将覆盖以下位置找到的任何内容:
# /sys/devices/platform/applesmc.768/fan*_min
# /sys/devices/platform/applesmc.768/fan*_max
# 或默认值。
#
# 可通过使用 min_fan*_speed 和 max_fan*_speed 配置键来配置多个风扇
# 使用的数字将与用于控制风扇速度的 applesmc 驱动程序中的风扇文件的文件号相关联。
#
min_fan1_speed = 3000 # 将 "cat /sys/devices/platform/applesmc.768/fan*_min" 的*最低*值放在这里
max_fan1_speed = 6200 # 将 "cat /sys/devices/platform/applesmc.768/fan*_max" 的*最高*值放在这里

# 温度单位为摄氏度
low_temp = 60 # 如果温度低于此值,风扇将以最低速度运行
high_temp = 60 # 如果温度高于此值,风扇速度将逐渐增加
max_temp = 75 # 如果温度高于此值,风扇将以最大速度运行
polling_interval = 1 # 轮询时间,默认为 1 秒

查看风扇转速可以使用 s-tui,或者使用 Kali 内置的”传感器查看器”:

12.webp

2.4. 修改键盘按键

https://wiki.archlinux.org/title/Apple_Keyboard#hid_apple_module_options

取消F[num]默认为功能键:

1
2
3
4
5
6
# 重启失效
echo 2 | sudo tee -a /sys/module/hid_apple/parameters/fnmode

# 始终生效
echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u

交换 fn 键和左 CTRL键(外接盘时不要用):

1
2
3
4
5
6
# 重启失效
echo 1 | sudo tee /sys/module/hid_apple/parameters/swap_fn_leftctrl

# 始终生效
echo options hid_apple swap_fn_leftctrl=1 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u

3. Kali 常用设置

3.1. SSH

1
2
3
4
sudo systemctl enable ssh --now  # 开机自启同时立即启动
echo PermitRootLogin yes | sudo tee -a /etc/ssh/sshd_config # 允许root用户登录ssh
sudo systemctl restart ssh # 重启ssh
sudo systemctl status ssh # 查看运行状态

3.2. noVNC

https://www.kali.org/docs/general-use/novnc-kali-in-browser/

1
2
3
4
sudo apt update
sudo apt install -y novnc x11vnc
x11vnc -display :0 -autoport -localhost -nopw -bg -xkb -ncache -ncache_cr -quiet -forever # 启动 VNC 会话
/usr/share/novnc/utils/novnc_proxy --listen 8081 --vnc localhost:5900 # http 代理 VNC
1
ssh kali@192.168.13.37 -L 8081:localhost:8081  # 必须通过SSH的端口转发连接 VNC

3.3. 简中语言

1
2
sudo dpkg-reconfigure locales  # 勾选"zh_CN.UTF-8 UTF-8"
xfce4-session-logout --logout # 注销桌面重新登录后生效

3.4. 换源

软件源测速:

1
2
3
wget -O /dev/null http://http.kali.org/kali/dists/kali-rolling/main/binary-amd64/Packages.gz  # 官方源
wget -O /dev/null https://mirrors.tuna.tsinghua.edu.cn/kali/dists/kali-rolling/main/binary-amd64/Packages.gz # 清华源
wget -O /dev/null https://mirrors.aliyun.com/kali/dists/kali-rolling/main/binary-amd64/Packages.gz # 阿里云源

清华大学镜像源官网:https://mirrors.tuna.tsinghua.edu.cn/help/kali/
阿里云镜像源官网:https://developer.aliyun.com/mirror/kali/

1
2
3
sudo sed -i "s@http://http.kali.org/kali@https://mirrors.aliyun.com/kali@g" /etc/apt/sources.list  # 更换阿里源
sudo sed -i "s@http://http.kali.org/kali@https://mirrors.tuna.tsinghua.edu.cn/kali@g" /etc/apt/sources.list # 更换清华源
sudo apt update # 更新软件源仓库

3.5. 中文输入法

1
2
3
sudo apt-get install ibus ibus-pinyin  # 安装
im-config # 启用iBus
ibus-setup # 添加中文输入法以及关闭 “在应用程序窗口中启用内嵌编辑器”,防止鼠标双击会删除文本

3.6. Docker

https://docs.docker.com/engine/install/debian/#install-using-the-repository

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 添加 GPG 密钥
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 添加软件源
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
bookworm stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker version

sudo docker run --rm hello-world

AWVS:https://hub.docker.com/r/secfa/docker-awvs

3.7. Tor 浏览器

https://www.kali.org/docs/tools/tor/

1
2
3
sudo apt update
sudo apt install -y tor torbrowser-launcher
torbrowser-launcher # 更新并启动 Tor

3.8. VS Code

https://code.visualstudio.com/docs/setup/linux

1
2
3
4
5
6
7
8
9
sudo apt-get install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" |sudo tee /etc/apt/sources.list.d/vscode.list > /dev/null
rm -f packages.microsoft.gpg

sudo apt install apt-transport-https
sudo apt update
sudo apt install code # or code-insiders

3.9. Spark Store

https://spark-app.store/download

sudo apt install ./*.deb 报错则需要将软件包移至 /tmp 目录安装。

3.10. 修复登录页面 DPI 过小

https://www.kali.org/docs/general-use/hidpi/#login-screen---lightdm

1
2
# sudo vim /etc/lightdm/lightdm-gtk-greeter.conf
xft-dpi = 200