Mac (简体中文)
相关文章
- Installation guide
- General Recommendations
- MacBook5,2 (early-mid 2009)
- MacBookPro7,1
- MacBookPro8,1/8,2/8,3 (2011)
- MacBookPro9,2 (Mid-2012)
- MacBookPro10,x
- MacBookPro11,x
- iMac (21.5-inch, Mid 2010)
- Apple Fusion Drive 在 MacBook(12 寸、Air 或 Pro 版本)或 iMac 上安装 Arch Linux 与在其他电脑上安装非常相似。然而,由于 Mac 特有的硬件配置,存在些许偏差和一些特殊的考虑,因此需要单独的指南。更多背景信息,请参见安装指南和 UEFI。本指南所包含的安装指导可用于任何受 Linux 内核支持的硬件的 Apple 电脑。请查看“相关页面”(在本页面的右上角)了解特定型号的提示和疑难解答。
- 固件更新:从干净的、备好份的和最新的 OS X 安装开始总是有帮助的。
- 分区:调整 OS X 分区大小或删除其分区来为 Arch Linux 创建分区。
- 配置引导加载器:确保新分区可以引导。
- 安装 Arch Linux:真正安装 Arch Linux 的过程。
- 安装后配置:针对 MacBook 特定的配置。
- EFI:大约 200 MB 的 EFI 系统分区。
- OS X:OS X 安装主分区。使用 HFS+ 文件系统格式化。
- Recovery:恢复分区,存在于几乎所有搭载 OS X 10.7 及以上版本 MacBook 中。在 OS X 系统中通常被隐藏,但是可以使用分区工具看见它。
- 单系统:#仅安装 Arch Linux
- 双系统:#Arch Linux 与 OS X 或其他操作系统共存(推荐,这样可以在需要时回到 OS X 系统)
- 三系统:#OS X、Windows XP 和 Arch Linux 三系统共存
- 在 OS X 中,运行 Disk Utility.app(磁盘工具,位于 )
- 在左侧栏选择要进行分区的硬盘(注意不是选择分区!)。点击分区标签页。
- 点击 + 号按钮添加新分区,并选择要给 OS X 和新分区各留存多少空间。请记得新分区会在 Arch Linux 里进行格式化,所以这里可以选择随意设置任意分区类型。
- 如果上述步骤都顺利完成,那么就可以接着往下走了。如果没有完成,你或许需要在 OS X 里先修好分区问题。
- 在启动时按住 键引导至 Arch 安装媒介或 LiveUSB。之后按照#安装小节进行操作。
- 运行 cgdisk
- 删除在 OS X 中用 Disk Utility.app 创建的分区,并为 Arch Linux 创建必要的分区。OS X 喜欢看看分区后面有没有 128 MiB 大小的空隙,因此在 OS X 的分区后创建第一个分区时,当 cgdisk 询问分区的第一个扇区大小时输入 +128M。了解更多关于 Apple 分区策略的信息可阅读这里。下面举一个简单的例子(没有 LVM 和加密):
- 以 root 身份运行 parted。
- 删除空分区,并按照自己的想法为其他要安装的操作系统重新分区空间。请注意,主引导记录(MBR)限制了主分区数量不能超过 4 个(包括 EFI 分区)。这样的话也就两个主分区留给 Arch 了。一种分区策略是分配一个系统(根)分区和一个家(home)分区,并使用交换文件(笔者没有尝试过使用逻辑分区)。另一种策略就是专门分配一个分区用于共享(参见下文)。
- 下一步,为需要的那些分区创建新的文件系统,尤其是要包含
/boot的那个分区。如果不确定怎么使用 (或别的什么命令),请运行 来逐步解决前面的问题,直到来到 Prepare Hard Drive(准备硬盘)这一步,并使用"Manually configure block devices ..."(手动配置块设备)选项,然后退出安装器。这很必要,会便于 rEFIt 在下一步在主引导记录(MBR)中设置分区类型(没有文件系统的话,rEFIt 似乎会忽略由 parted 设置的分区类型),没有这一步的话 GRUB 会拒绝安装到相应的分区上。 - 此时,应当重启电脑,让 rEFIt 来修复磁盘上的分区表(如果不这样做,那或许稍后你需要重新安装 GRUB 来让 Mac 认出 Linux 分区)。当进入到 rEFIt 菜单后,选择 update partition table(更新分区表),然后按 。重启。
- 完成了,可以继续按照#安装小节操作。
- 首先,确保已经将 EFI 系统分区挂载到
/boot - 正常进行#安装过程
- 进入到 chroot 环境后,输入以下命令安装 systemd-boot:
- 继续进行 systemd-boot#配置 以正确配置引导加载器
- 存在 HFS+ 或 APFS 格式分区
- 该分区包括分区ID
af00 - 该分区的根目录存在文件
- 该分区下存在文件
- 首先,在配置新的Arch安装时,创建一个单独的
/boot分区。Arch的ISO中提供了许多工具,例如'cgdisk。 - 确保该分区至少有250MB大小,因为它将用于存储内核以及将来要安装的任何自定义内核。此外,确保分区类型被设置为Apple HFS/HFS+(在fdisk/cgdisk中显示为,在gdisk中显示为
af00)。 - 由于Arch安装ISO不包括包,我们需要在安装环境中安装它,然后再继续将新分区格式化为HFS+,安装,然后:
- modprobe hfsplus
- 完成之后,继续安装步骤
- 当你 chroot 到新环境之后,安装 和 efibootmgr软件包。
- 另外,创建一个假的 文件
- 从Arch Linux安装光盘启动
- 以root登陆
- 打开Arch Linux安装程序
- 按照官方安装文档中说明的过程来做,但是在下面几个部分中请留意:
- 安装完成之后就可以重启系统了。
- 把Arch Linux安装光盘从光驱中退出。
- 由于 x86_64体系的Mac使用的是Intel芯片,你还需要安装Intel微码
- 如果返回的字符串中包含intel,那你只需要安装xf86-video-intel驱动,用如下命令:
- 如果返回的是nVidia,可以参看NVIDIA
- 如果返回ATI或者AMD,参见ATI
- 如果你使用的是 Atheros,无需任何设定即可正常工作。
- 如果你使用的是 Broadcom,请在 Broadcom BCM4312 页面查看教程。
- MacBook 5.0 和 6.0 使用 BCM43xx,在 Broadcom wireless 页面查看有关 broadcom-wl 驱动的部分。 网络接口在重启后会互换,所以最好使用 udev 规则来定义它们(教程在 Broadcom wireless 页面)。
- MacBook 8.1 使用 BCM4331,即不被Linux支持 (3.0 和 3.1) ,Broadcom 也没有提供闭源驱动,直到在 Linux 3.2 中才被初步支持。如果你需要在旧的内核上使用,你需要安装这里的驱动compat-drivers
- 打开终端:
- 执行cd /efi/refit; ./enable.sh命令
- 分辨率是1280x800而非正确的1440x900
- 触摸板不能正常工作或被检测为Synaptics
- FN + F1~F12组合键不工作(例如:fn啥都干不了)
- FN+F5~F12等多媒体键映射错误
- 网络处理的驱动/brcmsmac驱动(Hanging network applications / brcmsmac driver)
- keith-jiri: Keith Packard提供的显卡驱动补丁、Jiri Kosina提供的FN功能键补丁
- keith-jiri-brcmsmac: 上面提到的补丁加上网络处理的驱动
- jiri-kbdmapping: FN功能键和映射关系修复补丁
- keith-jiri-kbdmapping: 第一个分支加上多媒体键补丁
- keith-jiri-kbdmapping-brcmsmac: 以上所有的集合 (不确定的情况下,推荐使用这个分支)
概述
具体而言,在 MacBook 上安装 Arch Linux 的步骤可分为:
固件更新
在进行 Arch Linux 安装之前,确保已为 Macbook 安装好最新的固件更新是很重要的。这步需要 OS X(macOS)来操作。在 OS X(macOS)中,打开 App Store 并检查更新。如果 Mac 找到并安装了任意更新,请确保重启您的电脑,然后再次检查更新以确保所有东西都安装好了。
保留 OS X(macOS)安装是比较明智的,因为 Macbook 的固件更新只能用 OS X(macOS)安装。但是,如果打算完全移除 OS X(macOS),请备份以下文件,在 Linux 中调整色彩配置时会有需要:
/Library/ColorSync/Profiles/Displays/*接下来阅读#分区小节。
分区
存储磁盘的分区和其他 PC 或笔记本电脑并无二致。但是,如果打算保留 OS X(macOS)来做双系统,需要对此所有考虑。默认情况下,MacBook 的磁盘使用 GPT 分区表格式化,至少包含了 3 个分区:
怎么来分区取决于想安装多少个操作系统。接下来将讲解以下选项:
仅安装 Arch Linux
这种情况最好办。分区操作就和其他可以安装 Arch Linux 的硬件一样。请参考标准安装指南了解详情。
如果想要配置系统以获得全盘加密,请参见 Dm-crypt/Encrypting an entire system 了解更多详情。
不考虑单独 分区、加密或 LVM 分区方案,一个非常基本的分区示例如下所示:
完成后,就可以继续阅读#安装小节了。
Arch Linux 与 OS X 或其他操作系统共存
你需要对硬盘进行分区,同时保留用于 OS X 或 Windows 的分区。如果希望保留 OS X,最简单的方法是使用 OS X 的分区工具进行调整,然后使用 Arch Linux 的工具完善。
步骤:
在 Arch 安装媒介中,可以重新调整已创建的分区的大小,或者删除分区以对其他分区们进行创建(比如交换分区(swap))。
选项一:EFI
完成后,就可以继续阅读#安装小节了。
选项二:BIOS 兼容
配置引导加载器
搭配 systemd-boot 使用 Apple 原生引导加载器(建议)
Apple 原生的 EFI 引导加载器会读取位于 /EFI/BOOT/BOOTX64.EFI 的 EFI 系统分区下的 文件。幸运的是,这也是 systemd-boot 二进制文件的默认安装位置。这意味着,使用 systemd-boot 来引导 Linux 会非常简单。
上述命令会将 systemd-boot 二进制文件复制到 ,并添加 systemd-boot 自身作为由 EFI 引导管理器加载的默认 EFI 应用(默认引导条目)。
下次重启时,按住 Option 键显示 Apple 引导管理器,后者在启动 MacBook 时应该会显示 Arch Linux 条目(其可能会显示为 引导选项)。
使用苹果原生的引导器,结合 GRUB 使用
尽管使用了UEFI,但Mac原生的EFI引导器 。相反,它在内部和外部驱动器的所有分区里寻找 .efi 文件,并在满足某些条件的情况斗它们显示为可能的启动选项。例如,Mac可以在根据以下检查后检测到现有的OS X安装:
这意味着,将Arch安装配置成能被MacBook引导器自动识别的情况是可能的。此外,它只需要一个正确格式化的 /boot分区。这种方法的好处是,它可以与OS X很好地共存,并允许避免其他启动加载器,如rEFInd。然而这需要手动配置。下面的步骤将说明如何使用GRUB进行这种配置。
在这之后,不要忘记创建一个基础的配置文件
# grub-mkconfig -o /boot/grub/grub.cfg 如你所见,的目录结构并不正确,因为目录不应该是文件夹的子目录。由于这个原因,我们需要将存根重新定位到MacBook引导加载器能够识别的位置。 # mv /boot/EFI/arch/System/ /boot/ # rm -r /boot/EFI/ 在这之后,你需要创建下列文件在下次重新启动时,在启动 MacBook 时按住 option 键时显示的引导器应将 Arch Linux 显示为可能的启动选项。 选择该选项将引导 GRUB。
好了!GRUB 现在已经是 MacBook 引导器了,你可以启动新安装的 Arch Linux
一种简便的方法
在安装 Arch Linux 之前,创建一个额外的分区,格式化为 FAT32 并挂载在 /mnt/efi。在安装完成后,chroot 进入 /mnt,并安装引导程序
# pacman -S grub efibootmgr--removable 参数可以解决很多型号 Mac 的主板 NVRAM 兼容性问题。
# grub-install --target=x86_64-efi --efi-directory=/efi --removable # grub-mkconfig -o /boot/grub/grub.cfg其他方式
。
从GRUB直接启动
在efi上直接启动GRUB2而不用rEFIt是可以的。以下的操作在MacBook7,1上是可行的。建议将GRUB安装在fat32或者HFS+分区上,ext2或者ext3应该也行。GRUB的苹果加载命令在7,1上还暂时不能使用,但可以用过下面的补丁实现补丁地址。
GRUB装上硬盘分区后,固件需要知道从哪儿启动它。这步操作可以在OS X或者OS X安装光盘。下面的命令指明了GRUB是安装在OS X系统的/efi/grub中
sudo bless --folder /efi/grub --file /efi/grub/grub.efi编译
有些型号可能需要将EFI_ARCH设置成i386。
bzr branch --revision -2 bzr://bzr.savannah.gnu.org/grub/trunk/grub grub cd grub ./autogen.sh patch -p1 < appleloader_macbook_7_1.patch export EFI_ARCH=x86_64 ./configure --with-platform=efi --target=${EFI_ARCH} --program-prefix="" make cd grub-core ../grub-mkimage -O ${EFI_ARCH}-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot cp grub.efi *.mod *.lst yourinstalllocationgrub.cfg示例
此处应该有更好的方法来加载Windows系统。
安装
安装后配置
微码
Xorg
按照Xorg来安装Xorg。
视频
不同的MacBook有不同型号的显卡,可以通过下面命令来查看显卡种类
$ lspci | grep VGANVIDIA注意
对于使用NVIDIA显卡的MacBook,背景亮度可以通过AUR中的{包解决。
MacBook 6,2+-EFI
截至2011年4月30日,nvidia驱动在此类EFI型号的机子下不能正常工作。可以了解一下mesa-git这个包。
触摸板
触摸板应该已经有了基本的功能。可以安装AUR中的包来达到和Mac OS X类似的多点触控效果,最多支持三点触控,包含了三指水平与垂直滑动。可以从项目主页 获取更多消息。
xf86-input-multitouch-git除了编辑源代码外不支持配置。一些用户也正面临这从palm上得到错误的点击。现在有个可定制度更高的包。在其readme中能得到更多配置信息。
下面的配置在MacBook 7,1中正常工作
Option "Thumbsize" "50" Option "ScrollDistance" "100"可能你还需要添加下面的内容
MatchDevicePath "/dev/input/event10"在更旧的MacBook机型上,比如MacBook 2,1中,可能需要安装xf86-input-synaptics包才能正常工作。可以查看Touchpad Synaptics获取更多信息。
键盘
MacBook的键盘默认是能正常工作的。如果想切换fn键,可以查看Apple Keyboard。
可以通过xbindkeys来重新设置键,或者通过DE配置。有另一种很好的方法,安装pommedAUR
根据你MacBook的硬件来配置/etc/pommed.conf,可以以/etc/pommed.conf.mac或者/etc/pommed.conf.ppc为模板来建立这个配置。
NVIDIA配置
如果在使用 pommed 后亮度仍然不正常, 请确认你安装了 并添加以下命令:
find . -name "*" -exec sed -i 's/mbp_backlight/nvidia_backlight/' '{}' \;到 pommed PKGBUILD build() 函数中,然后重新编译。引用自 this forum post.
另一个解决方案是修改 pommed PKGBUILD build():
find . -name "*" -exec sed -i 's/nvidia_backlight/apple_backlight/' '{}' \;如果上面两种方法都不能解决,那么你需要尝试以下方法:
运行 nvidia-settings,编辑 '/etc/X11/xorg.conf' 添加以下代码到 Device 部分:
Option "RegistryDwords" "EnableBrightnessControl=1"保存并重启,检查亮度调节是否正常工作。 点击查看更多信息 Ubuntu MacBookPro5,5
Wi-Fi
不同型号的MacBook使用不同的网卡模块。
使用以下命令查看你的Macbook使用的网卡型号:
# lspci | grep Network电源管理
笔记本模式工具
睡眠(内核挂起)
休眠
声音配置
蓝牙
iSight配置
温度感应
色彩配置
苹果远程控制
HFS分区共享
HFS+ 分区
Home目录共享
在OS X中
第一步:改变UID与GID
第二步:改变Home目录权限
在Arch中
避免GRUB启动前EFI长时间执行
关闭启动响铃
rEFIt
详情参考refit myths.
在OS X下,从Refit主页下载".dmg"格式的安装包,并像其他苹果软件一样安装。
手动启用rEFIt的方法:
rEFIt可能会遇到的问题
如果你在安装Arch或者rEFIt后遇到了问题,特别是启动时在启动菜单中看不到启动项,或者出现下面的GRUB提示时:
GRUB>_
请您参考下 http://mac.linux.be/content/problems-refit-and-grub-after-installation
该页面将会教你如何启动的Arch系统,将有问题的Arch系统挂载上去,然后chroot进入该系统,通过gptsyc重新安装GRUB。文中提到的那些用于debian系统的命令基本上都可以在Arch上工作。不过注意不要将GRUB安装错地方了(wrong spot怎么翻译?)
你可从 https://packages.debian.org/sid/gptsync 获取到gptsync。 或者通过下面两个命令之一分别下载32/64位版本的:
由于是.deb包,所以你可能需要先安装deb2targz
pacman -S deb2targz参考资料
MacBook Air (4,2) 内核补丁
Linus的内核树中的当前版本(Linux 3.0.7)中,包含几个问题。我(telmich)已经搜集了下面几个问题的修复补丁:
您可以从 http://git.schottelius.org/?p=foreign/linux-macbook-air;a=summary 获取到打好补丁的内核,其中包括如下分支:
你可以很简单的用当前ArchLinux的配置文件来编译内核: