疫情期间不让出门,在家都快长蛆了,重温+折腾一下UEFI+GPT模式下安装Archlinux
环境准备
系统镜像:http://mirrors.aliyun.com/archlinux/iso/2020.01.01/archlinux-2020.01.01-x86_64.iso
虚拟机里面搞的,注意在VMware中设置虚拟机固件类型使用UEFI
硬盘分区
使用ISO镜像引导系统后要做的第一件事情
# fdisk -l
先确认一下硬盘的设备名称是/dev/sda
# cfdisk /dev/sda
开始分区,注意选择gpt
类型
具体划分:
设备 | 大小 | 类型 |
---|---|---|
/dev/sda1 | 512M | EFI System |
/dev/sda2 | 2G | Linux swap |
/dev/sda3 | 剩余所有空间 | Linux filesystem |
GPT
分区类型下不存在bootable
的概念,所以划分好之后直接Write
保存一下就行了.
格式化分区
# mkfs.fat -F32 /dev/sda1
# mkfs.ext4 /dev/sda3
# mkswap /dev/sda2
# swapon /dev/sda2
需要注意的是,UEFI要用到的第一个EFI分区必须格式化为
FAT32
类型
修改镜像源
不改成国内镜像源的话,会慢到怀疑人生
# vim /etc/pacman.d/mirrorlist
直接在第一行前面插入阿里云的镜像地址就行,内容如下:
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch
**必要操作:**更新一下包目录缓存
# pacman -Sy
安装系统
将上面分好的第三个分区挂载到mnt
位置后开始安装
# mount /dev/sda3 /mnt
# pacstrap /mnt base linux linux-firmware vim net-tools netctl dhcpcd
这里额外安装了vim
,netctl
,dhcpcd
和net-tools
,由于使用了阿里云的镜像服务器,所以速度那是钢钢的.
说明: netctl
和dhcpcd
用于后面配置通过DHCP自动获取IP地址的网络.特别注意,是dhcpcd
,末尾是cd
!
装完后生成一下启动挂载点配置fstab
文件
# genfstab -U /mnt >> /mnt/etc/fstab
本地化配置
接下来的操作需要使用arch-chroot
命令切换到/mnt
已经安装好的系统环境下进行
# arch-chroot /mnt
- 修改主机名
# echo "arch-vm" > /etc/hostname
- 修改本地字符集
# vim /etc/locale.gen
取消注释:zh_CN.UTF-8 UTF-8
- 修改时区+开启ntp
# timedatectl set-timezone Asia/Shanghai
# timedatectl set-ntp true
- 修改
root
账户密码
# passwd
- 创建普通账户
# useradd -m -g users -G wheel -s /bin/bash dexter
# passwd dexter
这里需要注意普通账户需要加入到
wheel
组中,后面会给这个组分配sudo
的执行权限
- 为普通账户增加
sudo
权限
# pacman -S sudo
# visudo
取消注释%wheel ALL=(ALL) ALL
GRUB引导程序安装
这一步是重点,GRUB装不好的话,上面的就全tm白费劲了
# pacman -S grub efibootmgr dosfstools os-prober mtools
# mkdir /boot/EFI
# mount /dev/sda1 /boot/EFI #Mount FAT32 EFI partition
# grub-install --target=x86_64-efi --bootloader-id=grub_uefi --recheck
# grub-mkconfig -o /boot/grub/grub.cfg
确认最后一步grub-mkconfig
输出结果中可以找到各种image表示安装配置成功了.
退出当前的arch-chroot
环境后重启进入安装好的本地系统
# exit
# reboot
网络配置
刚装好的系统是连不上网的,还得再配置一下,这里就用到了之前额外安装的netctl
# ifconfig -a 查看一下网卡的设备名,我这里是ens33
# cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/ens33
# vim /etc/netctl/ens33
修改配置中的Interface=ens33
# netctl list
# netctl start ens33
# netctl enable ens33
番外篇-安装Deepin的DDE桌面环境
# sudo pacman -S deepin deepin-extra lightdm lightdm-deepin-greeter
修改默认欢迎界面
# vim /etc/lightdm/lightdm.conf
找到并修改下面行:
greeter-session=lightdm-deepin-greeter
设置lightdm
开机自动启动(自动进入图形界面)
# systemctl enable lightdm
# reboot
安装open-vm-tools
# pacman -S open-vm-tools
# cat /proc/version > /etc/arch-release //open-vm-tools 需要这个版本信息
# systemctl enable vmware-vmblock-fuse vmtoolsd
实现向虚拟机中拖拽文件的效果需要使用gtkmm
# pacman -S gtkmm
重启一下系统
番外篇:安装Virtualbox
折腾了一下在移动硬盘上装了Arch,在安装VirtualBox的时候又遇到了各种坑,记录一下
正常安装
$ sudo pacman -S virtualbox
装完之后是无法直接用的,还需要下面的操作
$ sudo vim /etc/modules-load.d/virtualbox.conf
编辑内容如下(就一行)
vboxdrv
然后再把当前用户添加到vboxusers
组里面
$ sudo usermod -aG vboxusers YOUR_USER_NAME_HERE
重启一下系统,使用下面命令检测一下vboxdrv
模块是否正常启用
$ sudo lsmod | grep vboxdrv
正常的话应该输出如下内容:
[lpwm@ArchLinux-Sandisk ~]$ sudo lsmod |grep vboxdrv
vboxdrv 503808 2 vboxnetadp,vboxnetflt
这时候再运行Virtualbox开虚拟机就ojbk了