Archlinux虚拟机中安装全过程

我安装arch的大部分教程都是按照viseator其中步骤安装的,这里也是借鉴他的文章并简化或加工来写的,想要完整的推荐去看他的安装教程。当然,首推的还是官方wiki),自带中文。(全文为虚拟机上操作,机器上操作请去看前面说的viseator的文章)

教程中所以的命令全部区分大小写


系统安装

准备工作

镜像文件

首先需要准备镜像文件,可以去各大镜像站下载,我这现只有一个清华大学开源软件镜像站 ,然后进入如图文件夹下载后缀为iso文件即可(日期选最新的最好)文件夹路径

虚拟机设置

后续由于我只讲在虚拟机(以Vbox为例)上面安装,所以磁盘准备就不讲了。

  1. 新建VM,选择Archlinux 64bit类型(如果只是体验一下不装软件,8G储存够了,要是想装软件,建议增大)

  2. 打开设置进入系统选项。启动顺序去掉软驱,启用EFI自己选择勾不勾选(我没有勾选,并且感觉步骤少了些)

    系统主板设置

    看别人说vbox对EFI的模拟还不是很完善,系统有很大几率无法自动引导而是进入UEFI Shell,但可以在这个shell中直接运行 *.efi文件来进入系统,真机上无此问题

  3. 切换到处理器选项中。处理器数量自己选择(要是感觉处理速度慢,按键延迟等,增加数量即可),然后勾选启用PAE/NX(传递主板的电源管理到虚拟机,如不支持会造成开机时出现intel_rapl: no valid rapl domains found in package 0 告警,但是不影响)系统处理器设置

  4. 最后进入显示设置。显存大小自己选择,当然越大越好。启用3D加速(3D加速需要安装显示驱动之后才能打开,在此勾不勾无所谓)显示设置

  5. 添加刚下好的镜像添加介质

至此,虚拟机设置完毕。

安装教程

进入tty终端界面

启动界面

进入这个界面后选择第一个选项,等到命令输入界面出来tty终端界面

检查引导方式

如果没勾选启用EFI,那就是以BIOS方式引导,否则为EFI方式引导,这引导方式后续有用

联网

arch基本上都需要联网来下载需要的组件,所以首先先连接网络。

  • 如果是有线网且路由器支持DHCP(基本上没有不支持的了吧),输入以下命令获取ip地址

    1
    dhcpcd

    然后ping百度看网是否正常

    1
    ping www.baidu.com

    如果如图就是正常,使用Ctrl+c可终止当前正在执行的命令

    ping

  • 如果是无线网,输入以下命令连接无线

    1
    wifi-menu

    然而,虚拟网网络好像相当于有线网

更新系统时间

执行以下命令,没有提示即成功

1
timedatectl set-ntp true

分区与格式化

由于是虚拟机上操作,这步就没有电脑上那么多担忧了。由于我这并没有启用EFI,所以就不说EFI的方法了,如果启用了。。。那就去开头推荐的博客看吧。

查看目前分区情况

执行以下命令

1
fdisk -l

分区情况

这是输出情况

创建根分区

1.执行以下命令

1
fdisk /dev/sdx (请将sdx替换成你要操作的磁盘如sda sdb sdc等)

2.输入o来创建一个全新的MBR分区表

3.输入n创建一个新的分区,数值等默认即可,4个回车

4.输入p来查看新创建的分区

5.输入w来将之前所有的操作写入磁盘生效,在这之前可以输入p来确认自己的分区表没有错误

6.输入以下命令来格式化刚刚创建的根分区

1
mkfs.ext4 /dev/sdxY (请将的sdxY替换为刚创建的分区)

创建根目录1

创建根目录2

过程如图。

挂载分区

执行以下命令将根分区挂载到/mnt

1
mount /dev/sdxY /mnt (请将sdxY替换为之前创建的根分区)

挂载分区

选择镜像源

由于arch中的镜像源很多都是国外的地区,所以我们需要只保留中国地区的镜像源。我在安装途中查到一个简便的方法,不用编辑文件。执行以下命令即可

1
sed -i '/China/!{n;/Server/s/^/#/};t;n' /etc/pacman.d/mirrorlist

执行后文件内容如图选择镜像源

文件内容

想要自己查看的话方法也很简单,输入命令

1
nano /etc/pacman.d/mirrorlist

我感觉nano编辑比较方便,如果习惯vim可以将nano代替为vim。(nano下修改完按Ctrl+x,然后是问是否确认修改,按y,最后是修改文件名,不用操作,直接回车即可)

安装基础包

如小标题意思,安装archlinux基础包到磁盘上,基本上下载都是需要联网的。

安装命令如下:

1
pacstrap /mnt base base-devel

emmm,虽然镜像源如上图所示只剩中国的了,但是有时候镜像源也可能会忽然下载不了,比如上面第一个中国源是上海大学的镜像源,但是我下载时候fail了。所以这个还是自己看哪个源好吧,我fail是直接将上海大学的改为了清华大学的镜像源。

清华大学源

1
2
> Server = http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
>
配置Fstab

生成自动挂载分区的fstab文件。执行如下命令:

1
genfstab -L /mnt >> /mnt/etc/fstab

如果想要确认一遍是否生成输入这句命令即可

1
cat /mnt/etc/fstab

配置fstab

如上图就是配置完成,/dev/sda1被挂载到根目录。

Chroot

Chroot意为Change root,相当于把操纵权交给我们新安装(或已经存在)的Linux系统,执行了这步以后,我们的操作都相当于在磁盘上新装的系统中进行

执行如下命令:

1
arch-chroot /mnt

chroot

设置时区

执行以下命令设置时区为上海并生成相关文件

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

    设置时区

设置Locale

前面提到的博客中是下载了vim,但是我感觉nano比较好用,可能我不习惯vim的快捷键吧,要是要安装vim执行这句命令

1
2
> pacman -S vim dialog wpa_supplicant ntfs-3g networkmanager
>

设置使用的语音选项,执行如下命令编辑/etc/locale.gen文件:

1
nano /etc/locale.gen

在文件中找到zh_CN.UTF-8 UTF-8 zh_HK.UTF-8 UTF-8 zh_TW.UTF-8 UTF-8 en_US.UTF-8 UTF-8这四行,去掉行首的#号,保存并退出。如图

设置locale1

设置locale2

然后执行:

1
locale-gen

设置locale3

打开(不存在时会创建)/etc/locale.conf文件:

1
nano /etc/locale.conf

在文件的第一行加入以下内容:

1
LANG=en_US.UTF-8

保存并退出。

设置locale4

设置主机名

打开(不存在时会创建)/etc/hostname文件:

1
nano /etc/hostname

在文件第一行输入自己想取的主机名后保存并退出。

设置主机名1

编辑/etc/hosts文件:

1
nano /etc/hosts

作如下修改(将myhostname替换成你自己设定的主机名)

1
2
3
127.0.0.1 localhost.localdomain localhost
::1 localhost.localdomain localhost
127.0.1.1 myhostname.localdomain myhostname

如图设置主机名2

设置Root密码

RootLinux中具有最高权限帐户,有些敏感的操作必须通过Root用户进行,比如使用pacman,我们之前进行所有的操作也都是以Root用户进行的,也正是因为Root的权限过高,如果使用不当会造成安全问题,所以我们之后会新建一个普通用户来进行日常的操作。在这里我们需要为Root帐户设置一个密码,执行如下命令:

1
passwd

按提示设置并确认即可。

设置Root密码

官方Wiki和一些其他教程资料中的命令是以#$开头的,这两个符号就对应着命令行中的命令提示符,#代表以Root用户执行命令,$代表以普通用户执行命令,平时使用教程中的命令时应该注意这一点。

安装Intel-ucode(非IntelCPU可以跳过此步骤)

执行如下命令即可

1
pacman -S intel-ucode

安装包的命令格式为pacman -S 包名pacman会自动检查这个包所需要的其他包(即为依赖)并一起装上。安装会向你确认一次是否安装,这个应该都看得懂。

安装Bootloader

经常听说很多人因为引导问题导致系统安装失败,多数是因为教程没有统一或是过时的教程引起的,这里只要按照步骤来其实是不难的。这里我们安装最流行的Grub2

首先安装os-prober这个包,它可以配合Grub检测已经存在的系统,自动设置启动选项。

1
pacman -S os-prober

然后安装grub包:

1
pacman -S grub

部署grub

1
grub-install --target=i386-pc /dev/sdx (将sdx换成你安装的硬盘)

生成配置文件:

1
grub-mkconfig -o /boot/grub/grub.cfg

grub

如果你没有看到如图所示的提示信息,请仔细检查是否正确完成上面的过程。

如果报warning failed to connect to lvmetad,falling back to device scanning.错误。参照这篇文章,简单的方法是编辑/etc/lvm/lvm.conf这个文件,找到use_lvmetad = 11修改为0,保存,重新配置grub。

重启

接下来,你需要进行重启来启动已经安装好的系统,执行如下命令:

1
2
exit
shutdown -h now

注意这个时候你可能会卡在有两行提示的地方无法正常关机,直接强退虚拟机即可,没有影响。然后去除ISO镜像,再次开机。

至此,系统已经安装完毕了,只是还没有进行基本配置和安装图形界面,下面接着继续讲。(因为还没有创建用户,所以重启后用户是输root,创建后才是输用户名。)

基本配置与图形界面

连接网络

现在我们是在新安装的系统上进行操作,所以我们要重新联网,我们在之前安装系统时已经提前装好了相关的包。所以现在只要跟之前一样执行如下命令:

1
dhcpcd

创建交换文件

交换文件可以在物理内存不足的时候将部分内存暂存到交换文件中,避免系统由于内存不足而完全停止工作。

之前我们通常采用单独一个分区的方式作为交换分区,现在更推荐采用交换文件的方式,更便于我们的管理。

分配一块空间用于交换文件,执行:

1
fallocate -l 512M /swapfile

更改权限,执行:

1
chmod 600 /swapfile

设置交换文件,执行:

1
mkswap /swapfile

启用交换文件,执行:

1
swapon /swapfile

swapfile1

最后我们需要编辑/etc/fstab为交换文件设置一个入口

1
nano /etc/fstab

注意编辑fstab文件的时候要格外注意不要修改之前的内容,直接在最后新起一行加入以下内容

1
2
> /swapfile none swap defaults 0 0
>

swapfile2

我对其只是为了美观,没对齐是没有事的。

新建用户

在这之前所有操作都是以root用户的身份进行的,由于root的权限过高,日常使用root用户是不安全的。Linux为我们提供了强大的用户与组的权限管理,提高了整个系统的安全性。这里我们就来新建一个用户。

执行以下命令来创建一个名为username的用户(请自行替换username为你的用户名):

1
useradd -m -G wheel username (请自行替换username为你的用户名)

在这里稍微解释一下各参数的含义:

-m:在创建时同时在/home目录下创建一个与用户名同名的文件夹,这个目录就是你的家目录啦!家目录有一个别名是~,你可以在任何地方使用~来代替家目录路径。这个神奇的目录将会用于存放你所有的个人资料、配置文件等所有跟系统本身无关的资料。这种设定带来了诸多优点:

  • 只要家目录不变,你重装系统后只需要重新安装一下软件包(它们一般不存放在家目录),然后所有的配置都会从家目录中读取,完全不用重新设置软件着。
  • 你可以在家目录不变的情况下更换你的发行版而不用重新配置你的环境。
  • 切换用户后所有的设置会从新的用户的家目录中读取,将不同用户的资料与软件设置等完全隔离。
  • 有些著名的配置文件比如vim的配置文件~/.vimrc,只要根据自己的使用习惯配置一次, 在另一个Linux系统下(例如你的服务器)把这个文件复制到家目录下,就可以完全恢复你的配置。

-G wheel-G代表把用户加入一个组,对用户与组的概念感兴趣的同学可以自行查找有关资料学习。后面跟着的wheel就是加入的组名,至于为什么要加入这个组,后面会提到。

为新用户设置一个密码,执行如下命令:

1
passwd username (请自行替换username为你的用户名)

新建用户

配置sudo

我们已经创建好了一个新的用户,以后我们将会使用这个用户来登录,那么如果我们需要执行一些只有root用户才能执行的命令(例如修改系统文件、安装软件包)怎么办?

sudo为我们提供了一个更快捷的办法。使用sudo,我们只要在需要root权权限执行的命令之前加上sudo就可以了,例如安装软件包:sudo pacman -S something 下面我们就来安装并配置sudo

sudo本身也是一个软件包,所以我们需要通过pacman来安装:

1
pacman -S sudo

为刚才创建的用户添加sudo权限

1
nano /etc/sudoers

在 root ALL=(ALL) ALL 下面添加
用户名 ALL=(ALL) ALL

sudo配置

配置好sudo以后,我们进行一次重启,执行:reboot

注意登录后要重新进行联网操作(sudo dhcpcd)。

图形界面的安装

显卡驱动的安装

执行:

1
sudo pacman -S 驱动包

官方仓库提供的驱动包:
通用———————————-xf86-video-vesa
intel———————————-xf86-video-intel
Geforce7+————————–xf86-video-nouveau
Geforce6/7————————-xf86-video-304xx

这里只需要通用即可。

安装Xorg

XorgLinux下的一个著名的开源图形服务,我们的桌面环境需要Xorg的支持。

执行如下命令安装Xorg及相关组件:

1
sudo pacman -S xorg

设置全部默认。

安装桌面环境

Linux下有很多著名的桌面环境如XfceKDE(Plasma)GnomeUnityDeepin等等,它们的外观、操作、设计理念等各方面都有所不同, 在它们之间的比较与选择网上有很多的资料可以去查。

这里我选择的是KDE(Plasma),直接安装软件包组(包含了很多软件包)即可:

1
sudo pacman -S plasma kde-applications kde-l10n-zh_cn

设置依旧全部默认。

更多桌面环境的安装指南的链接:https://wiki.archlinux.org/index.php/Desktop_environment#List_of_desktop_environments

安装桌面管理器

安装好了桌面环境包以后,我们需要安装一个图形化的桌面管理器来帮助我们登录并且选择我们使用的桌面环境,这里我推荐使用sddm

安装sddm

执行:

1
sudo pacman -S sddm
设置开机启动sddm服务

执行下面命令来设置开机启动sddm

1
sudo systemctl enable sddm

配置网络

到现在我们已经安装好了桌面环境,但是还有一件事情需要我们提前设置一下。由于我们之前使用的一直都是netctl这个自带的网络服务,而桌面环境使用的是NetworkManager这个网络服务,所以我们需要禁用netctl并启用NetworkManager

1
2
sudo systemctl disable netctl
sudo systemctl enable NetworkManager

同时你可能需要安装工具栏工具来显示网络设置图标(某些桌面环境已经装了,但是为了保险可以再装一下):

1
sudo pacman -S network-manager-applet

至此,只要重启电脑进入了桌面代表着已经安装成功了。

如果你只是就这样安装着用,那后续的文章可以略过直接使用。

如果打算更好的体验Arch,后续所说的应装的软件包或基础配置建议操作了。

系统安装完后进入可能是英文的,设置中文的方法是打开左下角菜单然后选择应用(applications),然后选设置(setting),接着打开系统设置(system setting),进去后找到区域设置(regional setting),里面就有语言选项(language)了,然后重启即可

推荐的软件包与配置

添加archlinuxcn源(里面包含了很多中国人常用而官方仓库又没有的软件)

root权限打开编译/etc/pacman.conf,将下面这三行加入到文件末尾并保存:

1
2
3
[archlinuxcn]
SigLevel = Never
Server = http://repo.archlinuxcn.org/$arch

同步软件信息库:

1
sudo pacman -Syyu

安装archlinuxcn-keyring包导入 GPG key:

1
sudo pacman -S archlinuxcn-keyring

Yaourt

arch拥有一个强大的用户库aurArch User Repository,为我们提供了官方包之外的各种软件包,一些闭源的软件包也可以在上面找到,极大地丰富了软件包的种类与数量,并可以配合yaourt这样的工具为用户省下大量安装、更新软件包的时间。

yaourt实际上也是一个软件包,我们可以把它看成是对pacman的包装,它兼容pacman的所有操作,不同是我们可以用它方便地安装与管理AUR中的包。

安装yaourt

1
sudo pacman -Sy yaourt fakeroot

滚动更新

archlinux的更新机制是滚动更新,,也就是说ArchLinux的软件与内核会时刻与稳定版本保持一致,你所用的系统总是时刻保持最新的。

这机制让使用arch的用户可以第一时间体验到西软件与内核,但是也有可能出错。虽然滚动更新的包可能因为没有经过完善的测试会导致系统不能工作种种问题,但是绝大部分情况下的更新都不会导致太大的问题。修复滚炸的系统和提交Bug信息也是ArchLinux用户的技能之一。

滚动更新命令为:

1
yaourt -Syu --aur

--aur参数是检查并更新AUR包中的内容。

字体与输入法

系统语言更改为中文后可能会出现乱码,这时候就需要安装一个中文字体来替代系统的默认语言了,毕竟谁也不想一直看乱码。

中文字体推荐安装官方源中noto-fonts-cjk ,,中文输入法需要安装fcitx包与fcitx-im集合包以及支持包(这里我选择的是搜狗拼音)。

字体安装命令

1
sudo pacman -S noto-fonts-cjk

输入法

1
2
sudo pacman -S fcitx fcitx-im fcitx-configtool
sudo pacman -S fcitx-sogoupinyin

装完输入法以后需要修改/etc/profile文件,在文件开头加入三行:

1
2
3
export XMODIFIERS="@im=fcitx"
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"

可以解决一些软件无法调出fcitx的问题。

现在为止,字体输入法也有了,浏览器自带了,可以开始自己的arch之旅了。如果还想要安装什么软件,网上搜索都能找到(如果有的话),最后祝你们体验的开心。

(  ̄ー ̄)ノ■☆■ヾ( ̄ー ̄ )