前言
安装环境:
- 虚拟机软件:vmware workstations pro 15.5.1
- 安装的arch linux版本:arch linux 2020.02.01
本文的目的旨在降低新手安装arch linux的难度。本文采用VMware workstation虚拟机来安装arch linux,这样大家可以采用虚拟机进行安装。同样的,本文也适用于实体机安装。虚拟机安装arch linux和实体机安装arch linux步骤基本一致。只有个别步骤不同,不同之处在本文会进行说明,供大家参考。
arch linux是软件生态最好的Linux发行版之一。几乎所有能在Linux上运行的软件,在arch Linux上都可以通过下面这条命令进行安装:
sudo pacman -S 软件包名称
可见,在arch linux上安装软件极为方便,而且软件都是最新版本的。arch linux的优点是:
1)软件生态丰富,软件库的软件更新速度很快,基本上都是最新版本。
2)高度可定制
arch linux的缺点是:
1)Arch Linux 的软件仓库和 iso 列表是不维护旧版本的,在少数情况下可能会需要安装旧版本的软件或系统,这时候必须通过Arch Linux Archive来安装,比较麻烦。
2)Arch Linux的安装过程比较繁琐,通过命令行安装,对新手不友好。
注: 本文部分内容参考借鉴了博主Eric的这篇博文以及arch wiki的安装教程,非常感谢Eric以及arch社区的小伙伴。
1.安装教程
1.1 下载安装镜像
首先到清华大学开源镜像站下载最新的arch linux镜像(写本文时arch最新的版本是archlinux-2020.02.01-x86_64.iso)。
1.2 新建一个虚拟机
然后新建一个虚拟机,步骤如下(多图预警),依次安装下图所示步骤建立即可:
虚拟机名称任意取一个,然后选择一个本地的文件夹用于存放虚拟机。
这里的磁盘容量选择为100G,这里的100G并不是说选择之后会立即占用硬盘100G空间,而是指的是允许虚拟机占用的最大硬盘空间。然后选择存储为单个文件,有助于提高虚拟机磁盘性能。
下面将虚拟机设置为UEFI启动,便于arch linux的安装。arch linux官方也推荐这种方式。
其它硬件的配置如下图所示,内存设置为2G,处理器数量为1,每个处理器的内核数量为2。然后删除了打印机,因为并不需要打印机。
注: VMware workstations说的处理器数量和内核数量分别对应实际CPU的内核数和线程数。如一个4核8线程的CPU,在VMware workstations看来一共有4个处理器和8个内核。小伙伴们可以根据自己的实际硬件配置来配置处理器。
1.3 开始安装arch linux
1.3.1 确认是UEFI启动
配置完成后,打开虚拟机,如下图所示,直接选择第一项[Arch Linux archiso x86_64 UEFI CD ]进入到系统即可。
启动之后,输入如下命令,如果有输出,证明成功使用UEFI启动,如果显示没有这个文件,则证明没有成功使用UEFI启动。命令如下:
ls /sys/firmware/efi/efivars
注: 使用如下命令,可以将终端字体变大,这里设置为12:
setfont /usr/share/kbd/consolefonts/LatGrkCyr-12x22.psfu.gz
上面的命令很长,输入过程中可以按下tab键来补全。
1.3.2 确保已经联网
arch linux的安装不像Ubuntu等linux发行版的安装,arch linux必须联网才能完成整个系统的安装,因为需要从网上下载很多软件。 首先输入如下命令,检查系统是否启用了网络接口:
ip link
显示有“UP”字样则证明网络端口已经启用。如果网络端口已经启用,则输入如下命令,来通过DHCP获取ip:
dhcpcd
然后ping百度,看看是否已经正常联网:
ping -c 3 www.baidu.com
-c 3表示ping 3次。如果正常联网,则进入到1.3.3小节。
注: 如果是物理机安装,建议直接插网线来联网,然后检查是否联网和上述步骤一致。当然如果你电脑有WiFi的话,通过连接WiFi来联网也可以。连接WiFi的话,有两种方法,第一种是直接输入如下两条命令:
ip link set wlan0 up #打开无线网卡
wifi-menu #打开连接WiFi界面
然后根据界面提示连接WiFi即可。
1.3.4 进行磁盘分区
磁盘分区很多小伙伴认为很难,其实是非常简单的。只需要将硬盘划分为三个区,分别用作启动使用的EFI、交换分区SWAP、以及根目录(/)即可。三个分区的大小分别建议为512MB、4G、剩下所有空间。
注: 物理机安装时,如果你的内存很大,不要SWAP分区也可以。因为SWAP分区主要是为了应对内存不够时,从硬盘划分区一块区域当内存,这块区域就是SWAP区域。
首先执行如下命令来查看电脑的硬盘:
fdisk -l
如下图所示:
可以看到有/dev/sda这块硬盘。带有“loop”字样的硬盘可以忽略。下面我们打算对/dev/sda这块硬盘进行分区,分出三个区,分别为/dev/sda1、/dev/sda2、/dev/sda3。大小分别是512MB,4G,以及剩余所有空间。分别用作启动使用的EFI、交换分区SWAP、以及根目录(/)。
分区的步骤是:新建一个空的GPT分区表—> 设置分区大小—>设置分区的类型 —> 保存更改。
首先输入如下命令进入到/dev/sda这块硬盘:
fdisk /dev/sda
然后按如下步骤操作。
1)输入g,回车,新建一个空的GPT分区表
2)输入n,回车,建立一个新分区。然后会要求你输入分区号,这时候输入1,因为创建的是第一个分区。系统将会将这个分区自动命名为/dev/sda1。然后输入起始扇区,这里使用默认的即可,直接回车。然后输入分区大小,这里直接输入+512M,将/dev/sda1设置为512M。
3)再次输入n,按照2)的步骤,新建第二个分区,分区号使用2,起始扇区用默认的,大小那里输入+4G。
4)再次输入n, 按照2)的步骤,新建第三个分区,分区号使用3,起始扇区用默认的,大小那里使用默认的,直接回车,则使用的是硬盘剩下的所有空间。
操作如下图所示:
接下来是修改分区类型,将三个分区类型分别设置为EFI、swap、linux filesystem。操作步骤如下:
1)首先按 t ,然后输入要设置的分区号,输入1,表示设置/dev/sda1分区。然后输入要修改的分区类型,编号 1 是 EFI System Partition ,因此这里我们输入1,将/dev/sda1分区设置为EFI类型。
2)按照1)的操作将dev/sda2设置为swap分区。 其中要设置的分区号2, 分区类型时19,表示的是swap分区。
3)由于默认的分区类型就是linux filesystem。/dev/sda3不需要设置分区类型,使用默认即可。
操作如下图所示:
最后输入w,让设置的分区生效即可。
退出之后,输入命令 fdisk -l /dev/sda即可以看到硬盘分区类型如上图圈出来的部分所示,证明成功分区。
接下来分别格式化三个分区,将/dev/sda1、/dev/sda2、/dev/sda3三个分区分别是格式化为fat32、swap、ext4。执行如下三个命令即可实现:
mkfs.fat -F32 /dev/sda1
mkswap /dev/sda2
mkfs.ext4 /dev/sda3
注: 按照arch linux官方的安装教程将/dev/sda1这部分格式化成ext4格式也是可以的,但是建议将其格式化成fat32格式,因为EFI原生支持fat32。
然后执行如下命令启用交换分区:
swapon /dev/sda2
可以使用 swapon –show 来检查交换分区有没有被正确启用。
接下来新建一个/mnt/boot目录,然后将/dev/sda1、/dev/sda3分别挂载到/mnt/boot目录和/mnt目录,执行如下命令便可以实现:
mount /dev/sda3 /mnt
mkdir /mnt/boot
mount /dev/sda1 /mnt/boot
注: 先挂载/dev/sda3,然后才能创建boot文件夹。为什么需要挂载?因为我们目前运行命令的操作都是在live环境下进行,如果此时执行安装操作,那么内核等软件会被安装到启动系统时产生的live环境里,关机后软件又会消失。因此我们需要将物理的分区挂载到某个已经存在的文件夹,这样才能利用命令将软件安装到硬盘当中。可以挂载到任意空的文件夹,但是一般挂载到/mnt这个已经存在的文件夹。
1.3.5 安装内核等必须组件
安装软件前首先使用vim编辑/etc/pacman.d/mirrorlist文件,将里面所有China的软件源都移到所有软件源的最前面,建议将清华的软件源放在第一的位置,编辑完成后,mirrorlist的部分内容如下图所示:
源在文件的位置越靠前,优先级越高,因此,完成上述修改后,默认情况下将优先从清华软件源下载软件安装包。只有一个软件源下载失败,才会从另外一个软件源下载。
修改好后,执行如下命令让软件源生效:
pacman -Syy
执行如下命令安装内核及其必须组件:
pacstrap /mnt base linux linux-firmware
接下来安装网络管理器,网络管理器NetworkManager 是检测网络、自动连接网络的程序,是必须安装的。命令如下:
pacstrap /mnt networkmanager
注意,安装networkmanager之后就不需要安装dhcpcd和wpa_suplicant了,因为这两个提供的功能networkmanager都有。
1.3.6 配置系统
1)生成 fstab 文件
fstab 文件可用于定义磁盘分区,包括各种块设备或者远程文件系统应该如何装入到文件系统。执行如下命令生成:
genfstab -U /mnt >> /mnt/etc/fstab
总结来讲,fstab文件就是记录硬盘的分区类型及大小,系统需要读取这个文件才能知道硬盘的分区类型及大小。
-U 选项指的是使用UUID作为源标识符。
2)进入新安装的操作系统
前面的操作已经将arch linux的内核及其基本组件安装到了硬盘当中。但是我们现在是在live环境的根目录下,我们需要切换到刚才新安装系统的根目录下,执行如下命令切换到新安装的系统的根目录:
arch-chroot /mnt
执行了上面这一步之后,后面我们的操作相当于在硬盘上新安装的系统上进行,也就是配置新安装的操作系统才能生效。
3)设置时区
执行如下命令将系统时区设置为上海:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
然后使用以下命令将硬件时钟设置为当前系统时间:
hwclock --systohc
4)安装vim
执行如下命令安装vim:
pacman -S vim
5)本地化
这一步相当于设置系统语言。用vim编辑/etc/locale.gen文件,通过去掉相应的注释,来使能系统能够使用的语言,执行如下命令,编辑这个文件:
vim /etc/locale.gen
然后分别去掉zh_CN.UTF-8 UTF-8和en_US.UTF-8 UTF-8前面的#号。去掉之后,保存即可。注意,这里的en_US.UTF-8 UTF-8前面的#必须去掉,否则系统可能无法正常显示英文。
接着执行如下命令生产locale信息:
locale-gen
执行如下命令创建 locale.conf 文件,并相应地设置 LANG 变量:
echo LANG=en_US.UTF-8 > /etc/locale.conf
注意,这里的LANG不能设置为zh_CN.UTF-8,会导致终端输入乱码。详情可以参考arch linux本地化为中文。
6)网络配置
执行如下命令创建hostname文件:
echo YourNewHostname > /etc/hostname
上面的YourNewHostname是主机名字,是随便起的,你可以换成你喜欢的主机名字。
添加对应的信息到hosts:
vim /etc/hosts
然后将如下内容添加进该文件:
# Static table lookup for hostnames.
# See hosts(5) for details.
127.0.0.1 localhost
::1 localhost
127.0.1.1 YourNewHostname.localdomain YourNewHostname
保存并退出。设置完成后,以后登录系统,打开命令行终端,命令开头会显示 “用户名@YourNewHostname~”。
7)设置networkmanager开机启动
执行如下命令即可:
systemctl enable NetworkManager
8)设置root
输入如下命令,回车,然后输入两次root密码即可:
passwd
9)安装Intel CPU固件
pacman -S intel-ucode
如果是AMD的CPU,则把intel换成amd即可。
10)安装启动引导程序
启动加载器是 BIOS 或 UEFI 启动的第一个程序。它负责使用正确的内核参数加载内核, 并根据配置文件加载初始化 RAM disk。因此如果不安装的话,将无法启动系统。安装引导程序有很多个,比如grub就是大家熟悉的引导程序之一。这里我们来安装grub作为启动引导程序。
首先执行如下命令安装grub和efibootmgr:
pacman -S grub efibootmgr
然后部署grub:
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
产生配置文件:
grub-mkconfig -o /boot/grub/grub.cfg
到此grub配置完成。
然后退回到 live 环境,解除挂载,便可以重启系统了,依次执行如下三个命令:
exit #返回到live环境
umount -R /mnt # -R参数表示依次解除挂载/mnt及其子目录/mnt/boot
reboot
到此arch linux安装完成。
2. 可选配置
2.1 更新系统
执行如下命令来更新系统:
pacman -Syu
2.2 添加用户
到这里,arch虽然安装完成了,但是只有root这一个用户,而如果用root账号玩系统,可能比较容易玩崩。因此这里新建多一个用户,将用户添加到wheel组里面。
新建用户前,先安装sudo,这样可以让普通用户使用管理员权限,然后启用wheel组。
注:wheel组在arch linux里面是管理员所在的组,组成员拥有管理员权限。
首先安装sudo:
pacman -S sudo
然后是启用wheel组,首先执行如下命令编辑/etc/sudoers文件:
EDITOR=vim visudo
EDITOR=vim指的是利用vim来编辑文件,而不是用visudo默认的vi编辑器。
然后找到下面这一行:
# %wheel ALL=(ALL) ALL
然后把%wheel前面的空格和#号去掉,保存退出即可。注意只去掉空格和#号,不要去掉%号。
然后执行如下命令来添加一个用户:
useradd -m -G wheel 用户名
将上面的用户名换成你自己想要的用户名即可,注意,用户名必须是合法的,最好全用英文的,不含空格。
-m 参数表示同时创建该用户的家目录; -G wheel 表示同时将该用户加入 wheel 用户组。
然后执行如下命令来设置刚才新建用户的密码:
passwd 用户名
用户名是你刚才新建的用户的名字。设置好密码之后,执行如下命令重启系统,然后使用新添加的用户登录即可:
reboot
2.3 安装桌面环境
安装桌面环境前,一定要先先关闭VMware workstations的3d图形加速功能。否则安装完成后,无法正常显示图形界面。如下图所示,进入到虚拟机的设置界面,关闭3D加速功能:
注: 如果你是物理机安装arch linux,那么在安装图形界面前,要先安装显卡驱动,至少先把Intel或者AMD的集成显卡驱动装上。
2.3.1 安装gnome桌面环境
这里选择安装gnome桌面环境,首先是gnome真的是一个超级好用的桌面环境,比较成熟稳定。其次是arch linux自带wayland和gnome默认使用wayland,安装起来较为方便。执行如下命令来安装gnome:
sudo pacman -S wayland #arch linux自带wayland,这条命令用于更新wayland
sudo pacman -S gnome gnome-extra #安装gnome及其附加软件包
sudo systemctl enable gdm #设置开机启动登录图形界面
sudo reboot #重启便可以登录到gnome图形界面了
2.4 安装中文字体
如果不安装中文字体,系统、网页、浏览器都没办法显示中文,执行如下命令安装:
sudo pacman -S adobe-source-han-sans-cn-fonts
2.5 安装open vmware tools
安装该工具实现虚拟机和主机之间的相互拖拽文件和复制粘贴:
sudo pacman -S open-vm-tools
将 vmtoolsd 和 vmware-vmblock-fuse 两个服务设为开机自启:
systemctl enable vmtoolsd vmware-vmblock-fuse
vmtoolsd : 负责汇报虚拟机状态的服务
vmware-vmblock-fuse : 文件系统实用程序。 通过FUSE(用户空间中的文件系统)实现宿主 / 虚拟机之间拖拽文件。
安装 gtkmm3 以启用客户机的拖拽与复制粘贴功能:
sudo pacman -S gtkmm3
最后再安装额外的显示和输入软件:
sudo pacman -S xf86-input-vmmouse xf86-video-vmware mesa
xf86-input-vmmouse : VMWare鼠标输入驱动程序
xf86-video-vmware : vmware显示驱动程序,如果想要让虚拟机显示器填满屏幕,就必须要安装这个软件包
mesa : OpenGL规范的开源实现
安装完成后,重启虚拟机,然后在虚拟机里按下Ctrl+Alt+Enter就可以进入到全屏模式了。
2.6 安装Firefox浏览器
sudo pacman -S firefox
默认安装的英文版的Firefox,如果要设置浏览器使用中文界面,可以按照下面的软件包,然后在Firefox设置里面选择中文即可:
sudo pacman -S firefox-i18n-zh-cn