Basti's Scratchpad on the Internet

在MacBook Air上安装Archlinux

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

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

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

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

  1. 在对硬盘进行分区时,对硬盘分区的工具请选择gdisk/cgdisk,而不是常用的fdisk/cfdisk!!!因为Mac的分区表是GPT,fdisk/cfdisk只支持MBR,如果强行使用的话,就等着丢数据吧。。
  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安装而不是EFI,所以会报这个错误,不用管它。
  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. 关于grub的事,光上面一步还没完,还需要运行一下 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,你就等着强制关机吧。

需要注意的事情就这么多。到这里,系统应该是已经能运行了。

  1. 如果进入系统后触摸板无效,是因为驱动没有装好,安装 xf86-input-synaptics 即可。
  2. 触摸板默认的滚动方向和原来的方向相反,会很不习惯,这时候,需要改 ~/.Xmodmap ,添加以下行:
    pointer = 1 2 3 5 4 6 7 8 9
    

    注意4和5的位置,因为4和5分别代表上下滚动,所以将它们交换一下位置即可,修改完成后,记得执行 xmodmap ~/.Xmodmap

Other posts
comments powered by Disqus