VMWare上Arch+xfce4的安装和美化

本文最后更新于:2022年8月15日 下午

捣鼓了一个工作日终于弄好了。记录一下,以作备忘。

虽然是在VMware上安装的,但是依旧适用于裸机等安装。详见下面正式教程。

成品

image-20220428151628953

image-20220428151648795

image-20220428151716579

下载

下载导航页面如下:
https://archlinux.org/download/

我最终下载的是http://mirrors.163.com/archlinux/iso/2021.03.01/

下载完成后,建议比较一下文件的md5值。mac下载是:

1
2
~/Downloads $ md5 archlinux-2021.03.01-x86_64.iso                                        [10:35:00]
MD5 (archlinux-2021.03.01-x86_64.iso) = 954ccc00409d564938433611e3a81ae9

创建虚拟机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
虚拟机配置,我设置内存1G 硬盘20G仅供参考。

启动虚拟机

在这里插入图片描述
等待加载,很快就进行了如下界面。
在这里插入图片描述
根据提示,我进下面地址看一下如何安装。
https://wiki.archlinux.org/index.php/Installation_guide

确保是否为 UEFI 模式

1
ls /sys/firmware/efi/efivars

如果输出一堆东西,说明就是UEFI模式的了。

测试网络

1
ping www.baidu.com

若能看到数据返回,即说明已经联网,ctrl+c 终止退出当前命令。
我的是直接可以连接,如果遇到网络不通的话自己百度解决。

启用SSH(可选)

此项为补充内容,第一次安装时候所有命令都是直接在vmware中敲的。vmware中命令行无法复制,粘贴纯手打效率不高。所以我就想能不能ssh远程安装方便粘贴命令?答案是可以的而且很简单。

  1. 查ip 执行 ip addr 我这里查到的ip 是 172.16.184.11
  2. 设置root密码 passwd root
  3. 客户端连接ssh 命令如下:ssh root@172.16.184.11
    简单的3步就可以粘贴命令了,复制粘贴要程序员的本能。

禁用 reflector

2020 年新版 archliveiso 加入了 reflector 服务,它会自己更新
mirrorlist。在特定情况下,它会误删某些有用的源信息。这里联网后的第一件事就是将其禁用。也许它是一个好用的工具,但是很明显,它并不适合在安装的时候启用。

1
systemctl stop reflector.service

更新系统时钟

1
2
timedatectl set-ntp true    #将系统时间与网络时间进行同步
timedatectl status #检查服务状态

更换国内镜像源加快下载速度

这一步很关键,我第一次安装,根据官方文档一步步安装,后来在安装步骤等待了1个多小时,还没成功,被迫放弃重新来一遍。
后来在https://archlinuxstudio.github.io/ArchLinuxTutorial/#/rookie/basic_install看到设置源的内容。

1
vim /etc/pacman.d/mirrorlist

在这里插入图片描述

1
2
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.hit.edu.cn/archlinux/$repo/os/$arch

在上面放上国内的源。

分区

对于虚拟机,不建议分/home分区出来,这样扩容会很麻烦

ArchLinux官方文档参考:UEFI with GPT

挂在点 分区 分区类型 推荐尺寸
/mnt/boot or /mnt/efi /dev/efi_system_partition EFI system partition 至少260 MiB
[SWAP] /dev/swap_partition Linux swap 超过 512 MiB
/mnt /dev/root_partition Linux x86-64 root (/) 磁盘的剩余空间

我实际的分区:

挂在点 分区 分区类型 尺寸
/mnt/boot or /mnt/efi /dev/efi_system_partition EFI system partition 300 MiB
[SWAP] /dev/swap_partition Linux swap 超过 2048 MiB
/ /dev/root_partition Linux x86-64 root (/) 8G
/home /dev/root_partition Linux x86-64 root (/) 磁盘的剩余空间

先查一下磁盘情况。

1
fdisk -l

在这里插入图片描述
开始分区了 如果你磁盘里有数据请注意备份! 因为我这个新建的虚拟机所以不用考虑备份的事情。

1
fdisk /dev/sda

创建分区表

我们要创建一个 GUID Partition Table (GPT) 分区表,所以这里按g
在这里插入图片描述

创建分区

使用n命令创建一个新分区。您输入分区类型,分区号,起始扇区和终止扇区。
出现提示时,请指定分区类型,然后键入p以创建主分区或e创建扩展分区。最多可以有四个主分区。
全部操作如下:
在这里插入图片描述
上面是我设置的分区大小,仅供参考,可以根据你的需要自行调整。

使用说明:
列出分区类型 按下l以列出可用的分区类型。 查询完需要返回就按q
更改分区类型 每个分区都与Type关联。按t更改分区的类型。默认值,Linux filesystem对于大多数使用来说应该没问题。
使分区可启动。 您可以通过键入使分区可启动a

将更改写入磁盘 将表写入磁盘,然后通过w命令退出。

将第一个300MB的分区的分区类型设置为EFI System
在这里插入图片描述

将第2个2GB的分区的分区类型设置为Linux Swap
在这里插入图片描述

将更改写入磁盘 将表写入磁盘,然后通过w命令退出。
在这里插入图片描述
这时已经分区成功了,现在来查一下分区结构:
在这里插入图片描述

疑问: 我EFI分区对应的是/dev/sda1 官方文档中写的路径是/dev/efi_system_partition
这样的设备路径是怎么创建的?知道的朋友麻烦评论告诉我。我找了一圈,还是不知道如何做。暂时先不官这个了,继续做吧。

格式化分区

创建分区后,必须使用适当的文件系统格式化每个新创建的分区。例如,要在创建一个Ext4文件系统。
用于//home的分区格式化成ext4类型。

1
2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda4

EFI分区格式化成vfat

1
mkfs.vfat /dev/sda1

如果您创建了交换分区,请使用mkswap(8)对其进行初始化:

1
mkswap -f /dev/sda2

挂载

在这里插入图片描述

1
2
3
4
5
6
7
8
# 挂载swap
swapon /dev/sda2
mount /dev/sda3 /mnt
mkdir /mnt/home
mount /dev/sda4 /mnt/home
mkdir /mnt/boot
mkdir /mnt/boot/EFI
mount /dev/sda1 /mnt/boot/EFI

分区总结:fdisk分区虽然没有图形化的直观,用过一次感觉很爽,甚至比图形化的更爽!

安装

基础包

这里装了两次才装上,不知道为啥

1
pacstrap /mnt base base-devel linux linux-firmware  #base-devel在AUR包的安装是必须的

如果你这一步特别久,请检查一下是不是国内镜像源设置的有问题。我一开始没设置特别慢,等待了1个多小时,实在等不下去,又重新安装的。速度如下:
在这里插入图片描述

功能性软件

1
pacstrap /mnt dhcpcd iwd vim sudo bash-completion   #一个有线所需 一个无线所需 一个编辑器  一个提权工具 一个补全工具 iwd也需要dhcpcd

配置系统

Fstab

生成一个fstab文件(分别使用-U或-L定义UUID或标签):

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

检查生成的/mnt/etc/fstab文件,并在出现错误的情况下对其进行编辑。

Chroot

将root更改为新系统:

1
arch-chroot /mnt

设置时区

在这里插入图片描述

1
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

将系统时间同步到硬件时间

1
hwclock --systohc

设置 Locale

1
vim /etc/locale.gen

,去掉 en_US.UTF-8 行以及 zh_CN.UTF-8 的注释符号(#)。
在这里插入图片描述

在这里插入图片描述
配置完成以后运行:

1
locale-gen

生成 locale。

向 /etc/locale.conf 输入内容

根据自己需要选择环境,二选一。我更喜欢中文的。
英文环境:

1
echo 'LANG=en_US.UTF-8'  > /etc/locale.conf

中文环境:

1
echo 'LANG=zh_CN.UTF-8'  > /etc/locale.conf

安装微码

1
2
pacman -S intel-ucode   #Intel
pacman -S amd-ucode #AMD

安装引导程序

1
2
pacman -S grub efibootmgr   #grub是启动引导器,efibootmgr被 grub 脚本用来将启动项写入 NVRAM。
grub-install --target=x86_64-efi --efi-directory=/boot/EFI --bootloader-id=GRUB #取名为GRUB 并将grubx64.efi安装到之前的指定位置

在这里插入图片描述
最后生成 GRUB 所需的配置文件

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

在这里插入图片描述

完成安装

设置root的密码!!! 不能忘记这一步,否则重启无法登录啦。

1
passwd root
1
2
3
exit                # 退回安装环境#
umount -R /mnt # 卸载新分区
reboot # 重启

重启以后就可以正常启动了,安装完成。

网络

安装完成后,发现网络不通。

1
2
systemctl enable dhcpcd  #设置开机启动
systemctl start dhcpcd #立即启动dhcp

等待一会儿,ping www.baidu.com 发现网络已经通了。

1
2
pacman -S neofetch
neofetch

在这里插入图片描述

中文字体

我选择ttf-droid,这个是我看着最顺眼的。

1
pacman -S ttf-droid

顺便扔一个如何查看自己的arch上安装的中文字体。

1
fc-list :lang=zh

图形化界面

显卡驱动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# lspci | grep VGA    # 确定显卡型号
# pacman -S <驱动包>
#
# # 官方仓库提供的驱动包:
# # +----------------------+--------------------+--------------+
# # | | 开源 | 私有 |
# # +----------------------+--------------------+--------------+
# # | 通用 | xf86-video-vesa | |
# # +----------------------+--------------------+--------------+
# # | Intel | xf86-video-intel | |
# # +--------+-------------+--------------------+--------------+
# # | | GeForce 9+ | | nvidia |
# # + +-------------+ +--------------+
# # | nVidia | GeForce 8/9 | xf86-video-nouveau | nvidia-340xx |
# # + +-------------+ +--------------+
# # | | GeForce 6/7 | | nvidia-304xx |
# # +--------+-------------+--------------------+--------------+
# # | AMD/ATI | xf86-video-ati | |
# # +----------------------+--------------------+--------------+

桌面环境

所有桌面环境都需要依赖xorg。所以先要安装xorg组。

1
pacman -S xorg

输入命令之后首先会询问要安装xorg组下的哪些包,选择全部。然后对于libgl包有个四个不同的实现,选择mesa-libgl。
然后再安装xorg-xinit和xterm:

1
pacman -S xorg-xinit xterm

安装完成之后就可以使用startx命令启动xorg的简易界面了。进入成功的话会显示出几个简陋的窗口。然后按Ctrl+D就可以退出了。

xfce4桌面

安装xfce4桌面和附带的软件包:

1
pacman -S xfce4 xfce4-goodies

LightDM登录管理器(显示管理器)

详细安装和配置看arch-wiki-lighdm
我没有通过startx的方式启动桌面环境,而是使用了登录管理器lightdm
安装:

1
pacman -S lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings

其配置文件为/etc/lightdm/lightdm.conf

安装好之后测试启动:

1
systemctl start lightdm.service

如果正常就会看到熟悉的登录界面了,不过不要登录,现在只是测试lightdm是否可以正常启动
点击画面上的关机小图标,弹出关机对话,选择注销!
注销之后就回到之前的tty命令行模式了,可以看到相关的启动信息
一切正常,所以设置lightdm为开机自动启动,这样以后开机就不会出现tty命令行界面了,而是直接进入登录界面:

1
systemctl enable lightdm.service

之后你可以重启进入xfce4图形界面,然后在图形界面中使用终端来继续以下配置步骤,也可以不重启,直接继续

alsa-utils配置声音

arch系统默认已经安装了alsa-libs支持库,可以支持xfce4中的混音器来控制系统的音量或者静音
但是系统每次关机重启之后,默认的都是静音,你之前调的音量全部消失,解决方法:
安装alsa-utils:

1
pacman -S alsa-utils

编辑下alsa的服务(服务脚本有问题,不能由systemctl管理)

1
nano /lib/systemd/system/alsa-state.service

查看是否有”[Install]”(包含此字段)

[Install]
WantedBy=multi-user.target

有的话就不用继续编辑了,没有的话在末尾加上上述字段,保存
然后启动服务,并允许其开机自启动:

1
2
systemctl start alsa-state.service
systemctl enable alsa-state.service

时间同步

按照arch官方的wiki安装好系统后时间不对
官方不提倡使用软件同步系统时间,但是没办法,只有同步时间最方便,方法:

1
2
3
pacman -S ntp
systemctl start ntpd.service
systemctl enable ntpd.service

等待几分钟之后系统时间就同步正确了

然后将本机硬件时间设置为同步好的系统时间

1
hwclock --systohc --localtime

VMware组件安装

这样就可以在虚拟机和物理机之间复制文件以及自由调整桌面大小了。

1
pacman -S gtk2 gtkmm gtkmm3 xf86-input-vmmouse xf86-video-vmware open-vm-tools

VMware Tools 服务 vmtoolsd 需要配置为在引导时运行。使用以下命令执行操作:

1
systemctl enable vmtoolsd

更新 initramfs 以包含 VMware 模块

需要在 /etc/mkinitcpio.conf 文件中更新 MODULES 数组以便所需模块 在启动时能被加载。按如下所示更新文件中的 MODULES=() :

1
MODULES=(vsock vmw_vsock_vmci_transport vmw_balloon vmw_vmci vmwgfx)

需要注意的是这是添加,不是替换,如果原有的MODULES不为空则追加即可。

在此编辑之后,生成一个新的 initramfs 映像:

1
mkinitcpio -P

注意输出中出现的任何错误 - 这些模块名称很容易输入错误,这会在映像生成过程中引发错误。

重启确认成功安装

重启系统:

1
shutdown -r now

再次进入系统应该就能自由复制文件了,但是可能有个bug就是屏幕需要VMware至少进行一次虚拟机全屏操作后才能填满屏幕,目前还没找到解决方法。

图标与主题美化

kali重度用户选择用上kali的全套配置。

kali的主题和图标都是开源的,分别叫flat-remix-gtkflat-remix

1
yay -S flat-remix-gtk flat-remix

没有yay可以先安装yay:

1
pacman -S yay

然后在外观中进行相应的配置即可。

image-20220428144613238

image-20220428144631918

上Panel的优化

首先是用whisker插件替换原来的xfce应用程序管理器。方法是面板右键 ==> 面板首选项,添加Whisker菜单,然后用Whisker菜单替换掉原来的菜单(先删除后往上挪)。

image-20220428145957014

之后就是上Panel很多细节的优化,这里我推荐是看着Kali的设置跟着走。具体要调整的地方太多,这里就不一一放了,总之最后完成如下:

image-20220428150319479

Dock

Xfce自带的dock太丑了,选择plank作为替代。

1
pacman -S plank

安装完后先把自带的底部panel删掉,方式是在panel上右键删除即可。

然后需要配置以便桌面启动时plank能同步启动。方法如下:

首先打开 全部应用程序 ==> 会话和启动:

image-20220428145302662

然后在应用程序自启动中添加一个项目,名称无所谓,但命令一定是plank,触发器选择默认的on login即可。

image-20220428145342930

新出来的plank可能会有一个阴影遮罩,我们需要把他去掉。方法是打开 设置 ==> 窗口管理器微调:

image-20220428145640529

然后将在dock窗口下显示阴影的√给去掉即可。

image-20220428145731895

桌面选择

这里选择了arch的官方壁纸。

1
pacman -S 

安装完成后的壁纸位置在/usr/share/backgrounds/archlinux中。桌面右键自己操作替换即可,这个说的是桌面壁纸。

至于锁屏壁纸,则可以通过LightDm 桌面管理器设置,打开就知道该怎么做了。

image-20220428200633767

一些优化

使用对GUI支持更好的GVIM。

1
pacman -S gvim

使用clipman处理剪切板

1
pacman -S clipman

启动后设置同步系统剪切板。

参考

Archlinux安装xfce4桌面及美化流程

Customizing Kali Linux

2021年vmware安装archlinux

Arch Linux: Installing XFCE (VMware)


VMWare上Arch+xfce4的安装和美化
https://m0ck1ng-b1rd.github.io/2022/04/29/倒腾/VMWare上Arch+xfce4的安装和美化/
作者
何语灵
发布于
2022年4月29日
许可协议