archlinux
archlinux linuxInstall
EFI/GPT
systemctl start sshd
passwd root
如果出现找不到分区的情况 unable to open /dev/sda1: No such file or directory
partprobe /dev/sda1
# or partprobe
分区
# lsblk 或 fdisk -l 查看当前可用的分区或磁盘
# 使用 cfdisk 分区,分两个区,一个引导分区,一个用作 LVM 的分区
# 如果是 BIOS/MBR 方式引导,不需要创建引导分区
# 如果已经有引导分区了,记下分区路径 /dev/sdxY
# 200M EFI /dev/sda1
# 19.8G LVM /dev/sda2
# cfdick 启动后选择 gpt
cfdisk
# 写入文件系统(格式化)
mkfs.fat -F32 /dev/sda1
# 配置 gpt,也可以用 fdisk 或 gdisk (gpt 版本 fdisk)
parted
select /dev/sda
mklable gpt
lvm 创建(如果不需要 lvm 直接正常给分区写入文件系统即可)
# 1. 创建物理卷(PV)所在的分区。2. 创建物理卷(PV)。如果你只有一个硬盘,那么你最好只创建一个分区一
# 个物理卷;如果你有多个硬盘,你可以创建多个分区,在每个分区上分别创建一个物理卷。3. 创建卷组(VG),
# 并把所有物理卷加进卷组。4. 在卷组(VG)上创建逻辑卷(LV)
lvmdiskscan
# 创建物理卷
pvcreate /dev/sda2
pvdisplay
# 创建卷组
vgcreate VolGroup00 /dev/sda2
vgdisplay
# 在卷组上创建逻辑卷
lvcreate -l +100%FREE VolGroup00 -n lvolroot
lvdisplay
# 出错后删除命令
# lvremove /dev/VolGroup00/lvolroot
# vgremove VolGroup00
# pvremove /dev/sda2
# 加载模块、并扫描与激活卷组
modprobe dm-mod
vgscan
vgchange -ay
# 写入文件系统(格式化)
mkfs.ext4 /dev/mapper/VolGroup00-lvolroot
挂载分区
mkdir -p /mnt
mkdir -p /mnt/boot
mount /dev/mapper/VolGroup00-lvolroot /mnt
mount /dev/sda1 /mnt/boot
dhcpcd
dhcpcd
wifi-menu
pacman -S netctl dialog
wifi-menu
# 如果wifi-menu无法联网,尝试下面方法
systemctl start wpa_supplicant.service
nmcli dev wifi list
nmcli device wifi connect "wifi name" password "wifi password"
iwctl
pacman -S iwd
systemctl enable iwd
systemctl start iwd
iwctl
配置国内镜像源
# 将以下国内镜像移到开头,没有就手动输入一下,遇到过有时候有,有时候没有的情况
# Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
# Server = http://mirrors.zju.edu.cn/archlinux/$repo/os/$arch
vim /etc/pacman.d/mirrorlist
安装系统
pacstrap /mnt base base-devel linux vim dhcpcd git
写分区表
genfstab -U /mnt >> /mnt/etc/fstab
# genfstab -L /mnt >> /mnt/etc/fstab
切换系统
arch-chroot /mnt
# 设置 root 密码
passwd root
启用 lvm 务必保证 lvm2 已安装
# 在 block 与 filesystem 这两项中间插入 lvm2
vim /etc/mkinitcpio.conf
# 修改后必须重新执行以下命令
pacman -S lvm2
英特尔 CPU 需要安装
pacman -S intel-ucode
安装 grub bootloader:
# os-prober 可用于检测现有系统
pacman -S os-prober ntfs-3g grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
grub-mkconfig -o /boot/grub/grub.cfg
# or BIOS/MBR
pacman -S grub
# /dev/sdx 是硬盘,不是分区,不要带分区号
grub-install --target=i386-pc /dev/sdx
grub-mkconfig -o /boot/grub/grub.cfg
安装 openssh
pacman -S openssh
systemctl enable sshd
systemctl start ssh
新建用户,配置 sudo(方便 ssh 登录,不要直接以 root 登录)
useradd -m -G wheel zy
passwd zy
pacman -S sudo
vim /etc/sudoers # 注释掉 %wheel 相关的行,最好不要启用 NOPASSWD
退出重启
exit
umount -R /mnt
reboot
Config
先联网
更新系统时间
timedatectl set-ntp true
设置时区
echo Asia/Shanghai > /etc/timezone
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
设置locale
cat <<'EOF' >> /etc/locale.gen
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8
EOF
locale-gen
# 解决终端 unicode 提示符造成的问题
cat <<'EOF' >> /etc/locale.conf
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
LC_CTYPE=zh_CN.UTF-8
EOF
设置主机名
echo "your-hostname" > /etc/hostname
cat <<'EOF' > /etc/hosts
127.0.0.1 localhost
::1 localhost
EOF
创建交换文件
dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo "/swapfile none swap defaults 0 0" >> /etc/fstab
启用 dhcpcd 服务
systemctl enable dhcpcd.service
图形界面网络配置
pacman -S dialog wpa_supplicant networkmanager network-manager-applet netctl
# 桌面环境使用的是NetworkManager
sudo systemctl disable netctl
sudo systemctl enable NetworkManager
安装图形界面
# 驱动
sudo pacman -S xf86-video-intel
# 图形服务
sudo pacman -S xorg
# 桌面环境
sudo pacman -S xfce4 xfce4-goodies
# 或 sudo pacman -S plasma kde-applications
# 安装桌面管理器
sudo pacman -S sddm
sudo systemctl enable sddm
# 字体,基本能解决 cjk 字体和 emoji 问题
pacman -S noto-fonts-cjk noto-fonts-emoji
pacman -S adobe-source-code-pro-fonts
# 文鼎字体,楷书 (带有笔触) Unicode 字体 (推荐启用反锯齿)
# emacs 用的方正楷需要自行安装
pacman -S ttf-arphic-ukai
# pacman -S noto-fonts
# 查看已安装字体
fc-list
# 只显示 family 和 style
fc-list : family style
# /usr/share/fonts/ 或 ~/.local/share/fonts
copy {your font file} /usr/share/fonts/
fc-cache -vf
输入法 Fcitx_(简体中文)
# 安装输入法及输入法模块
pacman -S fcitx fcitx-im fcitx-configtool
# 配置输入法,点击加号,取消勾选 Only Show Current Language,搜索选择需要的输入法即可,如 wubi
fcitx-configtool
vim /etc/profile
# 在文件开头加入以下行,解决一些软件无法调出fcitx的问题
# export XMODIFIERS="@im=fcitx"
# export GTK_IM_MODULE="fcitx"
# export QT_IM_MODULE="fcitx"
如果是虚拟机安装
open-vm-tools
VMware_Tools_与_Open-VM-Tools_方案对比
sudo pacman -S open-vm-tools gtkmm gtk2 gtkmm3
sudo systemctl enable vmtoolsd.service
sudo systemctl start vmtoolsd.service
sudo systemctl enable vmware-vmblock-fuse.service
sudo systemctl start vmware-vmblock-fuse.service
# 通过 mkinitcpio.conf 加载以下模块
# MODULES="vsock vmw_vsock_vmci_transport vmw_balloon vmw_vmci vmwgfx"
sudo vim /etc/mkinitcpio.conf
mkinitcpio -p linux
sudo reboot
Fix
安装盘启动
lsblk 或 fdisk -l 查看当前可用的分区或磁盘
将系统所有分区及引导分区挂载到 /mnt
mkdir -p /mnt
mkdir -p /mnt/boot
mount /dev/mapper/VolGroup00-lvolroot /mnt
mount /dev/sda1 /mnt/boot
arch-chroot /mnt
修复相应问题
Pacman
# pacman -h
# 查询
pacman -Ss package_name
# 安装
pacman -S package_name
# !!! 永远使用该方式更新,不要进行部分更新,安装包时出现 404 就该更新了,或者安装包之前就更新
# archlinux 不支持部分更新 https://wiki.archlinux.org/title/System_maintenance#Partial_upgrades_are_unsupported
pacman -Syu
# 软件包缓存在 /var/cache/pacman/pkg/,不会自动清理,如果太多,可以删一下或用 paccache 删
# !!! 永远不要运行 pacman -Sy
# !!! 永远不要运行 pacman -Sy
# !!! 永远不要运行 pacman -Sy
# !!! 手贱部分更新后,更新系统时有冲突解决方案 --overwrite 掉冲突的项
# pacman -Syu --overwrite /usr/include/\* --overwrite /usr/lib/\* --overwrite /usr/share/locale/sr/LC_MESSAGES/libc.mo
# 删除,保留依赖
pacman -R package_name
# 删除,删除依赖
pacman -Rs package_name
# 删除,删除配置
pacman -Rn package_name
# 删除,删除依赖和配置
pacman -Rsn package_name
LVM
# 查看当前磁盘对应的物理券
lvmdiskscan
# 假设新的硬盘为 /dev/sdb
# 1. 给新硬盘分区并设置 type 为 Linux LVM,分区记为 /dev/sdb1
cfdisk /dev/sdb
# 2. 分区完后创建物理卷
pvcreate /dev/sdb1
pvdisplay
# 3. 将 /dev/sdb1 添加到卷组,vgdisplay 查看卷组名
vgextend VolGroup00 /dev/sdb1
# 4. 扩展相应的逻辑卷
lvextend -l +100%FREE /dev/mapper/VolGroup00-lvolroot
# 5. 写入文件系统使扩容生效
# ext4
resize2fs /dev/mapper/VolGroup00-lvolroot
# 如果是 xfs,使用 xfs_growfs /dev/mapper/VolGroup00-lvolroot