btw, I use arch

准备工作


题外话

  • Arch Linux官方仅支持X86_64架构的系统,如果有别的架构需求,请移步Manjaro。

下载Arch Linux镜像ISO文件

这里要吐槽一下Arch Mirror并没有给SHA-256及以上的校验码。为了安全起见,推荐使用gpg来进行验证:
在非Arch平台里面运行:

$ gpg --keyserver-options auto-key-retrieve --verify archlinux-version-x86_64.iso.sig

如果你已经有Arch Linux的操作系統可以直接使用pacman-key进行验证:

$ pacman-key -v archlinux-version-x86_64.iso.img

验证启动模式

使用以下指令来发现启动模式为BIOS还是UEFI:

ls /sys/firmware/efi/efivars

下面默认使用UEFI进行安装。

校准时间

磁盘分区

gdisk -l

硬盘LUKS加密

加密硬盘分区:

cryptsetup -v luksFormat device

编辑/etc/mkinitcpio.conf

修改HOOKS:

HOOKS=(base systemd autodetect keyboard sd-vconsole modconf block sd-encrypt filesystems fsck)

格式化分区

mkfs.vfat /dev/boot_partition
mkfs.ext4 /dev/mapper/archroot

挂载文件系统

mount /dev/root_partition /mnt
mkdir /mnt/boot
mount /dev/boot_partition /mnt/boot

Arch Linux正式安装


安装核心软件包

在此base-devel默认安装,因为我们在安装yay的时候需要它。

pacstrap /mnt base linux linux-firmware vim tmux base-devel

配置系统


Fstab

# genfstab -U /mnt >> /mnt/etc/fstab

Chroot (Arch ISO自带的arch-chroot比普通的chroot功能更强大,我猜是chroot的一个wrapper)

arch-chroot /mnt

调整时区

ln -sf /usr/share/zoneinfo/Region/City /etc/localtime

举例:

  • 采用美国洛杉矶时区:ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

本地化

编辑/etc/locale.gen,取消掉en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8的注释。然后生成本地化:

locale-gen

编辑/etc/locale.conf

LANG=en_US.UTF-8

网络配置

桌面系统推荐使用NetworkManager

pacman -S networkmanager
systemctl enable NetworkManager

服务器系统推荐使用systemd-networkd (待完善)

systemd-networkd
systemctl enable systemd-resolved
systemd-resolved

如果在systemd-netword里面配置DNS,也需要启动systemd-resolved才能让DNS解析生效:

systemctl enable systemd-resolved

编辑/etc/hostname

archlinux

编辑/etc/hosts

127.0.0.1   localhost
::1         localhost
127.0.1.1   archlinux.localdomain    archlinux

Initramfs (此处使用systemd-boot)

目标文件:mkinitcpio.conf

mkinitcpio -P

设置Root密码

passwd

配置systemd-boot

安装微码补丁

对于Intel CPU:
pacman -S intel-ucode
对于AMD CPU:

备注:是否需要安装AMD微码补丁,需要调研。

pacman -S amd-ucode

systemd-boot

bootctl install

命令运行完毕后,/boot文件夹的布局如下(arch.conf为手动创建的文件):

# tree /boot
/boot
├── EFI
│   ├── BOOT
│   │   └── BOOTX64.EFI
│   ├── Linux
│   └── systemd
│       └── systemd-bootx64.efi
├── initramfs-linux-fallback.img
├── initramfs-linux.img
├── intel-ucode.img
├── loader
│   ├── entries
│   │   └── arch.conf
│   ├── loader.conf
│   └── random-seed
└── vmlinuz-linux

创建并编辑/boot/loader/entries

title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options rd.luks.uuid=<PARTITION_UUID> root=/dev/mapper/luks-<PARTITION_UUID> 

注:arch.conf文件名可以改为任意以.conf结尾的配置文件,名字需要与loader.conf里对应。

编辑/boot/loader/loader.conf

timeout 3
default arch

grub不同,配置systemd-boot后无需运行类似grub-mkconfig的指令。原因是因为文件是直接在/boot里面进行编辑的。备份文件的时候记得备份/boot

重启


退出chroot环境,可以输入exit,也可以使用Ctrl+d组合键。

输入reboot进行系统重启。

Last modification:September 6th, 2020 at 01:34 pm