mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
2305 字
6 分钟
在MacBook Pro 2016上安装ArchLinux并与MacOS共存
2026-05-16

在MacBook Pro 2016 上安装Arch Linux 并与 Mac OS共存#

1.该文章的参考#

2.开始安装前的准备#

  1. 准备一个8G的U盘
  2. 前往Arch Linux官网下载ISO镜像
  3. 前往Rufus官网,下载Rufus用于创建 USB 启动盘
  4. 需要一点Linux基础,不是纯小白教程
  5. 可前往Arch Linux Wiki查看对应命令的详细使用方法

3.建立Arch Linux启动启动盘#

  1. 打开下载好的Rufus
  2. 在主界面的设备选择中选择你插入的u盘
  3. 在引导类型位置,点击右边的“选择”按钮选择你下载好的镜像
  4. 其他参数默认即可,点击底部的“开始”按钮
  5. 如果出现弹窗,请选择“以ISO镜像模式写入”,并点击“OK”按钮
  6. 确保你U盘没有重要数据后再次点击“OK”按钮
  7. 等待ISO镜像写入完成

4.为安装Arch Linux 在Macbook上做准备#

进入你的Macbook的Mac OS系统,打开磁盘管理并按以下步骤操作#

  1. 在左边的列表中点击你Mac OS安装的磁盘(注意不要选择下面的卷,要选择整个磁盘
  2. 点击顶部的分区按钮,进入后点击左边显示下方的“+”按钮,添加一个分区,大小请设置在30GB以上,分区格式随意
  3. 点击界面上的确认按钮,等待分区创建完毕
  4. 关闭你的Macbook

5.开始安装 Arch Linux#

5.1 进入Arch Linux live#

  1. 将你的U盘插入MacBook

  2. 开机,并安住“option”键,等待进入Mac的引导界面

  3. 在选择界面中选择出现的“EFI Boot”等,不是你Mac安装的磁盘

  4. 进入Arch Linux启动盘后选择第一个启动项

  5. 如果出现TTY终端界面溢出屏幕请重新启动,并进入启动盘的引导菜单,将选择光标放在对应的启动项,按“e”键进入启动项编辑,在末尾添加以下参数后回车

nomodeset

5.2 联网#

  1. 确保系统已经列出并启用了网络接口用ip-link检查:
ip link
  • 对于无线局域网(Wi-Fi)和无线广域网(WWAN),请确保网卡未被 rfkill 禁用。
  • 连接到网络:
    • 有线以太网——连接网线。
    • WiFi——使用 iwctl 认证无线网络。
  1. 如果连接WIFI,通过iwd进行无线网络连接,要进入交互式提示符,执行:
iwctl
  • 如果不知道你的网络设备名称,请列出所有 WiFi 设备:
[iwd]# device list
  • 如果设备或其相应的适配器已关闭,请将其打开。
[iwd]# device name set-property Powered on
[iwd]# adapter adapter set-property Powered on
  • 然后,要开始扫描网络(注意:这个命令不会输出任何内容),执行:
[iwd]# station name scan
  • 再然后,就可以列出所有可用的网络:
[iwd]# station name get-networks
  • 最后,要连接到一个网络:
[iwd]# station name connect SSID
  • 要断开网络连接:
[iwd]# station device disconnect
  • 连接成功后,退出交互式提示符,执行:
[iwd]# exit
  1. 确保你已经联到了网络使用,执行:
ping baidu.com
  1. 如果ping失败,请检查以上是否连接成功

5.3 pacman换源#

  1. 确保系统时间是同步的,执行:
timedatectl
  1. 自动选择正确的CN源,执行:
reflector -a 12 -c cn -f 10 --sort rate --v --save /etc/pacman.d/mirrorlist
  1. 确保以上命令不报错后,执行更新:
pacman -Sy archlinux-keyring

5.4 对磁盘进行分区以及挂载#

  1. 查看当前分区情况
  • 查看所有存储设备以及分区大小:
fdisk -l
  • 查看分区以及分区挂载情况:
lsblk -pf
  1. 通过fdisk查看,选择我们在Mac OS中分区,通过分区大小和文件系统格式分辨
  2. 使用分区工具修改分区表:
cfdisk /dev/要被分区的磁盘
  1. 选择我们之前创建的分区,删除掉(注意不要删除掉Mac OS所在的分区)
  2. 然后选择新建并分配全部空间,选择保存并输入yes
  3. 将你的分区格式化为btrfs格式:
mkfs.btrfs /dev/要被格式化的磁盘
  1. 创建子卷,防止使用快照恢复时把用户数据也一同恢复使用:
  • 首先挂载分区:
mount -t btrfs /dev/创建的分区 /mnt
  • 创建根子卷,执行:
btrfs subvolume create /mnt/@
  • 创建home子卷,执行:
btrfs subvolume create /mnt/@home
  • 可选子卷

    • tmp子卷:
    btrfs subvolume create /mnt/@tmp
    • log子卷:
    btrfs subvolume create /mnt/@log
  • 创建完毕后取消挂载:

umount /mnt
  1. 确保以上子卷创建完毕,并取消挂载,开始挂载子卷,以及efi分区
  • 挂载根子卷:
    mount -t btrfs -o subvol=/@,compress=zstd /dev/创建的分区 /mnt
  • 挂载home子卷:
    mount --mkdir -t btrfs -o subvol=/@home, compress=zstd /dev/创建的分区 /mnt/home
  • 如果你创建了tmp子卷和log子卷
    • 挂载tmp子卷:
      mount --mkdir -t btrfs -o subvol=/@tmp, compress=zstd /dev/创建的分区 /mnt/tmp
    • 挂载log子卷:
      mount --mkdir -t btrfs -o subvol=/@log, compress=zstd /dev/创建的分区 /mnt/var/log
  • 挂载efi分区(通过上面查看当前分区情况命令找出标出EFI…的分区):
moun -- mkdir /dev/你的EFI分区 /mnt/efi
  • 确保挂载完毕,在分区右边旁有显示的挂载目录
lsblk -pf

5.5 开始安装Arch Linux#

  1. 再次确认以上磁盘操作没有错误,并联网成功
  2. 执行以下下载并安装必要的包(必须全部安装成功
  • base base-devel linux-zen linux-zen-headers linux-firmware btrfs-progs是基本需要的包
  • 我选择了linux-zen内核,你可以选择其他内核
pacstrap -K /mnt base base-devel linux-zen linux-zen-headers linux-firmware btrfs-progs

3.安装基本软件包

  • networkmanager (联网)
  • vim(文本编辑)
  • sudo(用户执行管理命令)
pacstrap /mnt networkmanager vim sudo
  • 安装对应CPU微码包,自行选择微码
pacstrap /mnt 你的软件包
  1. 完成以上,生成fstab文件
genfstab -U /mnt > /mnt/etc/fstab

5.6 chroot 到新安装的系统#

  1. chroot到新系统:
arch-chroot /mnt
  1. 确认提示符发生变化

5.6 chroot 内的操作#

  1. 设置时间和时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  1. 设置系统时区
timedatectl set-timezone Asia/Shanghai
  1. 然后运行hwclock生成 /etc/adjtime:
hwclock --systohc

6.编辑 /etc/locale.gen 文件:

  • 将以下取消注释,去掉开头的#
    • en_US.UTF-8 UTF-8
    • zh_CN.UTF-8 UTF-8
vim /etc/locale.gen
  1. 接着执行 locale-gen 以生成 locale 信息:
locale-gen
  1. 然后创建 locale.conf文件,并编辑设定 LANG 变量:
vim /etc/locale.conf
  • 填入以下内容,并保存
LANG=en_US.UTF-8
  1. 设置主机名:
vim /etc/hostname
  1. 设置root账号密码(一定要设置):
vim /etc/hostname

5.6.1 设置引导#

  1. 安装引导需要用的包
pacman -S grub efibootmgr
  1. 安装引导功能
grub-install --target=x86_64-efi --efi-directory=/efi --boot-directory=/efi
  • 保险起见如果你后面重启引导菜单未出现着使用以下命令:
grub-install --target=x86_64-efi --efi-directory=/efi --boot-directory=/efi --removable
  1. 在/boot创建grub链接用来指向/efi/grub,防止后续引导写错位置
ln -s /efi/grub /boot/grub
  1. 使用grub-mkconfig生成配置:
grub-mkconfig
  1. 写入grub配置:
grub-mkconfig -o /boot/grub/grub.cfg
  1. 搜索其他系统(如果你有需求,只是简单描述)
pacman -S os-prober
  • 然后执行
os-prober
  • 然后再次执行一次写入grub配置
  1. 编辑/etc/default/grub文件:
vim /etc/default/grub
  • 去掉GRUB_DISABLE_OS_PROBER=false的注释
  • 去掉GRUB_SAVEDEFAULT=true的注释
  • 将GRUB_DEFAULT的值改为saved,变为
GRUB_DEFAULT=saved
  • 将GRUB_CMDLINE_LINUX_DEFAULT的值改为loglevel=5,变为
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5"
  • 重新生成配置
grub-mkconfig -o /boot/grub/grub.cfg

5.6.2 内存压缩#

  1. 安装内存压缩的包:
pacman -S zram-generator
  1. 配置zram,创建以下文件
vim /etc/systemd/zram-generator.conf
  1. 写入以下配置:
[zram0]
zram-size = ram
compression-algorithm = zstd
  1. 修改grub文件
vim /etc/default/grub
  1. 将GRUB_CMDLINE_LINUX_DEFAULT改为
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 zswap.enabled=0"
  1. 重新生成配置
grub-mkconfig -o /boot/grub/grub.cfg

5.6.3 退出chroot并重启#

1.退出chroot

exit

2.重启

reboot

6.进入Arch Linux系统#

6.1 进入引导界面#

  1. 待开机时,按住”option”键,等待出现Mac的引导选择界面
  2. 出现多个引导,选择不是Mac OS的引导,请不要选择到U盘的引导
  3. 如果没有出现,请重新进人U盘并重新挂载并进入chroot进行引导的重新创建

6.2 进行联网#

  1. 由于之前安装了其他的网络管理包,执行以下进行网络连接:
systemctl enable -- now NetworkManager
nmtui
  1. 使用之前的方法测试连接

6.3 更新全部软件包#

pacman -Syu

6.4 基础配置#

6.4.1 默认文本编辑器设置#

  1. 编辑以下文件:
vim /etc/environment
  1. 添加以下内容:
EDITOR=vim

6.5 创建用户#

  1. 创建用户(部分软件无法在root下使用)
useradd -mG wheel 用户名
  1. 设置密码
passwd 密码
  1. 设置管理员权限,使用以下命令进入编辑:
  • 取消%wheel ALL=(ALL : ALL) ALL的注释
visudo

6.6 设置archlinuxcn仓库#

  1. 编辑以下pacman配置文件
  • 取消以下的注释
[multilib]
Include = /etc/pacman.d/mirrorlist
  • 在文件末尾添加以下内容(可自行选择其他源)
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
vim /etc/pacman.conf
  1. 更新密钥
pacman -Sy archlinuxcn-keyring
  1. 安装AUR助手
pacman -S yay paru

6.7 配置快照#

  1. 安装必要软件包
pacman -S snapper snap-pac btrfs-assistant grub-btrfs inotify-tools
  1. 开启快照并重启
systemctl enable -- now grub-btrfsd
reboot
  1. 创建快照配置
  • 根目录快照
snapper -c root create-config /
  • home目录快照
snapper -c home create-config /home
  1. 创建第一个快照
  • root快照
snapper -c root create -- description "helloworld"
  • home快照
snapper -c home create -- description "helloworld"
  1. 更新grub配置
grub-mkconfig -o /boot/grub/grub.cfg

6.7 备用内核安装#

  1. 安装linux-lts内核
pacman -S linux-lts linux-lts-headers
  1. 更新grub配置
grub-mkconfig -o /boot/grub/grub.cfg
  1. 常用命令
//列出快照
snapper -c root list
btrfs-assistant -l
//回档
btrfs-assistant -r 序号
//使用后需重启

6.8 驱动的安装#

6.8.1 MacBookd的键盘以及touch bar的驱动#

  1. 安装必要的编译依赖
sudo pacman -S --needed base-devel linux-lts-headers linux-zen-headers dkms git
  1. 克隆并编译社区修复版驱动
git clone https://github.com/Heratiki/macbook12-spi-driver.git
  1. 进入目录
cd macbook12-spi-driver
  1. 将源码复制到 DKMS 的标准目录
sudo cp -r . /usr/src/applespi-0.1
  1. 为内核编译并安装模块(注意请选择你安装的内核,如果有多个内核请分别编译安装)
  • 查看内核版本
uname -r
sudo dkms install -m applespi -v 0.1 -k 你的内核
  1. 检查模块文件是否存在
find /lib/modules/$(uname -r)/updates/dkms
ls -R /lib/modules/6.18.28-1-lts/updates/dkms/ | grep apple
  1. 重新配置 mkinitcpio,编辑 /etc/mkinitcpio.conf
sudo vim /etc/mkinitcpio.conf
  1. 修改 MODULES 行,确保包含所有必要模块:
MODULES=(applespi spi_pxa2xx_platform intel_lpss_pci apple_ibridge apple_ib_tb apple_ib_als)
  1. 重建 initramfs 并重启
sudo mkinitcpio -P
  1. 编译中没有出现 module not found 的错误后执行重启电脑,如有错误请尝试解决

6.8.2 其他驱动#

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

在MacBook Pro 2016上安装ArchLinux并与MacOS共存
https://bumiecloud.online/posts/markdown-tutorial/
作者
不灭QAQ
发布于
2026-05-16
许可协议
Unlicensed

部分信息可能已经过时

随机文章 随机推荐
暂无数据

目录