Arch Linux 2018.01.01 安装总结

元旦放假3天,在家休息得好爽!

一个Linux发行版更新了,Arch Linux 发布了 2018.01.01 版,我看到这个消息时,陷入了思考,我要不要换上这个发行版?用 centos 五年多了,一直很不错,尤其是发布 DVD 版、 Everything 版,解决了我很多次的上网不方便,安装软件困难得的问题。但是,在 centos 上,没有把 BCM 4360无线网卡驱动起来,让我很不方便;而且,在我的 mac mini 上, centos 7 的启动速度确实有些慢。所以,我想换一个系统试试了。

早就听说过 Arch Linux ,也知道其对于网络得依赖程度之深,远远超过 centos ,现在用移动网络流量的成本极大得下降了,可以试试了。Arch Linux 对于我而言,又是更进一步学习理解 Linux 系统的路径。

经验告诉我,解决问题时进步得最快。所以,我要走出 centos 的舒适区,走向 Arch Linux。

2018年1月3日,安装 Arch Linux 过程如下:

  1. 网易镜像站 下载 archlinux-2018.01.01-x86_64.iso 文件:

     $ wget -c http://mirrors.163.com/archlinux/iso/2018.01.01/archlinux-2018.01.01-x86_64.iso 
    
  2. 操作系统文件完整性校验,计算完毕后和下载站点的 md5sum 对比,一致即可:

     $ md5sum archlinux-2018.01.01-x86_64.iso
    
  3. 刻录到 U 盘:

    • 首先要删除完 U 盘上得全部数据和分区,用 fdisk 或 parted 均可;
    • 刻录校验后的文件到 U 盘:
      # dd  if=archlinux-2018.01.01-x86_64.iso  of=/dev/sdb  bs=4M 
    

    注: /dev/sdb 为 U 盘在系统中得编号。

  4. U 盘插入计算机,重启,按住 ALT 键,进入启动选择界面,选择 U 盘那一项启动,进入 Arch Linux 的 Live 环境。

  5. 按照 Arch Linux 的安装指南 或者就是 Live 环境中的安装指南,安装 Arch Linux 到本地计算机:

    • 检查键盘布局

    • 验证启动模式

        # ls /sys/firmware/efi/efivars 
      
    • 连接到因特网

      查看可用网口,包括手机通过 USB 接口共享的网络接口都可以查到:

       # ip addr show 
      

      动态获取 IP 地址,Arch Linux 用 dhcpcd 命令:

       # dhcpcd enp0s20u1
      
    • 更新系统时间

       # timedatectl set-ntp true 
      
    • 建立硬盘分区,fdisk 或 parted 均可以,建议还是 parted,因为可以查看到更详细的信息。 注意:/ 分区和 /usr 目录应该在同一个分区,否则启动过程中会提示:

        ERROR: Unable to determine major/minor number of root device 'dev/sda8'.
        You are being dropped to a recovery shell
        Type 'exit' to try and continue booting
        sh: can't access tty; job control turned off
      

      错误原因大概是挂载了 / 分区后,没有继续挂载完 /etc/fstab 文件中记录的其他挂载分区,导致系统执行过程中,部分命令无法执行。 这个问题困扰了我一个晚上,特别坑,还好最后解决了。

      注:一定要规划 ESP 分区,这是 EFI Shell 启动必需的,而且需要格式化为 FAT 格式, FAT16 或 FAT32 都可以安装 EFI Shell 启动文件; SWAP 分区根据需要规划,内存大,可以规划小点(2GB),内存小,可以规划大点(4GB)。格式化命令如下:

      # mkfs.vfat -F 32 /dev/sda1
      # mkfs.ext4 /dev/sda2
      # mkswap   /dev/sda3
      ...
      
    • 挂载分区 首先挂载 / 分区

      # mount -t ext4 /dev/sda8  /mnt
      

      创建分区目录,挂载分区

      # mkdir /mnt/boot
      # mount -t  ext2 /dev/sda2 /mnt/boot/
      # mkdir /mnt/boot/efi
      # mount -t vfat /dev/sda1  /mnt/boot/efi
      # swapon /dev/sda3
      ...
      

      注:一定要按顺序执行,不能 mkdir -p /mnt/boot/efi,此时挂载 sda2 到 boot 目录没有问题,但挂载 sda1 到 /mnt/boot/efi 目录时就会发生问题,挂载不成功,后面没法生成正确的 fstab 文件。因为 sda2 挂载到 boot 目录后,会覆盖原来创建的 boot/efi 目录,用 sda2 分区里得内容代替。而 sda2 刚格式化完毕,只有一个 lost+found 目录,没有 efi 目录,所以会有挂载错误。

    • 选择镜像源,编辑 /etc/pacman.d/mirror-list 文件,删除中国以外其他国家的镜像站点。

    • 安装基本系统

      # pacstrap /mnt base
      
    • 生成 fstab 文件,并查看内容是否正确

      # genfstab -U /mnt >> /mnt/etc/fstab
      # cat /mnt/etc/fstab
      
    • chroot 新系统

       # arch-chroot /mnt
      
    • 设置时区及时钟

      # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
      # hwclock --systohc --utc
      
    • 本地化设置,在仅有终端环境时,应该只设置英语字符,因为无法显示中文

      # vim /etc/locale.gen  仅余以下内容
        en_US.UTF-8 UTF-8
        zh_CN.UTF-8 UTF-8
      # locale-gen
      # echo LANG=en_US.UTF-8 > /etc/locale.conf
      
    • 设置 root 密码、主机名称

       # passwd
       # echo myhostname > /etc/hostname
      
    • 给新操作系统配置网络,也可以重启后再做。

    • Initramfs 如果修改了 mkinitcpio.conf,用以下命令创建一个初始 RAM disk:

       # mkinitcpio -p linux
      
    • 安装Grub、efibootmgr, efibootmgr 创建 GRUB 安装脚本使用的 .efi 启动项

       # pacman -S grub efibootmgr
       # grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Grub
      
    • 安装 intel-ucode 并启用

      # pacman -S intel-ucode
      # grub-mkconfig -o /boot/grub/grub.cfg
      
  6. 安装完毕,退出 chroot,卸载 /mnt 目录下挂载的文件系统,重启系统

     # exit
     # umount -R /mnt
     # sync
     # shutdown -r now
    
  7. 安装 gnome 桌面环境

      # pacman -S gnome
    
  8. 安装字体,设置中文环境

      # pacman -Ss font
      # pacman -S ttf-liberation  ttf-arphic-ukai
    

    第一条命令是查找可用的字体,第二条命令是安装字体; 活动->设置->区域和语言,更改设置为 汉语。

  9. 安装输入法 在 GNOME 平台上,可以使用 fcitx 模式的输入法,也可以使用 ibus 模式的输入法,总体来讲,还是 ibus 模式输入法好用,安装简单:

       # pacman -S ibus ibus-googlepinyin
    

    安装 fcitx 输入法麻烦一些。

       # pacman -S fcitx fcitx-im
    

    安装完毕后,总是不能启动 fcitx ,直接在终端中输入 fcitx 会报错

    DBus Service Already Exists(ERROR-836 /build/fcitx/src/fcitx-4.2.8.1/src/lib/fcitx/instance.c:424) Exiting.

    执行 fcitx-diagnose 检查,发现是缺少环境变量设置,于是各种百度,然而 查看各种教程都是创建 ~/.xprofile 或 ~/.xinitrc ,添加变量重启生效等,结果都无效,最后还是查看 Arch wiki 发现有这样一句话

    如果你使用的是较新版本的GNOME,使用 Wayland 显示管理器,则请在 /etc/environment 中加入:


             export GTK_IM_MODULE=fcitx
             export QT_IM_MODULE=fcitx
             export XMODIFIERS=@im=fcitx
    

    这就是原因了,我的 gnome 版本比较新,在 /etc/environment 中更改后重启系统,就能 正常使用了。安装完毕后再看 Arch wiki 过程中,发现自己真 笨,早就该好好看看 wiki 页面中关于输入法的说明了:

    GNOME has integrated support for input methods through IBus, only ibus and the wanted input method engine (e.g. ibus-libpinyin for Intelligent Pinyin) needed to be installed, after installation the input method engine can be added as a keyboard layout in GNOME's Regional & Language Settings.

  10. 安装 chromium 浏览器

    Arch Linux 下的 chrome 浏览器就是 chromium,功能都一样

      # pacman -S chromium
    

    结果报错:无法从镜像站点下载 chromium。这我就很奇怪了,怎么回事?去网易镜像源 找找,没问题啊,有这个包啊。再安装,还是报同样得错误,仔细看报的错,发现是版本号不对,原来就在 这两天,chromium 又更新版本了。知道错误原因就好办了:

      # pacman -S
      # pacman -S chromium
    

    安装完毕,果然除了图标颜色不一样,其它的都一样。

  11. 安装 Broadcom BCM4360 无线网卡驱动

    查看无线网卡具体信息

      # lspci -v | grep 14e4
      ...
      02:00.0 Network controller [0280]: Broadcom Limited BCM4360 802.11ac Wireless Network 
      Adapter [14e4:43a0] (rev 03)
      Subsystem: Apple Inc. BCM4360 802.11ac Wireless Network Adapter [106b:0112]
    

    查适用的驱动类型表,BCM4360 适用 broadcom-wl 驱动模块。查该模块得信息,是 AUR 库中的,无法直接用 pacman 安装,这就放弃吗?当然不。

      # git clone https://aur.archlinux.org/broadcom-wl.git
      # cd /git/broadcom-wl/                      #替换为自己的实际路径
      # makepkg
      # rmmod  b43 ssb
      # pacman -U broadcom-wl-6.30.223.271-6-x86_64.pkg.tar.xz
      # modprobe wl  lib80211
    

    重启系统,终于看到无线网卡了。


安装终于告一段落了,我的 MAC MINI MGEM2 终于又可以正常使用了。在安装过程中,经历了 /usr 和 / 不在同一分区导致得无法启动,想尽了办法也不行,到处百度,最终还是解决了。最终,无线网卡可以正常使用了,还是有了一些收获。

猜你喜欢

转载自my.oschina.net/u/260165/blog/1603555