archlinux保姆级自定义安装-最简单,最小化 自定义分区安装 、efi和bios模式

archlinux其实还是很容易安装的,

本文最后更新 2022-12-01 安装系统需要你先明白几个基本概念,如果你能明白,那么手动安装一个archlinux也就轻松简单。不明白照着做也可。

  • 引导,一般电脑支持efi和传统bios两种分区模式,
    • bios引导分区模式需要用传统磁盘格式也就是只能4个主分区,或者3个主分区+扩展的N个分区
    • efi引导的分区模式可以用gpt,也就是可以4个以上主分区,但是必须有一个fat16 fat32的分区,主板启动后从磁盘的这个分区里面找efi引导程序
  • 磁盘 linux下的磁到 /dev下 一般用 fdisk -l命令查看
  • 分区,linux下分区 需要挂载到文件目录。开机自动挂载的配置文件是 /etc/fatab

# 启动后

如果是笔记本需要先配置wifi,arch的安装镜像也支持usb共享多数手机的网络。
如果不想在机器上上敲下面的命令,可以先给root设置一个临时密码passwd 输入两次密码
然后ip a查看一下ip,再在一台机器上ssh链接上ssh root@IP ,就可以抄袭下面的作业了。
archlinux自带的 archinstall 已经很好用,一般情况不再建议手动安装。

# 分区

efi模式至少两个分区,bois模式1个只一个分区也可以 1、efi分区 fat32格式,可以和黑苹果 win公用 (bois安装的分区 看文末) 2、根分区,格式自己随意,如果只是跑简单业务建议用ext4 其他分区自定义 分区可以用winpe diskgen,也可以用 live盘的 cfdisk

# 启动和准备

使用archlinux 官网live iso 下载地址 https://archlinux.org/download/ 底部有国内镜像源 写入到U盘,或者用ventoy等支持iso启动的工具启动iso。 启动后先 ping baidu.com 看看是否联网了,如果没有先去配置联网环境,此处掠过,不是笔记本的都简单,如果网卡不能识别,可以暂时usb插iPhone 打开共享

# 编辑源,自己找一个靠谱源。部分源更新慢,比如 nuesoft,部分源速度不稳定比如aliyun,其他自己选

此步骤不是必须的,目前新版archlinux 2022.11.1以后版本的iso 在联网环境下,可以自动帮你整理最快的镜像作为默认源

1
nano /etc/pacman.d/mirrorlist

例如清华源地址,放到 最前面 Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

# 可能需要fdisk -l 查看一下磁盘并格式化部分分区

可以用cfdisk 创建操作分区,使用uefi启动的电脑,至少需要两个分区,一个efi一个根分区,然后用mkfs.xxxx 格式化对应的分区

1
cfdisk /dev/<磁盘名  sda1 nvmexxxx mmcxxx vdaxxx>

cfdisk 比diskpart简单一些,并且是命令行的图形界面

# 关于分区

如果是efi模式启动,必须需要两个分区 一个 32M 以上的efi分区格式化为fat16或者fat32格式,另外一个分区格式为linux常用文件系统格式,推荐ext4格式
如果是传统启动模式,那么不需要额外的分区,最小只需要一个分区 / 格式为

# 关于分区格式

linux下不是不是可以安装到fat或者exfat 甚至ntfs分区格式,只是不推荐,会有很多莫名其妙的问题。
一般常用的分区格式 还是 ext4,其他更先进的分区格式 xfs,BtrFS,GlusterFS 除非非常有需求,比如压缩 快照 raid等,否则不建议。
如果你双系统,有和win交换文件的需求,强烈建议单独创一个exfat分区作为文件交换用,或者在win下安装ext4的读取驱动(不要写)

另外,win下常用的diskgen 对ext4分区的支持是有限的,但是可以完成基本的分区到镜像的备份。读取功能不稳。

# 格式需要的分区

cfdisk只能分区不能格式,还是需要用mkfs工具格式,如果已经格式好了。或者对应的分区已经有文件,可以跳过这步。

1
2
3
4
# efi分区
mkfs.fat -F 32 /dev/nvme0n1p1
## 根分区
mkfs.ext4 /dev/nvme0n1p2

马上2023年 brtfs已经很不错了um efi必须 fa32 或fat16, 根分区 分区格式我这里用ext4
如果要做swap分区,自己看一下官网wiki,我喜欢用文件swap所以这里没弄。 设置 文件swap

# 挂载分区

根分区挂载到/mnt efi分区挂载到/mnt/boot/efi

1
2
3
mount /dev/nvme0n1p2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi

如果你还要做swap分区,继续弄,也可以后面开启swapfile的
如果是传统启动模式 不是 efi模式 可以跳过 挂载efi的这步。

# /mnt开始安装

最基本的系统

1
pacstrap /mnt base linux 

另外还有三个常用包 自己选择是否安装。linux-headers linux-firmware base-devel base-devel包里面 有编译和yay(aur)常用的工具

如果有提示 key错误,尤其是openssl的,可能需要先执行一次

1
2
pacman -S archlinux-keyring
pacman-key --refresh-keys

或者 干脆运行一次archinstall 然后会自动更新keyting,再退出就好了

# 写入自动挂载fstab

直接用genfstab 工具,免去手写fstab配置文件的麻烦

1
2
genfstab -U /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab

# 切换到新系统

1
arch-chroot /mnt

# 继续安装一些基础包 简单文本编辑nano sudo权限管理 或者 dosa

1
pacman -S nano 

你也可以装vim

# 可选包网络相关的

dhcp客户端,ssh服务器端,网络管理,usb共享iPhone网络

1
pacman -S dhcpcd openssh  

# 设置几个需要开机启动的服务

1
2
systemctl enable dhcpcd
systemctl enable sshd

可选包

1
2
3
pacman -S  networkmanager usbmuxd
systemctl enable systemd-resolved
systemctl enable NetworkManager

# 修改root密码 设置用户等

# root密码

1
passwd

# 添加用户

添加一个日常使用用户,同时这个用户默认可以ssh登录

1
2
useradd -m -G wheel -s /bin/bash leiyanhui
passwd leiyanhui

我用fish替代bash 但是不建议 用fish 彻底替代bash,因为fish和bash ash之间有兼容问题。 基础shell 还是 base 或者 ash。 想要fish自动自动,以后修改 .bashrc文件就好了

1
pacman -S fish

# 设置wheel用户组的sudo权限

# sudo

1
2
pacman -S sudo
nano /etc/sudoers

找到# %wheel ALL=(ALL:ALL) ALL 取消前面的#注释 或者带 NOPASSWD的 那行,以后sudo 就不需要密码

# doas

替代sudo 更轻量更简单,如果要用xrdp的话不建议用doas

1
2
3
4
pacman -S doas
nano /etc/doas.conf
------
permit :wheel

或者permit persist :wheel 后面需要有一个空行 设置文件权限

1
2
chown -c root:root /etc/doas.conf
chmod -c 0400 /etc/doas.conf

验证

1
doas -C /etc/doas.conf && echo "config ok" || echo "config error" 

替代sudo

1
ln -s /bin/dosa /bin/sudo 

# 设置时区 对时

1
2
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

# 写入引导

还是建议用grub,因为如果你要后面折腾虚拟化 kvm之类的会省心甚多 (bois安装的分区 看文末)

1
2
3
pacman -S grub efibootmgr
grub-install /dev/nvme0n1    #(注意,不是efi分区,而且是整个磁盘)
grub-mkconfig -o /boot/grub/grub.cfg

grub-mkconfig 这个工具在efibootmgr包里面

# 重启

1
2
3
exit
# 退出到live盘
reboot # 或者 poweroff

# 系统备份

可以用live盘 直接 tar 整个 /mnt,如果用ext4分区 也可以Windows用diskgen备份。 修复引导 就live 盘 arch-chroot 到磁盘分区,然后 重新写入一次引导 和配置文件

# 传统启动模式安装

适合于 老设备,或者 虚拟机,尤其是 pve下的kvm模式 只需要最少一个分区就可以了 ,其他操作和efi一样

注意点 就是 cfdisk 第一次打开的时候 不能用gpt分区,用dos分区模式,如果弄错了就要重新设置格式,会丢失所有数据。

parted /dev/vda
#然后输入
mklabel msdos
#提示你会丢失所有书
Yes
#退出
quit

我这个系统是用来打算做kvm的底层的,所以除了docker不再安装任何东西

所有安装的包记录

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
base linux linux-headers linux-firmware
#基本工具
sudo nano
#网络
dhcpcd networkmanager openssh
#引导
grub efibootmgr
#个人需要的 exfat 和 fish
exfat-utils
fish
# kvm相关的
qemu-base
ovmf

我上面没有设置swap 是因为我习惯性用swap file 查看这里: https://dev.leiyanhui.com/arch/swapfile/

# 进阶功能和相关记录文章

# 手动安装一个archlinux

查看这里: https://dev.leiyanhui.com/arch/base-install/

# 桌面环境dwm

查看这里:https://dev.leiyanhui.com/linux/arch-install-dwm/

# 桌面环境i3w

查看这里:https://dev.leiyanhui.com/arch/xinitc-xrdp/

# arch下kvm基本安装

查看这里: https://dev.leiyanhui.com/kvm/arch-install-kvm/

# arch下kvm虚拟机开机自动启动

查看这里: https://dev.leiyanhui.com/kvm/auto_start_vm/

# 关于efi模式启动

查看这里: https://dev.leiyanhui.com/kvm/ovmf/

# kvm安装macos

查看这里:https://dev.leiyanhui.com/kvm/install-macos-base/

# kvm安装macos附加上一个win

查看这里:https://dev.leiyanhui.com/kvm/macos_add_win10/

# 进阶:配置桥接网络,以及硬件直通

桥接网络:https://dev.leiyanhui.com/kvm/net-br/
硬件直通:https://dev.leiyanhui.com/kvm/kvm/pci-usb/

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计