ArchLinux是一个轻量简洁的发行版,很多软件包都是原汁原味的,没有被深度定制过,而且可以滚动升级,比较适合用来做Linux开发。

这篇记载了如何在VirtualBox以EFI方式安装ArchLinux。至于为什么要以EFI方式安装,纯属赶时髦而已。

  • 阿里云下载最新的ArchLinux安装ISO,目前是archlinux-2016.02.01-dual.iso
  • 在VirtualBox中创建一个虚拟机,然后在虚拟机设置中把“系统”下的“Enable EFI”选项打开。
  • 把ArchLinux的安装ISO载入虚拟机光驱,从ISO启动进入字符界面。
  • 根据ArchLinux的安装指南一步一步走就可以了,下面是一些注意点。
  • 选择pacman的mirrorlist:
    • 编辑/etc/pacman.d/mirrorlist,把照着格式把阿里云的源http://mirrors.aliyun.com/archlinux/...加在前头。
  • 硬盘分区时需要注意一下方面:
    • 使用cfdisk硬盘分区的时候,分区表格式选择GPT而不是MBR(MBR太老,恐和EFI不搭)
    • EFI需要一个单独的启动分区,所以我的分区策略就是分一个512MB的EFI System分区(/dev/sda1),挂载到/boot,剩下的空间全部归root分区(/dev/sda2)。
    • 使用lsblk命令,可以打印出所有分区。
    • EFI System分区必须是Fat32格式的,格式化命令mkfs.fat -F32 /dev/sda1
    • 本来想在root分区使用Btrfs,后来想想还是保守一点,用ext4了:mkfs.ext4 /dev/sda2
  • EFI设计上可以绕过BIOS和Grub而直接启动操作系统。ArchLinux已经默认在内核上启动了Linux的EFISTUB选项,原理上Linux可以直接从EFI启动。考虑到以后要用多个版本的内核,所以还是安装了一个简单的EFI Boot Manager用来管理不同的启动项。简单起见,我选了Systemd-boot作为EFI Boot Manager。
    • 安装systemd-boot到EFI System分区: bootctl --path=/dev/sda1 install

    • 接着我们需要手动添加一个启动项/boot/loader/entries/arch.conf,内容如下:

      title          Arch Linux
      linux          /vmlinuz-linux
      initrd         /initramfs-linux.img
      options        root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 rw
      
    • 上面那一串14420948-2cea-4de7-b042-40f67c618660是从命令blkid -s PARTUUID -o value /dev/sda1生成的。

  • 最后是启用网络:
    • ls /sys/class/net查网卡,我的显示enp0s3

    • 启用这个网卡ip link set enp0s3 up

    • 创建这个文件/etc/systemd/network/MyDhcp.network,内容为:

      [Match]
      Name=en0
      
      [Network]
      DHCP=ipv4
      
    • 执行下面两个命令

      • systemctl reenable systemd-networkd.service
      • systemctl reenable systemd-resolved.service
  • 基本上大功告成了,执行pacman -S extra/vim把Vim编辑器装上😉。

2022-06-03更新,在Hyper-V上安装ArchLinux

依然是参考https://wiki.archlinux.org/title/Installation_guide

如果使用的是Gen2的Hyper-V虚拟机,主要要把Secure Boot关掉,否则无法从ISO启动。

Note: Arch Linux installation images do not support Secure Boot. You will need to disable Secure Boot to boot the installation medium. If desired, Secure Boot can be set up after completing the installation.

使用ISO安装的话,在启动选项中把网络启动选择调至最后,优先选用DVD启动,避免不必要的启动等待。可以从https://mirrors.aliyun.com/archlinux/处下载ISO镜像。

如果要使用PXE从网络安装的话,参考https://archlinux.org/releng/netboot/

分区相关

主要分了三个分区:

  • /boo/ 用于存放启动相关的资料,为了支持EFI,格式设为vfat
  • swap分区
  • /,系统分区,选用了ext4

brtfs似乎也很火,但是不支持fscryptfs。ubuntu一般采用的是ext4+lvm

可以给分区附上标文(label),这样就不用老是使用UUID来引用分区

对于ext4分区,可以采用e2label /dev/XXX "new label",以标文查看分区ls -l /dev/disk/by-label

参考:

Hyper-V相关

可以参考一下链接

为了支持微软提供的Enhanced Session,可以做如下操作:

git clone https://github.com/Microsoft/linux-vm-tools
cd linux-vm-tools/arch
./makepkg.sh
./install-config.sh

linux-vm-tools的Github仓库已被列为Archived,意味着不再维护了,但是勉强在Arch上还能编译通过。除了Arch以外,另一个支持的就是Ubuntu了。

在宿主端侧开启:Set-VM -VMName __Your_Arch_Machine__ -EnhancedSessionTransportType HvSocket

关停:Set-VM -VMName __Your_Arch_Machine__ -EnhancedSessionTransportType VMBus

也可以在虚拟机的菜单中选择打开和关停。

pacmain相关

文档在https://wiki.archlinux.org/title/Pacman#Querying_package_databases

简明提示:

  • 查找一个料包(以vim为例):pacman -Ss vim
  • 安装一个料包(以vim为例):pacman -S vim

网络相关

依然采用基于systemd-network的DHCP方式,参考https://wiki.archlinux.org/title/Network_configuration#Network_managers

启动相关

依然采用systemd-boot,但是加装intel-microcode

参考https://wiki.archlinux.org/title/Microcode#Installation,通过pacman -S intel-ucode安装intel-microcode,然后需要修改系统启动菜单,增加对intel-microcode的支持。

AUR相关

AUR是Arch的一大特色,https://zhuanlan.zhihu.com/p/385584997介绍了三种AUR的安装工具:

  • Jguer/yay
  • Morganamilo/paru
  • fosskers/aura

目前只尝试过yay

yay是用go编写的,安装预编译的二进制版本:

pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si

yay -Syu --devel
yay -Y --devel --save

X2go相关

本来想在Arch上安装x2goserver的,执行yay x2goserver,发现有一些key无法导入。

通过形如gpg --keyserver keyserver.ubuntu.com --recv-keys F4A7678C9C6B0B2B命令排查之后,发现是相关的key不存在。

可能Arch上的x2go料包不是官方维护的,还是不要折腾了,遂放弃之。

x2go:

sudo相关

默认是在root用户下操作,可以添加一个sudo用户。

并安装sudo料包。

添加一个用户useradd -m user1并设置密码passwd user1

然后在sudo配置文件中添加:

user1   ALL=(ALL:ALL) ALL

参考

xfce4

  • 安装sudo pacman -S xfce4 xfce4-goodies
  • 卸载sudo pacman –Rsu xfce4 xfce4-goodies

可能需要安装sudo pacman -S xorg xorg-xinit xterm

参考:

桌面相关

这里选择的是LXDE,安装:pacman -S lxde

无须在全局开启LXDE,在某个用户登陆的时候开启即可,修改该用户的.xinitrc文件,编辑下列内容:

exec startlxde

参考:

其他

一些额外的软件料包:

  • coreutils
  • which

可以参考https://wiki.archlinux.org/title/General_recommendations来做一些推荐设置

ArchLinux的安装配置还是相当麻烦的,或许下一次可以尝试下其下游发行版Manjaro。

(更新完)