2305 字
6 分钟
在MacBook Pro 2016上安装ArchLinux并与MacOS共存
在MacBook Pro 2016 上安装Arch Linux 并与 Mac OS共存
1.该文章的参考
2.开始安装前的准备
- 准备一个8G的U盘
- 前往Arch Linux官网下载ISO镜像
- 前往Rufus官网,下载Rufus用于创建 USB 启动盘
- 需要一点Linux基础,不是纯小白教程
- 可前往Arch Linux Wiki查看对应命令的详细使用方法
3.建立Arch Linux启动启动盘
- 打开下载好的Rufus
- 在主界面的设备选择中选择你插入的u盘
- 在引导类型位置,点击右边的“选择”按钮选择你下载好的镜像
- 其他参数默认即可,点击底部的“开始”按钮
- 如果出现弹窗,请选择“以ISO镜像模式写入”,并点击“OK”按钮
- 确保你U盘没有重要数据后再次点击“OK”按钮
- 等待ISO镜像写入完成
4.为安装Arch Linux 在Macbook上做准备
进入你的Macbook的Mac OS系统,打开磁盘管理并按以下步骤操作
- 在左边的列表中点击你Mac OS安装的磁盘(注意不要选择下面的卷,要选择整个磁盘)
- 点击顶部的分区按钮,进入后点击左边显示下方的“+”按钮,添加一个分区,大小请设置在30GB以上,分区格式随意
- 点击界面上的确认按钮,等待分区创建完毕
- 关闭你的Macbook
5.开始安装 Arch Linux
5.1 进入Arch Linux live
-
将你的U盘插入MacBook
-
开机,并安住“option”键,等待进入Mac的引导界面
-
在选择界面中选择出现的“EFI Boot”等,不是你Mac安装的磁盘
-
进入Arch Linux启动盘后选择第一个启动项
-
如果出现TTY终端界面溢出屏幕请重新启动,并进入启动盘的引导菜单,将选择光标放在对应的启动项,按“e”键进入启动项编辑,在末尾添加以下参数后回车
nomodeset5.2 联网
- 确保系统已经列出并启用了网络接口用ip-link检查:
ip link- 如果连接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- 确保你已经联到了网络使用,执行:
ping baidu.com- 如果ping失败,请检查以上是否连接成功
5.3 pacman换源
- 确保系统时间是同步的,执行:
timedatectl- 自动选择正确的CN源,执行:
reflector -a 12 -c cn -f 10 --sort rate --v --save /etc/pacman.d/mirrorlist- 确保以上命令不报错后,执行更新:
pacman -Sy archlinux-keyring5.4 对磁盘进行分区以及挂载
- 查看当前分区情况
- 查看所有存储设备以及分区大小:
fdisk -l- 查看分区以及分区挂载情况:
lsblk -pf- 通过fdisk查看,选择我们在Mac OS中分区,通过分区大小和文件系统格式分辨
- 使用分区工具修改分区表:
cfdisk /dev/要被分区的磁盘- 选择我们之前创建的分区,删除掉(注意不要删除掉Mac OS所在的分区)
- 然后选择新建并分配全部空间,选择保存并输入yes
- 将你的分区格式化为btrfs格式:
mkfs.btrfs /dev/要被格式化的磁盘- 创建子卷,防止使用快照恢复时把用户数据也一同恢复使用:
- 首先挂载分区:
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- 确保以上子卷创建完毕,并取消挂载,开始挂载子卷,以及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
- 挂载tmp子卷:
- 挂载efi分区(通过上面查看当前分区情况命令找出标出EFI…的分区):
moun -- mkdir /dev/你的EFI分区 /mnt/efi- 确保挂载完毕,在分区右边旁有显示的挂载目录
lsblk -pf5.5 开始安装Arch Linux
- 再次确认以上磁盘操作没有错误,并联网成功
- 执行以下下载并安装必要的包(必须全部安装成功)
- 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-progs3.安装基本软件包
- networkmanager (联网)
- vim(文本编辑)
- sudo(用户执行管理命令)
pacstrap /mnt networkmanager vim sudo- 安装对应CPU微码包,自行选择微码
pacstrap /mnt 你的软件包- 完成以上,生成fstab文件
genfstab -U /mnt > /mnt/etc/fstab5.6 chroot 到新安装的系统
- chroot到新系统:
arch-chroot /mnt- 确认提示符发生变化
5.6 chroot 内的操作
- 设置时间和时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime- 设置系统时区
timedatectl set-timezone Asia/Shanghai- 然后运行hwclock生成 /etc/adjtime:
hwclock --systohc6.编辑 /etc/locale.gen 文件:
- 将以下取消注释,去掉开头的#
- en_US.UTF-8 UTF-8
- zh_CN.UTF-8 UTF-8
vim /etc/locale.gen- 接着执行 locale-gen 以生成 locale 信息:
locale-gen- 然后创建 locale.conf文件,并编辑设定 LANG 变量:
vim /etc/locale.conf- 填入以下内容,并保存
LANG=en_US.UTF-8- 设置主机名:
vim /etc/hostname- 设置root账号密码(一定要设置):
vim /etc/hostname5.6.1 设置引导
- 安装引导需要用的包
pacman -S grub efibootmgr- 安装引导功能
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- 在/boot创建grub链接用来指向/efi/grub,防止后续引导写错位置
ln -s /efi/grub /boot/grub- 使用grub-mkconfig生成配置:
grub-mkconfig- 写入grub配置:
grub-mkconfig -o /boot/grub/grub.cfg- 搜索其他系统(如果你有需求,只是简单描述)
pacman -S os-prober- 然后执行
os-prober- 然后再次执行一次写入grub配置
- 编辑/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.cfg5.6.2 内存压缩
- 安装内存压缩的包:
pacman -S zram-generator- 配置zram,创建以下文件
vim /etc/systemd/zram-generator.conf- 写入以下配置:
[zram0]zram-size = ramcompression-algorithm = zstd- 修改grub文件
vim /etc/default/grub- 将GRUB_CMDLINE_LINUX_DEFAULT改为
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 zswap.enabled=0"- 重新生成配置
grub-mkconfig -o /boot/grub/grub.cfg5.6.3 退出chroot并重启
1.退出chroot
exit2.重启
reboot6.进入Arch Linux系统
6.1 进入引导界面
- 待开机时,按住”option”键,等待出现Mac的引导选择界面
- 出现多个引导,选择不是Mac OS的引导,请不要选择到U盘的引导
- 如果没有出现,请重新进人U盘并重新挂载并进入chroot进行引导的重新创建
6.2 进行联网
- 由于之前安装了其他的网络管理包,执行以下进行网络连接:
systemctl enable -- now NetworkManagernmtui- 使用之前的方法测试连接
6.3 更新全部软件包
pacman -Syu6.4 基础配置
6.4.1 默认文本编辑器设置
- 编辑以下文件:
vim /etc/environment- 添加以下内容:
EDITOR=vim6.5 创建用户
- 创建用户(部分软件无法在root下使用)
useradd -mG wheel 用户名- 设置密码
passwd 密码- 设置管理员权限,使用以下命令进入编辑:
- 取消%wheel ALL=(ALL : ALL) ALL的注释
visudo6.6 设置archlinuxcn仓库
- 编辑以下pacman配置文件
- 取消以下的注释
[multilib]Include = /etc/pacman.d/mirrorlist- 在文件末尾添加以下内容(可自行选择其他源)
[archlinuxcn]Server = https://mirrors.ustc.edu.cn/archlinuxcn/$archvim /etc/pacman.conf- 更新密钥
pacman -Sy archlinuxcn-keyring- 安装AUR助手
pacman -S yay paru6.7 配置快照
- 安装必要软件包
pacman -S snapper snap-pac btrfs-assistant grub-btrfs inotify-tools- 开启快照并重启
systemctl enable -- now grub-btrfsdreboot- 创建快照配置
- 根目录快照
snapper -c root create-config /- home目录快照
snapper -c home create-config /home- 创建第一个快照
- root快照
snapper -c root create -- description "helloworld"- home快照
snapper -c home create -- description "helloworld"- 更新grub配置
grub-mkconfig -o /boot/grub/grub.cfg6.7 备用内核安装
- 安装linux-lts内核
pacman -S linux-lts linux-lts-headers- 更新grub配置
grub-mkconfig -o /boot/grub/grub.cfg- 常用命令
//列出快照snapper -c root listbtrfs-assistant -l//回档btrfs-assistant -r 序号//使用后需重启6.8 驱动的安装
6.8.1 MacBookd的键盘以及touch bar的驱动
- 安装必要的编译依赖
sudo pacman -S --needed base-devel linux-lts-headers linux-zen-headers dkms git- 克隆并编译社区修复版驱动
git clone https://github.com/Heratiki/macbook12-spi-driver.git- 进入目录
cd macbook12-spi-driver- 将源码复制到 DKMS 的标准目录
sudo cp -r . /usr/src/applespi-0.1- 为内核编译并安装模块(注意请选择你安装的内核,如果有多个内核请分别编译安装)
- 查看内核版本
uname -rsudo dkms install -m applespi -v 0.1 -k 你的内核- 检查模块文件是否存在
find /lib/modules/$(uname -r)/updates/dkmsls -R /lib/modules/6.18.28-1-lts/updates/dkms/ | grep apple- 重新配置 mkinitcpio,编辑 /etc/mkinitcpio.conf
sudo vim /etc/mkinitcpio.conf- 修改 MODULES 行,确保包含所有必要模块:
MODULES=(applespi spi_pxa2xx_platform intel_lpss_pci apple_ibridge apple_ib_tb apple_ib_als)- 重建 initramfs 并重启
sudo mkinitcpio -P- 编译中没有出现 module not found 的错误后执行重启电脑,如有错误请尝试解决
6.8.2 其他驱动
- 请参考Arch Linux Wiki进行安装
分享
如果这篇文章对你有帮助,欢迎分享给更多人!
在MacBook Pro 2016上安装ArchLinux并与MacOS共存
https://bumiecloud.online/posts/markdown-tutorial/ 部分信息可能已经过时
随机文章 随机推荐
暂无数据






