记录第一次安装archlinux

posted
read
242 words · 1 min
contents

my device

Terminal window
Host: RedmiBook Pro 15
CPU: 11th Gen Intel i5-11300H (8) @ 4.400GHz
GPU: Intel TigerLake-LP GT2 [Iris Xe Graphics]

USB drive install ventory

copy archlinux image to ventory push USB driver in target computer

Enter BIOS(UEFI)

reboot from USB driver, then choose archlinux grub2

Here CLI

以下分区、mktable、mkfs、mkswap 会清空选中磁盘/分区的数据。这是当时的全盘安装记录,不适用于保留现有系统的双启动操作。只在已确认的目标空盘,或已决定擦除且备份并验证恢复的目标盘上继续;不要照抄历史设备名 /dev/nvme0n1。先备份重要数据,断开不需要的外置盘,并用设备型号、序列号、容量和挂载点核对目标。不能确认时停止,不执行分区或格式化。

下面保留当时的交互笔记,但使用由你手动填写并确认的 $DISK、$ROOT_PART、$SWAP_PART、$EFI_PART。先完成独立的只读确认步骤,分区完成后再核对各分区对应关系;整段笔记包含交互命令和配置摘录,不是可整块执行的 shell 脚本。

Terminal window
lsblk -o NAME,PATH,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINTS
read -r -p '已备份并核对型号/序列号后,输入待擦除整盘的绝对路径: ' DISK
[[ -b "$DISK" ]] || { printf '不是块设备,停止。\n'; exit 1; }
lsblk -o NAME,PATH,SIZE,MODEL,SERIAL,FSTYPE,MOUNTPOINTS "$DISK"
read -r -p "确认擦除 $DISK?请再次输入完整路径: " CONFIRM_DISK
[[ "$CONFIRM_DISK" == "$DISK" ]] || { printf '未确认,停止。\n'; exit 1; }
Terminal window
# if font small
setfont ter-132n
systemctl stop reflector.service
iwctl
device list
station wlan0 scan
station wlan0 get-networks
station wlan0 connect WIFI
exit
ping www.bilibili.com
timedatectl set-ntp true
lsblk
parted "$DISK"
(parted)mktable
New disk label type? gpt
quit
68 collapsed lines
cfdisk "$DISK"
# then set partition and its type
# set 1G EFI system
# set 4G swap
# set [the rest space] linux root x86-64
# quit
fdisk -l "$DISK"
# 分区后逐一手动输入实际路径;不要假定分区编号顺序。
read -r -p '核对后的 Linux root 分区绝对路径: ' ROOT_PART
read -r -p '核对后的 swap 分区绝对路径: ' SWAP_PART
read -r -p '核对后的 EFI 分区绝对路径: ' EFI_PART
for PART in "$ROOT_PART" "$SWAP_PART" "$EFI_PART"; do
[[ -b "$PART" ]] || { printf '分区路径不是块设备,停止。\n'; exit 1; }
done
[[ "$ROOT_PART" != "$SWAP_PART" && "$ROOT_PART" != "$EFI_PART" && "$SWAP_PART" != "$EFI_PART" ]] || exit 1
lsblk -o NAME,PATH,SIZE,TYPE,FSTYPE,MOUNTPOINTS "$DISK"
# 继续前人工确认三个分区都属于目标盘、类型正确且未挂载;上面的 -b 检查不证明这一点。
read -r -p '输入 FORMAT 确认清空上述三个分区: ' CONFIRM_FORMAT
[[ "$CONFIRM_FORMAT" == FORMAT ]] || exit 1
# linux root x86-64
mkfs.ext4 "${ROOT_PART:?先核对并设置 ROOT_PART}"
# swap
mkswap "${SWAP_PART:?先核对并设置 SWAP_PART}"
# EFI system
mkfs.fat -F 32 "${EFI_PART:?先核对并设置 EFI_PART}"
# keep linux root x86-64 first
mount "$ROOT_PART" /mnt
mkdir /mnt/efi
mount "$EFI_PART" /mnt/efi
swapon "$SWAP_PART"
vim /etc/pacman.d/mirrorlist
# Put in the first line
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
pacstrap /mnt base base-devel linux linux-headers linux-firmware
pacstrap /mnt dhcpcd iwd vim bash-completion
genfstab -U /mnt >> /mnt/etc/fstab
arch-chroot /mnt
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
vim /etc/locale.gen
# uncomment en_US.UTF-8 an zh_CN.UTF-8
locale-gen
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
vim /etc/hostname
ark233
vim /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 ark233
passwd root
pacman -S intel-ucode
# or pacman -S amd-ucode
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
vim /etc/default/grub
# set GRUB_CMDLINE_LINUX_DEFAULT loglevel=5
# i missed this command in the first installation xD
grub-mkconfig -o /boot/grub/grub.cfg
exit
umount -R /mnt
# pull out USB driver
reboot
# accomplished

after installation

Terminal window
setfont -d
vim ~/.bash_profile
export EDITOR='vim'
useradd -m -G wheel -s /bin/bash arch
passwd arch
# still in CLI
EDITOR=vim visudo
# uncomment %wheel ALL=(ALL:ALL) ALL
vim /etc/pacman.conf
# unmount [multilib] section
# add these
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.hit.edu.cn/archlinuxcn/$arch
Server = https://repo.huaweicloud.com/archlinuxcn/$arch
38 collapsed lines
sudo pacman-key --lsign-key "farseerfc@archlinux.org"
sudo pacman -S archlinuxcn-keyring
sudo pacman -S paru
pacman -Syyu
# learn from https://medium.com/@mynameised/using-keyd-in-hyprland-to-rebind-your-right-alt-key-to-escape-linux-782086c81c75
sudo paru -S keyd
sudo vim /etc/keyd/default.conf
[ids]
*
[main]
# hold is control, tap is esc
capslock = overload(control, esc)
vim ~/.config/hypr/hyprland.conf
# add these
exec-once = sudo keyd
paru -S fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki
# add pinyin
# ctrl+space switch
vim /etc/environment
GTK_IM_MODULE=fcitx
# or choose setting as https://fcitx-im.org/wiki/Using_Fcitx_5_on_Wayland#GTK_IM_MODULE
QT_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx
# from https://www.bilibili.com/read/cv24998287/
paru -S xorg-xrdb
vim ~/.config/hyprland.conf
monitor = ,highres,auto,2
# exec-once = xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2
# exec-once = echo 'Xft.dpi:192' | xrdb -merge
env = GDK_SCALE,2
env = XCURSOR_SIZE,32
# Chrome
# Go to chrome://flags and search for Preferred Ozone platform. From the drop-down menu, select Wayland and restart Chrome.
# enable Wayland text-input-v3
paru -S sof-firmware linux-firmware

dotfiles

myDotfiles