在Macbook Air上安装Archlinux

前两天在自己那台macbook air上装上了arch,应archlinux-cn邮件组中几位兄弟的要求,在这里记录一下整个安装的过程,供一些准备进行同样折腾的兄弟看看,也作为自己的一份备忘。

使用镜像:2012-08-04的iso
目标:arch和mac os双系统共存
(其实我的最终目的是只有arch,完全删除mac os,我对苹果的东西完全无爱,如果不是抽奖抽到的,我是不会主动去买苹果的东西的。但因为是第一次在mac上安装arch,所以先让mac os再存在一会儿,以免arch安装失败后没系统可用了,等摸清楚一些细节之后,就直接格整个硬盘只留arch)


本篇内容记录了本人的一些粗浅认识,如果有一些理解不当或者会造成误导的地方,还请各位指正。


mac和PC的不同点

  • mac引导程序是UEFI,而普通PC是BIOS。
  • mac的分区表是GPT,普通PC是MBR,MBR由于66字节的限制,只能有四个主分区,GPT没有这个限制。
  • mac安装好之后,默认的分区有三个:负责boot的EFI分区,大概有200MB,Mac主分区,Recovery分区,大概650MB。

  除了上述区别以外,其它基本应该都是一样的。

安装过程

  1. 使用dd命令制作用于安装的U盘,如何使用请自行google。
  2. 调整硬盘分区,这个可以使用mac os的Disk Utility完成,缩减mac os的硬盘分区大小,以空出一部分空间来安装arch。
  3. 在mac os中安装rEFIt(这步不是强制要求,但强烈建议安装之,因为不安装rEFIt的话,待会儿arch安装好后我们还要进mac os去执行bless)
  4. 插上U盘,如果刚刚安装了rEFIt,就直接会看到一个开机启动选项,选择那个类似Windows图标的启动即可(具体名字我忘了,大概是叫Legacy OS吧。。) 如果没安装rEFIt,开机需要按住option键启动,应该会有三个选择,一个Mac HD,一个Recovery,还有一个Windows,选择最后一个。
  5. 正常的话,现在应该进入arch的安装界面了,按照arch的安装wiki介绍一步一步安装即可。

  具体安装过程我就不重复了,看wiki即可。下面讲讲我在安装中遇到的一些问题和陷阱,供各位兄弟参考,以免少走弯路。

安装过程中的一些注意事项

  1. 对硬盘进行分区时,对硬盘分区的工具请选择gdisk/cgdisk,而不是常用的fdisk/cfdisk!!! 因为Mac的分区表是GPT,fdisk/cfdisk只支持MBR,如果强行使用fdisk/cfdisk的话,就等着丢数据吧。。
  2. 在安装进行得差不多,已经到安装grub的时候,因为前面已经讲了mac使用UEFI引导,所以这里选择安装grub-efi-x86_64而不是grub-bios
    按照wiki运行:
    grub-install –target=x86_64-efi –efi-directory=/boot/efi –bootloader-id=arch_grub –recheck –debug
    这个命令的时候,grub会报找不到efi参数的错误,是因为我们是以模拟BIOS模式启动arch安装而不是UEFI,所以会报这个错误,不用管它。
  3. 因为上面这个错误grub没有管,所以只有我们自己手动来handle了,运行以下命令:
    cp /boot/efi/EFI/arch_grub/grubx64.efi /boot/backup.efi
    # 将这个efi引导程序先copy出来备用,因为我们等下mount要使用这个目录
    
    mount LABEL=EFI /boot/efi
    # 还记得前面说过的mac负责boot的EFI分区吗?没错,这个mount命令就是将这个分区mount到/boot/efi
    
    cp /boot/backup.efi /boot/efi/EFI/BOOT/BOOTX64.efi
    # 将我们刚刚backup的efi引导程序copy到这个boot分区,这里路径一定不能搞错!!
    # 据google到的小道消息,这个路径是苹果hard code指定的启动固件。。。所以,拼写错了就找不到了。。。
    所以,我们这里实际只做了一件grub没有帮我们做的事:将grub的引导程序copy到整个macbook的引导分区,并指定其路径和命名
  4. 关于gurb的事,光上面一步还没完,还需要运行一行命令:
    grub-mkconfig -o /boot/grub/grub.cfg
    重新生成cfg文件,不然 grub启动的时候会找不到硬盘,因为默认的grub.cfg里面的硬盘UUID是错误的。
    grub的配置就到此为止了。
  5. 编辑/etc/mkinitcpio.conf,在MODULES数组中加入"ahci sd_mod"(注意,如果是SSD,就加sd_mod,如果是普通的机械硬盘,就加ata_generic),然后记得运行
    mkinitcpio -p linux

    不然在启动的时候会提示no controller found,你就等着强制关机吧。

  需要注意的事情就这么多(至少这些都是我在安装过程中亲身经历的,除了第一个之外。。),到这里,系统应该是已经能起来了。

安装后的配置

  在安装好之后,一些常用软件包的安装自不必说,我只说一个比较诡异的情况:我进入awesome或者openbox之类的X环境,鼠标死活不动,无奈,又进入mac os并google之才发现是一个触摸板的驱动没装:xf86-input-synaptics。但按wiki来讲,正常安装后,是有触摸板驱动的,虽然不是synaptics,但应该至少能用是不是。。。不去追究了,开始arch下的新体验吧。。。



Date: 2012-09-09 18:46:39 CST

Author: Kelvin Hu

Org version 7.8.11 with Emacs version 24

Validate XHTML 1.0
posted @ 2012-09-09 19:38  ini_always  阅读(8280)  评论(0编辑  收藏  举报