ArchLinux Installation Guide
💡 **Tip: 这是属于我自己的ArchLinux安装和开发环境配置步骤整理;本文分三部分,chapter1 :安装系统;chapter2:配置系统;chapter3:配置开发环境;本文参考了icekylin arch guide ,在此表示深刻的感谢!本文基于ArchLinux2023.8.1版本安装。 August 14, 2023**
一. 安装ArchLinux
1. 下载ArchLinux 镜像
点击此处 下载ArchLinux镜像,下载最新的ArchLinux 镜像即可
2. 制作系统盘
windows下使用rufus软件制作启动盘
linux下,使用dd命令制作启动盘
#格式化u盘,如若没有mkfs命令,则安装**dosfstools**∑
sudo mkfs.vfat /dev/sdb -I
启动盘制作好后,修改电脑boot sequence,设置从u盘启动
3. 连接网络
如果是电脑插了网线,且路由器DHCP开启,则可以跳过连接网络这一步。不确定自己有网可以通过执行ping [baidu.com](http://baidu.com) 来判断是否有网络
使用iwc连接wifi
iwctl #打开联wifi工具
device list #显示wifi网卡
station 网卡 scan #扫描wifi
station 网卡 get-networks #显示wifi列表
station 网卡 connect wifi名 #连wifi
4. 分区
分区建议如下,请根据实际情况进行分区。目前只分了boot和根目录
boot
系统引导分区;最好和根目录分开,如果要把该系统当主系统则建议 1G 以上
swap
交换分区;如果内存大 >=32G 可以不要,否则swap大小=内存大小
/
系统分区;建议100G以上
查看磁盘设备路径 lsblk
给sda硬盘分区 cfdisk /dev/sdx sdx是你的硬盘路径,例如我的硬盘路径是/dev/nvme1n1
分完区后需要把刚才的分区格式化
mkfs.ext4 /dev/sdx #把该分区格式化为ext4格式,一般用于格式化根目录和home等
mkfs.fat -F32 /dev/ #格式化boot分区
mkswap /dev/ #格式化swap分区
swapon /dev/ #启用swap分区
5. 挂载系统目录
mount /dev/nvme1n1p7 /mnt #挂载根目录
mkdir /mnt/nvme1n1p6 #创建boot文件夹
mount /dev/boot分区 /mnt/boot #挂载boot分区
6.修改ustc源
vim /etc/pacman.d/mirrorlist
#在前面添加
Server = https://mirrors.ustc.edu.cn/archlinux/$repo /os/$arch
7. 安装系统
pacstrap /mnt base linux linux-devel linux-firmware vim iwd dhcpcd sudo networkmanager
8. 使用 genfstab 自动根据当前挂载情况生成并写入 fstab 文件
genfstab -U /mnt >> /mnt/etc/fstab
切换进新系统 arch-chroot /mnt
9. 修改主机名
vim /etc/hostname #在里面填写主机名
vim /etc/hosts
#写入:
127 .0.0.1 localhost
::1 localhost
127 .0.1.1 主机名.localdomain 主机名
10. 修改时区,同步时间
#修改时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#同步硬件时间
hwclock --systohc
11. 创建用户
passwd root #设置root用户设置密码
groupadd mo #添加用户组
useradd -mG mo moloom #添加用户
sudo usermod -g mo moloom #修改用户主要组为 mo
m 创建用户的同时创建用户家目录
G 选项后指定附加组
a 添加到xx组
r 不创建home目录
给新建用户添加加入sudo权限 EDITOR=vim visudo
找到%wheel ALL=(ALL) ALL 把前面的注释去掉并修改成 %mo ALL=(ALL) ALL
%mo —— 用户名或用户组,此处则代表是 mo 组,% 是用户组的前缀
ALL= —— 主机名,此处则代表在所有主机上都生效(如果把同样的 sudoers 文件下发到了多个主机上)
(ALL:ALL) —— (任意用户:任意用户组),此处则代表可以成为任意目标用户/用户组
最后的 ALL —— 代表可以执行任意命令
12. 设置语言
vim /etc/locale.gen 找到en_US.UTF-8和zh_CN.UTF-8,把前面的注释去掉
#切换语言
locale-gen
#把语言设置写入到配置文件中,后面进=正常进系统后,把如下改成zh_CN.UTF-8
echo LANG = en_US.UTF-8 >> /etc/locale.conf
#若中文显示不完全,设置左边中文,右边英文,需修改~/.config/plasma-localerc,把Formats下的zh_CN 改成 zh_CN.UTF-8,注销重启
# 安装zsh之后再执行下面步骤!!!
#修改zsh终端的输出info为英文
vim ~/.zshrc
#我这里是用的zsh,如果是bash则修改.bashrc;在前面添加下面这两行
export LANG = en_US.UTF-8
export LANGUAGE = en_US.UTF-8
13. 添加ArchLinuxCN源
vim /etc/pacman.conf 在文件最后面添加如下,添加一个就行,推荐ustc源
[ archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch # 中国科学技术大学开源镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch # 清华大学开源镜像站
Server = https://mirrors.hit.edu.cn/archlinuxcn/$arch # 哈尔滨工业大学开源镜像站
Server = https://repo.huaweicloud.com/archlinuxcn/$arch # 华为开源镜像站
找到 Color ,把前面的注释取消掉,这样pacman输出时会有颜色高亮
pacman -Sy #更新数据库源
pacman -S archlinuxcn-keyring #安装archlinuxcn秘钥
pacman-keyring --init #初始化秘钥
pacman-keyring -- populate archlinuxcn #同步秘钥
#安装yay包管理工具
pacman -S yay
14. 安装fcitx5或搜狗输入法
#安装字体,后面用苹方字体了,可以不用装!
sudo pacman -S noto-fonts noto-fonts-extra noto-fonts-emoji noto-fonts-cjk ttf-dejavu adobe-source-han-sans-cn-fonts
#安装sogou输入法,已不推荐。kde6推荐用下面的 fcitx5
sudo pacman -S fcitx fcitx-im kcm-fcitx fcitx-configtool fcitx-sogoupinyin
#fcitx5i配置
sudo vim ~/.xprofile
export XMODIFIERS = @im= fcitx
#export GTK_IM_MODULE=fcitx
#export QT_IM_MODULE=fcitx
#fcitx 5
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki fcitx5-qt fcitx5-gtk fcitx5-configtool
#fcitx4 配置
sudo vim /etc/environment
GTK_IM_MODULE = fcitx
QT_IM_MODULE = fcitx
XMODIFIERS = @im= fcitx
SDL_IM_MODULE = fcitx
INPUT_METHOD = fcitx
GLFW_IM_MODULE = ibus
#安装皮肤,安装完后,在系统设置->输入法->配置附加组件->经典用户界面,把主题改为 “微风”
sudo pacman -S fcitx5-breeze
15. 安装KDE图形化界面、驱动
sudo pacman -Se plasma kde-accessibility kde-graphics kde-system kde-utilities ffmpegthumbs noto-fonts
yay -Rsn discover flatpak-kcm plasma-sdk yakuake netctl akonadi mariadb ristretto #卸载多余软件
#安装cpu和显卡驱动
pacman -S intel-ucode #安装Intel cpu编码
#Intel核显驱动
pacman -S mesa vulkan-intel #Intel核心显卡驱动,用Intel核显就装,否则不用装
yay -S intel-gpu-tools #安装intel核显工具包,intel_gpu_top命令可以查看核显状态
yay -S intel-media-driver libva-utils #看视频的硬件加速器
#NVIDIA显卡驱动
sudo pacman -S nvidia-dkms nvidia-settings nvidia-utils #nvidia显卡驱动,内核是普通版本就装这个
yay -S nvidia-lts nvidia-settings nvidia-utils opencl-nvidia #NVIDIA显卡驱动,内核是 LTS 版本就装这个
sudo pacman -S cuda cudnn # Nvidia 计算加速库,可选
#编辑/etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT=""添加如下参数
nouveau.modeset= 0 ibt = off
#编辑/etc/mkinitcpio.conf,找到MODULES,添加如下,然后运行grub-mkconfig,重新生成
MODULES =( nvidia nvidia_modeset nvidia_uvm nvidia_drm)
#把kms 从 /etc/mkinitcpio.conf 里的HOOKS 数组中移除,
#并执行以下命令重新生成 initramfs。 这能防止 initramfs 包含 nouveau 模块,以确保内核在早启动阶段不会加载它。
sudo mkinitcpio -P
从核显切换到n卡,执行上面的n卡操作,安装驱动并配置后,在bios中切换启动输出为PCIE1,
不行的话,再执行sudo nvidia-xconfig 重新生成xorg配置文件重启试试,
#自启动sddm桌面环境
sudo systemctl enable sddm
#自启动网络、蓝牙
sudo systemctl enable NetworkManager bluetooth
#不确定kde-accessibility kde-graphics kde-system kde-utilities中是否有konsole,先安装一手,预防尴尬局面
yay -S konsole
ArchLinux对KDE的打包很差劲,像dolphin(文件管理器)、konsole(终端模拟器)、kate(文本编辑器)等关键组件都不在plasma包组中,而discover(运用商店)、flatpak-kcm(运用商店flatpak集成)、plasma-sdk(plasma开发工具)等无关紧要的东西却在plasma包组中。
kde-applications包组里有其他所有的KDE运用程序,但非常不主张装置这个包组,由于里面的东西太杂了,包括好多游戏、专业软件,以及两个阅读器。能够装置细分类别的包组,推荐kde-accessibility、kde-graphics、kde-system、kde-utilities,以及其他几个包:ffmpegthumbs、noto-fonts。
16. 安装grub引导
ArchLinux grub引导
重启电脑,进入BIOS,把启动项设置为ArchLinux
二. 配置系统及开发环境
开机进入桌面后,设置里面修改语言为中文,然后重启电脑
1. 配置苹方字体
苹方字体是苹果推出的字体 San Francisco ,该字体包从macOS中提取
#从自己云服务器拉取字体包
scp -P 7777 moloom@moloom.com:~/Resources/SanFrancisco.tar.gz ./
#解压缩
tar zxvf SanFrancisco.tar.gz
#复制配置文件到 /usr/share/fontconfig/conf.avail
sudo cp SanFrancisco/64-language-selector-prefer.conf /usr/share/fontconfig/conf.avail
#映射到 /usr/share/fontconfig/conf.default 下
sudo ln -s /usr/share/fontconfig/conf.avail/64-language-selector-prefer.conf /usr/share/fontconfig/conf.default/64-language-selector-prefer.conf
#复制字体到字体路径
cp -r SanFrancisco/PingFang SanFrancisco/SF-Mono SanFrancisco/SF-Pro ~/.local/share/fonts/SanFrancisco
#刷新字体缓存
sudo fc-cache -fv
去系统设置中设置字体
2. 安装oh-my-zsh
#先安装zsh
yay -S zsh
#安装oh-my-zsh
sh -c " $( curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh) "
#若访问不了,则可以执行以下语句试下,下载完后记得删掉!!!
sudo sh -c 'echo "185.199.108.133 raw.githubusercontent.com" >> /etc/hosts'
#更改默认终端
sudo vim /etc/passwd ##找到当前用户名的那一行,把/bin/bash 修改成/bin/zsh
#安装 zsh 高亮插件
git clone https://gitee.com/hello-luiswu/zsh-syntax-highlighting.git ${ ZSH_CUSTOM :- ~/.oh-my-zsh/custom } /plugins/zsh-syntax-highlighting
#安装 zsh 命令补全插件
git clone https://gitee.com/hello-luiswu/zsh-autosuggestions ${ ZSH_CUSTOM :- ~/.oh-my-zsh/custom } /plugins/zsh-autosuggestions
#安装sudo插件,按两下ESC即可在命令前面添加 sudo
#autojump j 关键字 切换目录
yay -S zsh-sudo autojump
#启用插件,在.zshrc添加
sed -i '/^plugins=/c\plugins=(\n\tgit\n\tsudo\n\tnode\n\tpython\n\tautojump\n\thistory\n\tcommand-not-found\n\tzsh-autosuggestions \n\tzsh-syntax-highlighting\n)' ~/.zshrc
#配置alias
alias datee = "date '+%Y-%m-%d %H:%M:%S:%3N'"
#向云服务器同步Documents文件
alias rspush = "rsync --exclude-from='/home/moloom/Documents/rsync_exclude' -avr -e 'ssh -p 7777' /home/moloom/Documents moloom@moloom.com:~/"
#从云服务器拉取文件到Documents
alias rspull = "rsync -avr -e 'ssh -p 7777' moloom@moloom.com:~/Documents /home/moloom"
#alias neofetch="neofetch|lolcat"
2. 正确上网
clash for archlinux
3. 安装 aria2
安装aria2
yay -S aria2
#命令下载种子
aria2c "种子"
配置aria2,目录在 ~/.aria2/aria2.conf
#创建临时文件夹,等下任务完成可以删
md ~/1
#获取配置文件
git clone https://github.com/P3TERX/aria2.conf
#把下载下来的配置包移动到 ~/.aria2 目录下
mv -r ~/1 ~/.aria2
#在配置文件aria2.conf中修改自己的路径,rpc-secret
aria2加速路径 ,复制节点到bt-tracker选项下
创建守护进程 sudo vim /usr/lib/systemd/system/aria2c.service
[ sudo] password for moloom:
[ Unit]
Description = Aria2c download manager
After = network.target
[ Service]
User = moloom
Type = forking
ExecStart = /usr/bin/aria2c --conf-path= /home/moloom/.aria2/aria2.conf -D --enable-rpc
[ Install]
WantedBy = multi-user.target
启动守护进程
sudo systemctl start aria2c.service
安装aria2 ui工具,报错的话注意看一下,如果是node.js版本过低的话,就yay -Ss nodejd-lts查查新版本node的包名,然后再安装就行。
yay -S ariang-native-electron-git
打开工具,点开AriaNG设置,在RPC那项中修改RPC地址为 127.0.0.1 ,否则连不上aria2。
4. 安装kvm虚拟机
4.1 安装 kvm 和 qemu
检测宿主机cpu是否支持虚拟化,如果flags里有vmx 或者svm就说明支持VT
grep -E "(vmx|svm)" --color= always /proc/cpuinfo
查看内核模块是否装载
lsmod | grep kvm
lsmod | grep virtio
手动加载内核模块
sudo modprobe virtio
sudo modprobe kvm
当前用户加入组kvm
sudo usermod -a -G kvm username /*username改为你的用户名*/
安装kvm相关软件
#安装qemu以及图形化客户端
sudo pacman -S qemu qemu-full
sudo pacman -S libvirt virt-manager
#安装网络相关软件
sudo pacman -S ebtables dnsmasq bridge-utils openbsd-netcat
设置授权 sudo vim /etc/polkit-1/rules.d/50-libvirt.rules 内容如下
/* Allow users in kvm group to manage the libvirt daemon without authentication */
polkit.addRule( function ( action, subject) {
if ( action.id == "org.libvirt.unix.manage" &&
subject.isInGroup( "kvm" )) {
return polkit.Result.YES;
}
}) ;
加入 kvm 组
sudo usermod -a -G kvm moloom
启动虚拟机服务
sudo systemctl enable libvirtd
sudo systemctl start libvirtd
sudo systemctl start virtlogd
删除默认虚拟网络
#删除网络
sudo virsh net-destroy default
#彻底删除默认网络
sudo virsh net-undefine default
4.2 配置宿主机桥接网络
创建 bridge 虚拟设备
sudo vim /etc/systemd/network/30-MyBridge.netdev
[ NetDev]
Name = br0
Kind = bridge
绑定 bridge 到网口,(用网线端口,wifi还没试过)
sudo vim /etc/systemd/network/30-bind.network
#我电脑网卡是enp6s0,ip a s 命令看
[ Match]
Name = en*
[ Network]
Bridge = br0
建立 bridge 网络
sudo vim /etc/systemd/network/30-mybridge.network
[ Match]
Name = br0
#自动获取ip地址。值可以为 boolean,ipv4,ipv6
[ Network]
DHCP = true
#配置静态ip地址,和上面 dhcp 二选一即可
[ Network]
DNS = 192 .168.0.1
Address = 192 .168.0.100/24
Gateway = 192 .168.0.1
启动新网络
#先关闭 dhcpcd 服务,arch一般都是用dhcpcd服务获取ip地址
sudo systemctl stop dhcpcd.service
#取消 dhcpcd 开机自启
sudo systemctl disable dhcpcd.service
#重新启动 systemd.network 服务
sudo systemctl restart systemd-networkd.service
#加入开机自启套餐
sudo systemctl enable systemd-networkd.service
#测试宿主机网络联通情况
授权给配置文件相应的文件,防止虚拟机访问网桥失败
sudo chmod u+s /usr/lib/qemu/qemu-bridge-helper
#修改权限
sudo chmod 666 /etc/qemu/bridge.conf
#添加 br0 虚拟 bridge设备,否则虚拟机识别不到
sudo vim /etc/qemu/bridge.conf
allow br0
#设置宿主机端口转发
sudo vim /etc/sysctl.d/30-ipforward.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.forwarding = 1
net.ipv6.conf.all.forwarding = 1
#使配置文件生效
sudo sysctl -p /etc/sysctl.d/30-ipforward.conf
4.3 配置虚拟机网络
ubuntu23版本,DHCP自动获取
#使用 netplan 配置dhcp网络
#编辑文件,添加以下配置,enp1s0是网卡名称,实际根据 ip a s命令中的修改
sudo vim /etc/netplan/50-cloud-init.yaml
network:
ethernets:
enp1s0:
dhcp4: true
version: 2
#使修改的网络配置生效
sudo netplan apply
ubuntu23版本,配置静态ip,也是修改 /etc/netplan/50-cloud-init.yaml 文件
network :
ethernets :
enp1s0 : ## network card name
dhcp4 : false
addresses :
- 192.168.0.177/24 ## set static IP
routes :
- to : default
via : 192.168.0.1 ## gateway
nameservers : #dns服务器
addresses : [ 192.168.0.1 , 192.168.1.1 ]
version : 2
4.4 修改hugepage,提高虚拟机性能
cat /proc/meminfo 查看系统内存信息。
HugePages_Total:Hugepage总数;
HugePages_Free:Hugepage可用数量;
Hugepagesize:Hugepage一页的大小;
修改 Hugepagesize 的大小。
#编辑grub启动配置
sudo vim /etc/default/grub
#找到 GRUB_CMDLINE_LINUX ,添加如下参数
default_hugepagesz = 1G
#修改grub配置文件后要重新生成grub
sudo grub-mkconfig -o /boot/grub/grub.cfg
分配 hugepage 个数。
sudo vim /etc/sysctl.d/40-hugepage.conf
#分配4个hugepage,占用内存=Hugepagesize * vm.nr_hugepages
vm.nr_hugepages= 4
挂载 hugetlbfs ,大页分配以后要挂载 hugetlbfs 才可以使用。
#修改 fstab 文件,该文件开机自动挂载
sudo vim /etc/fstab
#挂载大内存页,虚拟机加速用
hugetlbfs /dev/hugepages hugetlbfs mode = 01770 ,gid= kvm 0 0
重启电脑。
KVM虚拟机的xml 配置文件默认位于: /etc/libvirt/qemu /虚拟机名.xml。
也可以用 sudo virsh edit 虚拟机名 命令修改虚拟机xml文件,不过virsh默认使用 vi 编辑文件,如果没安装 vi ,建立 vi 软连接到 vim sudo ln -svf /usr/bin/vim /usr/bin/vi 。
修改虚拟机配置文件。
<domain>
....
//添加如下三行即可,它会按照设定的内存大小去占用 hugepage 。
<memoryBacking>
<hugepages/>
</memoryBacking>
......
</domain>
4.5 隐藏虚拟化
让虚拟机系统觉得是在实机上运行。 sudo virsh edit win10 修改虚拟机xml配置,在各个对应地方添加如下配置。
<!--linux系统不需要这个-->
<os>
<smbios mode= 'host' />
...
</os>
...
<features>
<hyperv>
...
<vendor_id state= 'on' value= '123456789ab' />
</hyperv>
<kvm>
<hidden state= 'on' />
<hint-dedicated state= 'on' />
</kvm>
...
</features>
...
<cpu mode= 'host-passthrough' >
...
<feature policy= 'disable' name= 'hypervisor' />
</cpu>
4.6 qemu启动命令
qemu-system-x86_64 -name ubuntu23.10 \
-hda /run/media/mo/Installation/virtual_of_arch/ubuntu23.10 \
-m 1024 -mem-path /dev/hugepages \
-enable-kvm \
-cpu host \
-smp 2 \
-netdev bridge,br= br0,id= br0 \
-device virtio-net-pci,netdev= br0 \
-daemonize #使虚拟机在后台运行
-display curses #输出重定向到当前终端
-nographic #不启动图形化界面,VGA 卡,只是关闭了 SDL 输出。
-vga type #可用的选项为 std,qxl,vmware,virtio,cirrus 或 none
-device virtio-vga-gl #启用3D加速,并用 -display sdl,gl=on 或 -display gtk,gl=on 在显示设备上启用 opengl 上下文,这两个选项分别适用于 sdl 输出和 gtk 输出。
#如果配置成功,在虚拟机里面输入 dmesg | grep drm ,会提示如下
[ drm] pci: virtio-vga detected
[ drm] virgl 3d acceleration enabled
#显卡加速设置详情看wiki:https://wiki.archlinuxcn.org/wiki/QEMU#SPICE
4.7 virsh管理虚拟机
最好是通过 virt-manager 图形化工具创建虚拟机,在用 virsh 命令管理虚拟机。
#检查虚拟机使用的磁盘文件
sudo virsh dumpxml vm-name
#关闭虚拟机
sudo virsh shutdown vm-name
#如果shutdown命令无法关闭虚拟机,使用destroy命令强制关机
sudo virsh destroy vm-name
#查看虚拟机是否做过快照
sudo virsh snapshot-list --domain vm-name
#删除快照
sudo virsh snapshot-delete --domain vm-name --snapshotname 3sep2016u1
#删除虚拟机。它会清除虚拟机的配置,但不会删除虚拟机的镜像文件
sudo virsh undefine vm-name
5. 安装VMware
安装LTS内核,如果已经是LTS则不用安装
sudo pacman -S linux-lts linux-lts-headers
#移除最新版
sudo pacman -Rsn linux
#重新生成引导项
sudo grub-mkconfig -o /boot/grub/grub.cfg
#重启
reboot
安装 vmware-workstation,
#安装vm
yay -S vmware-workstation
#如果配置了上面的桥接就把vm网络关闭,如果没有则开启
#查看安装时的log
sudo vmware-modconfig --console --install-all
#关闭vm网络
sudo systemctl stopt vmware-networks.service
#关闭vm网络开机自启动
sudo systemctl disable vmware-networks.service
网络启动报错
sudo systemctl status vmware-networks.service
#查看vm网络状态,如下所示
Loaded: loaded ( /usr/lib/systemd/system/vmware-networks.service; enabled; vendor preset: disabled)
Active: failed ( Result: exit-code) since Tue 2022 -06-28 06 :57:25 CEST; 31s ago
Process: 508 ExecStartPre = /sbin/modprobe vmnet ( code = killed, signal = SEGV)
Process: 556 ExecStart = /usr/bin/vmware-networks --start ( code = exited, status = 1 /FAILURE)
CPU: 60ms
Jun 28 06 :57:25 x1gen10manjaro vmware-networks[ 556 ] : Failed to start DHCP service on vmnet1
Jun 28 06 :57:25 x1gen10manjaro vmware-networks[ 556 ] : Failed to start NAT service on vmnet8
Jun 28 06 :57:25 x1gen10manjaro vmware-networks[ 556 ] : Failed to enable hostonly virtual adapter on vmnet8
Jun 28 06 :57:25 x1gen10manjaro vmware-networks[ 556 ] : Failed to start DHCP service on vmnet8
Jun 28 06 :57:25 x1gen10manjaro vmware-networks[ 556 ] : Failed to start some/all services
Jun 28 06 :57:25 x1gen10manjaro vmware-networks[ 556 ] : Started Bridge networking on vmnet0
Jun 28 06 :57:25 x1gen10manjaro systemd[ 1 ] : vmware-networks.service: Control process exited, code = exited, status = 1 /FAILURE
Jun 28 06 :57:25 x1gen10manjaro vmnetBridge[ 583 ] : Bridge process exiting.
Jun 28 06 :57:25 x1gen10manjaro systemd[ 1 ] : vmware-networks.service: Failed with result 'exit-code' .
Jun 28 06 :57:25 x1gen10manjaro systemd[ 1 ] : Failed to start VMware Networks.
#解决方法
#添加内核启动参数
sudo vim /etc/default/grub
#找到 GRUB_CMDLINE_LINUX_DEFAULT ,在双引号里面添加 ibt=off
GRUB_CMDLINE_LINUX_DEFAULT = "loglevel=3 intel-iommu=on ibt=off quiet"
#重启
虚拟机里面如果安装 VMware Tools 选项是灰色的,就在虚拟机配置里面添加一个CD/DVD,如下图所示,就可以正常安装vm tools
在VM虚拟机中拷贝大型文件时,vm会把文件先拷贝到 ~/.cache/vmware/ 目录下。
共享文件夹配置
vm中开启了共享文件夹,如果虚拟机系统是 linux ,则用以下命令挂载
# shared-folder 是共享的文件夹名称
# /mnt/files 是挂载的目的地
sudo vmhgfs-fuse .host:/shared-folder /mnt/files -o allow_other -o uid = 1000
6. 显卡直通
已安装成功的内核版本 6.1.54-1-lts ,vm版本 17.0.1-1 ;显卡直通教程点此处
显卡直通教程:https://ivonblog.com/posts/archlinux-gpu-passthrough/ 、https://qqq.ninja/blog/post/vfio-on-arch/
进BIOS,开启VT-d虚拟化,进入系统,
#加载VMware内核模块
sudo modprobe -a vmw_vmci vmmon
#添加内核启动参数,开启YT-d虚拟化
sudo vim /etc/default/grub
#在 GRUB_CMDLINE_LINUX 中添加 intel-iommu=on 修复或导致黑屏可视添加 iommu=pt 试试
GRUB_CMDLINE_LINUX_DEFAULT = "loglevel=3 intel-iommu=on ibt=off quiet"
#重新生成启动项,然后重启
sudo grub-mkconfig -o /boot/grub/grub.cfg
#重启后,看看启动日志检查一下IOMMU是否已启用
sudo dmesg | grep -e DMAR -e IOMMU
检查IOMMU组是否有效,执行以下脚本,获取结果
#!/bin/bash
shopt -s nullglob
for g in $( find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V) ; do
echo "IOMMU Group ${ g ##*/ } :"
for d in $g /devices/*; do
echo -e "\t $( lspci -nns ${ d ##*/ } ) "
done ;
done ;
下图是以上脚本的执行结果,找到以VGA开头的,看看是不是自己的显卡型号
添加VFIO到内核模块, sudo vim /etc/modprobe.d/vfio.conf ,在里面添加如下内容
#ids=后面是刚才查看的显卡的那些id,如上图绿框所示,如有多个值之间用,隔开
options vfio-pci ids = 8086 :a780
#options vfio-pci disable_idle_d3=1
#options vfio-pci disable_vga=1
#如果显卡group中有多个设备,有几个就在 ids 参数上添加几个。
#同理,kvm中添加PCI设备时,也要把显卡同一个组的多添加进去,
#例如nvidia显卡,group中有两个设备,一个是显卡,另一个设备则跟音频有关,这个音频输出到显示器
加载vfio,arch wiki文档链接 ,本方法适用intel核显,如果是NVIDIA或AMD显卡请看官方文档
#安装工具
yay -S mkinitcpio
#修改配置文件
sudo vim /etc/mkinitcpio.conf
#找到MODULES,在括号里面添加
vfio_pci vfio vfio_iommu_type1
#找到HOOKS,看括号里面是否有modconf,没有就添加
#添加到内核,ps:先按下一步安装LTS内核!!!
mkinitcpio -p linux-lts
#重新生成启动项
sudo grub-mkconfig -o /boot/grub/grub.cfg
#重启
7. 安装ssh
#安装ssh
yay -S openssh
#编辑配置文件
sudo vim /etc/ssh/sshd_config
#找到 Port ,修改端口号为 7777
Port 7777
#设置root账号不能密码登录
PermitRootLogin prohibit-password
#设置最大连接数
MaxSessions 10
#取消如下注释
AuthorizedKeysFile .ssh/authorized_keys
#ssh命令
ssh -p 7777 10 .243.138.26
8. 部署ftp
#安装vsftpd
sudo apt install vsftpd
#修改配置文件
sudo vim /etc/vsftpd.conf
9. 系统必备安装包
yay -S dosfstools #mkfs.fat工具
yay -S hdparm #机械硬盘工具
yay -S unzip-natspec #平替unzip软件,建议先卸载一下unzip。不需要指定字符集编码即可解决 Linux 下解压 zip 出现乱码的情况(无论是简体中文、繁体中文、日文)
yay -S zerotier-one #组网工具,用法看 archwiki
ufw #防火墙
7 -zip #7z 压缩包工具
fio #测试硬盘io速度
fio --randrepeat= 1 --ioengine= libaio --direct= 1 --gtod_reduce= 1 --name= test --filename= test --size 20GB --bs= 4m --iodepth= 1 --readwrite= write
net-tools # netstat 命令
yay -S remmina freerdp #remmina远程工具,freerdp提供mstsc连接支持
#安装包:
tree ptree lolcat sl cowsay figlet downgrade
grub efibootmgr google-chrome firefox dolphin ranger ntfs-3g bluez bluez-utils docker docker-compose yt-dlp neofetch highlight lsof
figlet #字体变大工具,和cowsya类似
#配置chrome,如果是在wayland,必须配置
vim .config/chrome-flags.conf
#--start-maximized
#--incognito
#强制加速
--enable-features= VaapiVideoDecodeLinuxGL
#启动原生wayland
--ozone-platform-hint= auto
#防止无法启用输入法
#--gtk-version=4
--enable-wayland-ime
#需要开机自启的软件: dhcpcd iwd sddm bluetooth docker
不进行更新程序名单
IgnorePkg = video-downloader visual-studio-code-bin intellij-idea-ultimate-edition-jre intellij-idea-ultimate-edition datagrip-jre datagrip clion-lldb clion-jre clion-gdb clion-cmake clion yt-dlp jdk-openjdk jre-openjdk jre-openjdk-headless vmware-workstation ariang-native-electron-git typora google-chrome
------------------------------------------------------------
yay -S nmap #好用的端口扫描,安装了nmap也顺带安装了ncat
sudo pacman -S netdiscover #内网服务扫描,命令如下
sudo netdiscover -i wlp4s0 -r 10 .101.153.0/24
10. 配置快捷键
10.1 colorpicker 拾色器
colorpicker是arch自带的一个小插件,不是单独的软件,启动命令是 /usr/bin/plasmawindowed org.kde.plasma.colorpicker 。
配置timeshift
打开 timeshift 图形化界面,点设定,配置如下图一样的规则,一定要包括 用户目录的隐藏文件!!! 用户所有的配置都在里面。
点击 “创建” 即会创建快照,还可以更改计划,最好每周有两三个快照。
三. 配置开发环境
1. JDK
1.1 安装 JDK
#安装最新版jdk,目前是jdk22,如果是按如上教材执行到这,那么你电脑此时应该把 jdk-openjdk 更新屏蔽了
yay -S jdk-openjdk
#安装jdk8
yay -S jdk8-openjdk
1.2 切换 JDK
archlinux 自带一个 archlinux-java 命令来切换jdk版本,命令很简单。
# 列出系统中已安装的 jdk
archlinux-java status
# 获取默认的 jdk
archlinux-java get
# 设置默认 jdk
sudo archlinux-java set java-22-openjdk
# 取消 jdk 设置
sudo archlinux-java unset java-22-openjdk
2. 安装idea、datagrip、clion
目前这三个软件的版本都是2022.2.4
IDEA地址 datagrip地址 CLion地址
以CLion为例:进入软件包详情界面;点击右边的查看更改;
找到2022.2.4版本;点击进去后来到如下界面;点击download后面的链接下载
解压下载的压缩包,并在解压后的目录内执行以下命令安装:
makepkg -s
sudo pacman -U *.pkg.tar.zst
特定版本禁止更新:vim /etc/pacman.conf 在 IgnorePkg = 中添加对应的包名,用空格分隔多个包名。
IgnorePkg = video-downloader visual-studio-code-bin intellij-idea-ultimate-edition-jre intellij-idea-ultimate-edition datagrip-jre datagrip clion-lldb clion-jre clion-gdb clion-cmake clion yt-dlp jdk-openjdk jre-openjdk jre-openjdk-headless vmware-workstation ariang-native-electron-git typora google-chrome
破解软件
Jetbrain激活教程
3. 安装 Visual Stdio Code
# 安装 vsc
yay -S visual-studio-code-bin
# 插件
remote-ssh
remote Explorer
Auto Close Tag
Dev Containers
Docker
Docker compose
Markdown All In One
Prettier
Symbol Masks
Vue Language Features
nginx configuration
3. 安装maven
maven包解压到 /opt 下,修改 conf 文件夹下的setting.xml,配置文件如下
Maven setting文件
配置环境变量
sudo vim /etc/profile
# 在最后追加这两行
export MAVEN_HOME = /opt/maven/apache-maven-3.6.0
export PATH = $MAVEN_HOME /bin:$PATH
# 重新加载配置文件
source /etc/profile
#IDEA中需要设置自己安装的maven
4. 初始化Git
git config --global user.name "name" #引号里面输入你的名字
git config --global user.email "email" #输入邮箱,邮箱要对应你github绑定的邮箱,否则提交时不会算到contribution里面
git config --global core.autocrlf false #消除由于Windows和Linux平台中换行符的差异导致的问题
git config --global core.quotepath off #消除由于路径或者是文件名包含中文导致的乱码问题
git config --global gui.encoding utf-8 #消除gui界面中文乱码问题(如果全程使用命令行的话不用担心这个问题)
ssh-keygen -t rsa -C "youremail" #配置ssh的密钥,输完之后一路回车
eval ` ssh-agent` #启用ssh-agent
ssh-add ~/.ssh/id_rsa #添加密钥
ssh-add -l #将它添加到已知的key列表中
cat ~/.ssh/id_rsa.pub #把这个公钥添加到自己的Github账户上去
github token
#moloom-arch-laptop
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
#moloom-arch-desktop NO Expiration
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
5. springboot项目添加log4j2日志插件
SpringBoot 引入log4j2
6. 安装 docker
7. 安装 Kubernetes
7.1 确保关闭 swap
# 查看 swap分区是否存在
cat /etc/fstab
free -h
# 关闭 swap,把下面路径的文件删除掉 swap 那行
/etc/fstab
7.2 加载需要的模块
sudo modprobe overlay
sudo modprobe br_netfilter
#查看模块是否被加载
sudo lsmod | grep br_netfilter
cat <<EOF | sudo tee /etc/sysctl.d/kubernetes.conf
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
EOF
#让配置生效
sudo sysctl -p
7.3 配置 ipvs 功能
yay -S ipset ipvsadm
#开机加载模块
sudo tee /etc/modules-load.d/modules.conf << EOF
br_netfilter
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4
EOF
7.4 安装 k8s 组件
sudo pacman -S kubelet kubeadm kubectl
sudo systemctl enable kubelet --now
# 指定要安装的版本
sudo downgrade kubelet kubectl kubeadm
7.5 加入集群
# 在已有集群控制平面上执行如下命令,它的结果作为 join命令的 token 值
kubeadm token create
# 这个 key 用于在其他 Control-Plane 之间安全地复制 CA 证书,它的结果作为 join命令的 certificate-key 值
sudo kubeadm init phase upload-certs --upload-certs
# 获取 CA 证书
kubeadm token create --print-join-command
# 加入集群,token的值是
sudo kubeadm join 192 .168.1.180:6443 \
--token su732g.nbax7zii7mty3k7x \
--discovery-token-ca-cert-hash sha256:a1b597d058dd513fa4048e9e5f77f4a19a6479c7b63bffd917275686a3412547 \
--control-plane --certificate-key 48cff6730c6e66e5547ad6ae0fc4a138153a2cd6758db4ae0a8eb28220385837 \
--cri-socket= unix:///var/run/cri-dockerd.sock