MacbookPro 安装ArchLInux 系统
本文最后更新于:2023年10月22日 凌晨
家里刚好有一台2019年的macbook pro,这台intel的macbook 在多数情况下已经是有点卡了,最近在网上看了比较多的arch linux的资料,想着放着也没用因此就开动搞搞。
I. 前置在MacOS上进行准备
1. 创建分区
先在Macbook中使用磁盘工具创建一个分区,这个分区后面会给到ArchLinux使用:
选择分区:
选择创建分区:
设置想要的大小,然后点击完成等待创建完成。
2. 制作引导盘
可以直接参考这里
- 在这里下载最新的t2的arch linux
- 插入一个U盘到Mac
- 打开terminal
- 执行
diskutil list
来查看插入的U盘名称,假设是/dev/disk2
- 执行以下指令(假设你的上面提到的iso已经下载到了
path/to/linux.iso
目录)
1 |
|
在执行过程中可以按ctrl+T
来查看进度。
3. 创建Wifi与蓝牙驱动引导
参考这个教程
由于这块的驱动Linux与Mac系统是共用的,因此这里我们直接创建一个分区并且拷贝这个引导,便于一会儿使用。
下载这个脚本执行即可。后面安装ArchLinux时候会用到。
II. 关闭安全引导
参照这里
禁用安全启动。 Apple 的安全启动实现在启用时不允许启动除 macOS 或 Windows 之外的任何系统(甚至不允许启动 shim 签名的 GRUB)。我们需要禁用它:
- 关机
- 开启并按住
Command-R
直到黑屏闪烁,Mac 将在 macOS 恢复模式下启动 - 从菜单栏中选择“实用程序”>“启动安全实用程序”
- 进入启动安全实用程序后
- 将安全启动设置为无安全
- 将允许启动媒体设置为允许从外部或可移动媒体启动
III. 启动安装
- 关机
- 插入U盘
- 按住
option
按键,并且开启,使Mac进入启动引导管理页面 - 选择EFI的选项,如果有多个就选择最后一个(前一个应该是前面你创建的wifi与蓝牙驱动的efi分区)
- 此时就进入了ArchLinux安装页面
1. 创建分区
1 |
|
这里需要注意的是这里是抹除了整个macos,如果不希望抹掉macos,可以参考该教程
具体的fdisk
操作不懂的可以可以直接参考这个作者: Macbook Pro安装arch linux - 知乎(当然也可以考虑使用cfdisk
,这个更可视化些),如下图:
分区写入后,进行格式化:
1 |
|
然后进行挂载操作:
1 |
|
2. wifi驱动还原并联网
通过fdisk -l
查看有一个分区是就几百兆的efi,我们假设叫/dev/nvme0n1p1
,那么执行:
1 |
|
检查是否正常恢复:
1 |
|
此时如果输出类似的说明成功:
1 |
|
连接wifi,参考iwctl的教程:
1 |
|
检测有哪些可用的:
1 |
|
检测有哪些wifi(假设你检测出来可用的device叫wlan0
:
1 |
|
连接wifi(假设你检测出来可用的Wifi叫WE
):
1 |
|
此时网络已经正常连接上了。
3. 时区配置
修改为中国时区
默认为UTC 0的时区,修改为亚洲上海时区:
1 |
|
将你的硬件时钟设置为协调世界时(UTC):
1 |
|
自动同步到NTP服务器:
1 |
|
查看状态
1 |
|
II. 安装
参考该教程
1. pacstrap安装
如果您打算使用 systemd-boot 作为引导加载程序,请省略其中的 grub efibootmgr
软件包,您可以选择使用 Xanmod 内核。在这种情况下,请将 linux-t2
替换为 linux-xanmod-t2
。
1 |
|
通过添加以下内容将存储库添加到 /mnt/etc/pacman.conf
:
1 |
|
将 apple-bce
添加到 /etc/mkinitcpio.conf
中的 MODULES
列表中,然后运行 mkinitcpio -P
2. 配置
- 生成挂载配置到系统中,确保启动时正确挂载:
genfstab -U /mnt >> /mnt/etc/fstab
- 切换到新系统:
arch-chroot /mnt
- 其他配置直接参考这个教程即可:
1
2
3
4
5
6
7
8
9
10
11
12
13
14genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt #Change root到新安装的系统
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime #设置时区为上海
hwclock --systohc #这个命令假定硬件时间已经被设置为URC时间
vim /etc/locale.gen #然后移除需要的地区的注释,即前面的#号。我去除的下面4个前面的#号
en_US.UTF-8
zh_CN.UTF-8
zh_HK.UTF-8
zh_TW.UTF-8
locale-gen #本地化的程序与库若要本地化文本,都依赖Locale,其明确规定地域、货币、时区日期
的格式、字符排列方式和其他本地化标准等等。
vim /etc/locale.conf #创建locale.conf并编辑LANG这一变量。
写入LANG=en_US.UTF-8 #将系统locale设置为en_US.UTF-8,系统的Log就会用英文显示,更容易
判断和处理问题。不推荐在此设置任何中文 locale,会导致 TTY 乱码。 - 网络设置
1
2
3
4
5vim /etc/hostname #写入mbp,我把mbp作为计算机名
vim /etc/hosts #写入以下内容
127.0.0.1 localhost
::1 localhost
127.0.1.1 mbp.localdomain mbp - 设置密码
1
passwd #密码输入的时候看不到,只能盲输。
3. 安装Grub并chroot到系统盘
- 编辑
/etc/default/grub
在GRUB_CMDLINE_LINUX="quiet splash"
中,添加参数(添加到参数内):intel_iommu=on iommu=pt pcie_ports=compat
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB --removable
。grub-mkconfig -o /boot/grub/grub.cfg
pacman -S dialog dhcpcd zsh
退出 chroot
(Control-d 或 exit
)并重新启动。现在,您可以通过在启动时按住选项来在 macOS 启动管理器中选择 Arch 安装。
4. 网络与通用配置
- (可选)禁用ipv6
类似我在酒店,使用的是手机热点,ipv6有点问题可以考虑先禁用掉,参考教程:
编辑/etc/sysctl.d/40-ipv6.conf
,并添加如下,让所有接口都禁用ipv6
1 |
|
也可以直接执行如下来处理:
1 |
|
配置dhcp
参考官网
与dns可以采用这个systemd-networkd的方式,也可以采用下面的方式:1
2systemctl enable dhcpcd.service
systemctl start dhcpcd.service配置dns
编辑/etc/resolv.conf
添加nameserver 119.29.29.29
配置完成后重启系统即可正常使用archlinux系统了。
III. 其他必要配置
风扇
配置参考这里:
1 |
|
触摸板
1 |
|
比如我是喜欢默认是F1-F12,功能键后再切换到媒体键,就做下配置:
显卡
配置参考这里:
先检测是否符合要求,通过指令uname -r
,如果输出的版本是大于等于6.1.12-2即可,创建/etc/modprobe.d/apple-gmux.conf
并添加如下内容:
1 |
|
然后安装固件:
1 |
|
重启系统后,通过如下方式检测:
运行journalctl -k --grep=gmux
,如果输出类似说明说已经正常运行:
运行glxinfo | grep "OpenGL renderer"
,输出类似:
声卡
直接参考这里即可:
键盘按键映射
推荐直接使用xmodmap
,可以直接在~/.xmodmaprc
编辑:
下面这段是将caps lock
与left ctrl
替换:
1 |
|
其他
其他可以参考这个作者的一些说明进行配置 GitHub - kyoz/mac-arch: :computer: Arch installation guide on Mac