Archlinux安装(UEFI启动+LVM)

原创
2020/12/11 11:50
阅读数 3.1K

有段时间没玩archlinux了,之前都是bios引导,本次改用efi引导。

先决条件:BIOS中设置引导方式为UEFI,有网络连接
安装介质:archlinux-2020.12.01-x86_64.iso(其实滚动更新版安装介质随便选,安装完成更新就完事了)
安装过程:

本次安装主要分以下几个部分,可以有针对性的查看:

  • 磁盘准备(分区、LVM卷组配置)

  • 软件安装(镜像源配置)

  • chroot后的配置(chroot配置和kernel重新生成用以支持efi和lvm)

具体步骤:
磁盘准备
  1. 磁盘分区

我们使用parted进行分区
/dev/sda是我的磁盘,所以我们用parted操作此磁盘

parted /dev/sda


建立GPT 分区,这一步会擦除磁盘上的数据(注意备份)  
mklabel gpt

建立ESP分区  
mkpart ESP 2048s 513M    // 2048s 单位s表示是扇区,为1M,建一个大小为500M的esp boot分区

建立其他分区(其他全部划为一个分区,使用lvm)  
mkpart primary 513M -1    // 主目录 -1 表示剩下所有的磁盘容量,因后续分区使用lvm管理,此步把容量全部划分给LVM

设定ESP分区标志为boot  
set 1 boot on
  1. 磁盘格式化
格式化esp分区
root@archiso ~ # mkfs.fat -F32 /dev/sda1 
mkfs.fat 4.1 (2017-01-24)

创建PV
root@archiso ~ # pvcreate /dev/sda2
Physical volume "/dev/sda2" successfully created.

创建vg
root@archiso ~ # vgcreate vg_archlinux /dev/sda2
Volume group "vg_archlinux" successfully created

创建lv(swap)
root@archiso ~ # lvcreate -L 4G vg_archlinux -n lv_swap
Logical volume "lv_swap" created.

格式化swap分区并启用
mkswap /dev/mapper/vg_archlinux-lv_swap
swapon /dev/mapper/vg_archlinux-lv_swap

创建lv(root),root分区使用剩余所有空间,并格式化为xfs
root@archiso ~ # lvcreate -l +100%FREE vg_archlinux -n lv_root
Logical volume "lv_root" created.
mkfs.xfs /dev/mapper/vg_archlinux-lv_root

验证lv信息
root@archiso ~ # lvs
  LV      VG           Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv_root vg_archlinux -wi-a----- <195.52g                                                    
  lv_swap vg_archlinux -wi-a-----    4.00g
软件安装
  1. 修改软件源为国内
保留国内源即可,以163举例,加速软件安装
Server = https://mirrors.163.com/archlinux/$repo/os/$arch
  1. 挂载分区(将root分区挂载mnt,同时挂载好efi分区)
root@archiso ~ # mount /dev/mapper/vg_archlinux-lv_root /mnt
root@archiso ~ # mkdir -p /mnt/boot/efi
root@archiso ~ # mount /dev/sda1 /mnt/boot/efi 
  1. 软件包安装(xfs需安装xfsprogs,lvm需安装lvm2,其他如base-devel,openssh,man-db, man-pages 和 texinfo可选装,建议安装)
pacstrap -i /mnt base linux linux-firmware base-devel  vim  xfsprogs man-db man-pages texinfo  xfsprogs lvm2 openssh
PS:如未安装lvm2,编译内核会报sd-lvm2无法编译
  1. 软安装后配置
genfstab -U /mnt >> /mnt/etc/fstab
chroot后的配置
  1. chroot到新的OS并完成以下配置
root@archiso ~ # arch-chroot /mnt
[root@archiso /]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

运行 hwclock(8) 以生成 /etc/adjtime:
[root@archiso /] hwclock --systohc

本地化配置
[root@archiso /]# echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
[root@archiso /]# locale-gen
Generating locales...
  en_US.UTF-8... done
Generation complete.
echo "LANG=en_US.UTF-8" > /etc/locale.conf

主机名配置
echo "mytools" > /etc/hostname
或
hostnamectl set-hostname mytools

将下列内容添加到/etc/hosts
127.0.0.1       localhost
::1             localhost
127.0.0.1       mytools.localdomain     mytools

其他配置
passwd 修改密码
  1. 启用网络功能(安装NM后可使用nmcli和nmtui进行配置)
pacman -S networkmanager
systemctl enable NetworkManager
  1. 重新编译内核支持systemd和lvm
修改/etc/mkinitcpio.conf文件,在HOOKS中增加systemd和sd-lvm2(前面需安装lvm2软件包,不然会报错,如前面忘记安装,使用pacman -S lvm2即可)

HOOKS=(base **systemd** ... block **sd-lvm2** filesystems)

使用mkinitcpio重新生成kernel,如报错请仔细检查上述步骤
mkinitcpio -p linux
  1. 安装grub引导
安装grub和efibootmgr支持efi引导
pacman -S grub os-prober efibootmgr

安装grub到硬盘并指定efi启动分区
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Arch --recheck

生成grub配置文件
grub-mkconfig -o /boot/grub/grub.cfg
  1. 安装完成,重启OS
退出chroot环境
exit

卸载分区
umount /mnt/boot/efi
umount /mnt

重启验证
reboot

至此安装完成,其他个性化配置可自行DIY 上述安装过程为手动安装,偷懒的话可以使用aui安装脚本完成定制完成,地址如下:Archlinux Ultimate Installer AUI可进行Desktop环境自动安装。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部