EFI启动模式】如果是UEFI启动模式,cfdisk到某个物理设备后,可以通过底部的[Delete]命令 删掉所有现有分区,然后新建4个分区,一个3M的BIOS boot分区[不加这个分区,没用],一个300M的boot EFI分区,一个最好至少1G的swap分区(我选了2G),最后一个分区用掉所有剩余空间(这四个分区创建顺序不要错了)。用底部[New]命令创建分区和设定分区大小,用[Type]
设定各个分区的格式,BIOS boot分区类型就是BIOS boot[不加这个分区,没用],boot EFI
分区设为EFI System
,swap
分区设为Linux swap
,剩下的分区设为Linux root x86-64
;然后再用[Write]分别对这四个分区真正按照分区类型和大小创建分区;
[这里解释一下,一开始Free Space里只有一个未分区的硬盘,Free Space选择它,最下面有[New],按下New后,下面会提示new的分区大小是多少,第一次对Free Space我是用来分出BIOS boot分区的,因此删除默认给出的大小,输入3M]
选择write
写入分区表(看上面一点解释,是三个分区分别都write),在出现的对话框中用yes
确认写入。
等cfdisk里面delete/new/type/write都搞定后[Quit]退出cfdisk
分区完成以后就要格式化一下硬盘:
BIOS boot分区不需要手动格式化[不加这个分区,没用];
【UEFI启动模式】如果是UEFI启动模式,boot EFI
分区要格式化为FAT32
分区(就是那个EFI System的)。
mkfs.vfat -F32 /dev/sdb2
那个大于1G的分区格式化为swap,命令如下:
[我这里的swap由于是第3次分的,所以它在我这里是/dev/sdb3]
mkswap /dev/sdb3
# 类似mount
swapon /dev/sdb3
这里面的sdXY
要按照自己的实际情况来填,在我的例子当中我只有一个硬盘,同时swap分区是放在sdb3
分区的,这里我的参数就是/dev/sdb3
。
接着再格式化我的/dev/sdb4(root分区)为ext4
,相应的命令是(注意,如果是移动U盘装系统的话,建议用ZFS/Btrfs文件系统,因为移动U盘系统容易出现断电崩溃等特殊情况,而ZFS/Btrfs的写时拷贝和对应的快照功能很适合恢复数据)
mkfs.ext4 /dev/sdb4 # 带日志功能
mkfs.ext4 -O "^has_journal" /dev/sdb4 # 不带日志功能,由于带日志功能会加速消耗U盘的寿命,所以可以用不带日志功能的,同样的原因,Swap分区其实也应该去掉
或者(btrfs文件系统):
mkfs.btrfs /dev/sdb4
(这个是root分区,roo分区因为最大所以格式化会比较久)。如果分了更多的区,那就要依次进行格式化。这个格式化操作会比较慢一些,略微等一下就好。如果不记得自己的分区表了,可以用cfdisk
或fdisk -l
检查一下自己的分区表,可以从容量和类型等属性来判断具体某个分区是干什么用的。
格式化硬盘
格式化完成以后就要挂载硬盘,因为这个时候的系统是运行在U盘里的,而你要对电脑的硬盘进行操作,显然需要挂载一下,相当于把硬盘当成大号U盘(系统u盘)插到小u盘(安装u盘)上面。命令当中的/dev/sdXY
需要根据实际情况设置为自己的根目录,也就是那个比较大,占掉所有剩余空间的硬盘分区(root目录,ext4文件系统的那个,我的是/dev/sdc3)。
如果是btrfs文件系统,还需要做如下操作:
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@log
btrfs subvolume create /mnt/@pkg
btrfs subvolume create /mnt/@yay
btrfs subvolume create /mnt/@downloads
umount /dev/sdb4 # 卸载分区
和:
# 挂载根目录
mount /dev/sdb4 /mnt -o subvol=@,noatime,discard=async,compress=zstd
# 挂载家目录
mkdir /mnt/home
mount /dev/sdb4 /mnt/home -o subvol=@home,noatime,discard=async,compress=zstd
# 挂载 /var/log 目录
mkdir -p /mnt/var/log
mount /dev/sdb4 /mnt/var/log -o subvol=@log,noatime,discard=async,compress=zstd
# 挂载 /var/cache/pacman/pkg 目录
mkdir -p /mnt/var/cache/pacman/pkg
mount /dev/sdb4 /mnt/var/cache/pacman/pkg -o subvol=@pkg,noatime,discard=async,compress=zstd
# 挂载 /home/silentdoer/.cache/yay 目录
mkdir -p /mnt/home/silentdoer/.cache/yay
mount /dev/sdb4 /mnt/home/silentdoer/.cache/yay -o subvol=@yay,noatime,discard=async,compress=zstd
# 挂载 /home/silentdoer/Downloads 目录
mkdir -p /mnt/home/silentdoer/Downloads
mount /dev/sdb4 /mnt/home/silentdoer/Downloads -o subvol=@downloads,noatime,discard=async,compress=zstd
chattr +C /mnt/var/log
chattr +C /mnt/var/cache/pacman/pkg
chattr +C /mnt/home/silentdoer/.cache/yay
chattr +C /mnt/home/silentdoer/Downloads
【UEFI启动模式】创建EFI挂载分区:mkdir -p /mnt/boot/EFI
注意这里的sdb2是上面300M的那个EFI Systemmount /dev/sdb2 /mnt/boot/EFI
FLAG-grub
正式安装
选择合适的镜像源,使用vim打开/etc/pacman.d/mirrorlist
,找一个感觉速度比较快的镜像源用dd
切掉,gg
到首行按p
粘贴一下(最上面的最优先),然后:wq
存储并退出。这样在安装软件的时候,网速就会比较快了。当然也可以直接使用清华镜像源(即第一个Server上面加一行:
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$a