Silentdoer

导航

U盘安装可移动ArchLinux(适用内置硬盘)

参考这两篇文章:

https://zhuanlan.zhihu.com/p/112541071

https://blog.csdn.net/scarecrow_sun/article/details/125110808

正文开始:

安装前的准备

用rufus windows工具制作一个启动U盘(不是最终安装的那个u盘),然后用这个U盘来安装Arch Linux。为完成这一操作,需要准备如下工具:

  1. 下载Arch Linux镜像文件——>清华大学开源软件镜像站
  2. 下载一个制作启动U盘的工具,这里我选择——>rufus;[这里注意,rufus写u盘镜像的时候,用u盘先转换为GPT格式[guid],可以用diskgenius来整盘转;然后rufus写镜像时分区类型选GPT)
  3. 一个容量2G以上的大U盘。(安装u盘)
  4. 一个用于安装移动操作系统的256G以上的移动u盘(系统u盘)

使用rufus制作启动U盘的步骤非常简单,选一下系统镜像文件,选一下自己的U盘(一般会软件自动选好的),点开始,安心等着就完事了[注意,分区类型改成GPT]

来自rufus官方网站的截图

如果是Linux,可以直接用dd命令:sudo dd if=/home/silentdoer/Downloads/archlinux-x86_64.iso of=/dev/sde bs=4M status=progress oflag=sync,注意这里的/dev/sde是U盘的设备路径,可以用sudo fdisk -l来查看;

准备安装

把制作好的启动U盘插上电脑,开机,疯狂地按那个能够启动电脑BIOS的键。在BIOS中将U盘设为第一启动项,保存退出,就可以等着进入U盘里面的系统了。如果显示出如下界面,说明启动U盘制作成功了[我的界面没有这么炫,只有文字]。选择第一个选项就可以开始安装系统了,如果进不去系统,说明启动U盘没有做好,可能需要重新制作一份。

等待进入启动U盘当中的Linux操作系统

等着系统自己启动一小会儿,当进入到如下界面以后,就可以开始安装系统了。

成功进入启动U盘当中的Linux系统

首先,我们需要确定自己的启动模式(UEFI/BIOS):[我用的是UEFI模式,一般u盘安装盘和u盘系统盘都转为了GPT,且BIOS里配置了UEFI,那这里一般就是UEFI(CSM可开可不开【建议不开的情况下安装,安装后可开可不开】,不开似乎只能支持UEFI,开了可以同时支持UEFI和BIOS,只有UEFI需要安全启动)]

ls /sys/firmware/efi/efivars

如果提示不存在这个文件,那就说明我们的启动模式是BIOS,否则就是UEFI。下图是一个BIOS启动模式的示意图。

BIOS启动模式示意图

【UEFI启动模式】如果屏幕上出现一大把东西,那就说明电脑支持UEFI启动模式。UEFI启动模式需要在BIOS当中开启,如果老铁的硬件比较新,但又不是UEFI启动模式,可能需要去自己的BIOS当中去看看了。

UEFI启动模式示意图

然后,我们需要给电脑连上互联网。使用ip link查看电脑的所有网卡,然后用rfkill确保网卡能用。我的笔记本电脑使用无线网卡连接网络,对应网卡的名字是wlan0,这个名字在后面还会用到。

确定所有网卡的名字

使用命令行程序iwctl连接互联网。首先,键入iwctl进入该程序,可以发现终端窗口发生了一些微妙的变化。(安装后的archlinux没有这个命令,可以通过:sudo pacman -Sy iwd来安装)

进入iwctl程序后的界面示意图

输入help可以查看该程序的帮助文档,在这里我们主要使用几个以station开头的命令。

iwctl帮助文档当中值得注意的几个以station开头的命令

可以通过几个命令的素质四连可以很快乐地完成互联网的连接。分别是station list列出所有可用无线网卡的名字,然后用station <wlan> scan扫描当前可用的无线网(<wlan>需要换成自己的无线网卡名字,我的是wlan0),再然后使用station <wlan> get-networks展示扫描结果(在敲命令的过程中随时都可以使用TAB键进行命令补全),最后使用station <wlan> connect <name>去连接相应的无线网,需要输入无线网络的密码(显示为星号)。效果如下所示:

iwctl素质四连完成互联网连接

值得注意的是,中文名无线网络会被显示成方块块(就比如上面图片当中就有一个wifi的名字全是方块),所以把无线网名称设置为纯英文还是有必要的哈。完成无线网设置后,使用quit退出iwctl,回到熟悉的终端当中。

【有线连接】如果电脑插上了网线,那就应该能直接连上互联网了,无需任何设置[这里注意,全部安装完毕,用u盘系统盘启动后,这个wifi又失去了连接配置,可以用NetworkManager里的nmtui命令在root账号情况下重新配置wifi,具体命令后面会讲]。

使用ping -c 4 baidu.com测试一下是否成功地连上了互联网,如果输出和下图非常类似的话,那就是成功了。有时候可能不会立马就连上网,可以过十几秒再试试ping

测试是否成功地连接上了网络

正式开始安装系统了,首先更新一下系统时钟:

timedatectl set-ntp true 

什么输出都没有的话,就说明设置成功了。在Linux宇宙,啥输出都没有是最好的结果。可以用timedatectl status查看一下系统时钟状态,这里的时间应该是UTC时间。

[注意,这里可以不用用timedatectl设置时区那么快,后面会有设置]

 

接下来开始做硬盘分区了(分四个区,BIOS boot分区[不加这个分区,没用],EFI System分区,Linux Swap分区(可以考虑去掉,因为它会加速u盘坏掉),Linux root(x86-64)分区)[可以考虑在Swap分区后再分一个20G的exFAT分区,用于多个系统之间共享文件]

 

不看,如果要做类似ghost,可以用dd命令,但是dd只能区分到某个分区,因此这里Linux root不能用全部大小,用10G来安装一个最小化可用的系统即可,后续再用扩容把Linux root扩容回去;

ghost是通过:dd bs=512 count=[fdisk命令里Linux root的end值+1] if=/dev/sdb of=/mnt/archlinux.img status=progress;注意这里的512是根据fdisk -l显式出/dev/sdb的Units,而/mnt其实就是安装U盘启动后挂在最后一个Linux filesystem是ext4为/mnt(在Linux boot分区后面),用于保存dd出来的镜像;如要通过img还原最小化安装系统到某个磁盘,则也是可以根据进入安装U盘后执行:dd  if=/xxx/archlinux.img of=/dev/sdX status=progress】

【经过测试dd命令还原的系统是有问题的,除非源和目标两块硬盘完全一致,所以还是重装吧。。】

 

【多硬盘情形】如果直接输入cfdisk默认处理的是/dev/sda,但是系统U盘一般不是sda,所以要用fdisk -l看下系统U盘是哪个,这里比如是/dev/sdb,,然后用cfdisk /dev/sdb处理相应硬盘

在执行cfdisk之前可以先用parted将/dev/sdb改成gpt格式:

parted /dev/sdb
mktable
gpt
Yes
quit

UEFI启动模式】如果是UEFI启动模式,cfdisk到某个物理设备后,可以通过底部的[Delete]命令 删掉所有现有分区,然后新建4个分区,一个3M的BIOS boot分区[不加这个分区,没用],一个300M的boot EFI分区,一个最好至少1G的swap分区(我选了2G),最后一个分区用掉所有剩余空间(这四个分区创建顺序不要错了)。用底部[New]命令创建分区和设定分区大小,用[Type]设定各个分区的格式,BIOS boot分区类型就是BIOS boot[不加这个分区,没用],boot EFI分区设为EFI Systemswap分区设为Linux swap ,剩下的分区设为Linux root x86-64;然后再用[Write]分别对这四个分区真正按照分区类型和大小创建分区;

[这里解释一下,一开始Free Space里只有一个未分区的硬盘,Free Space选择它,最下面有[New],按下New后,下面会提示new的分区大小是多少,第一次对Free Space我是用来分出BIOS boot分区的,因此删除默认给出的大小,输入3M]

选择write写入分区表(看上面一点解释,是三个分区分别都write),在出现的对话框中用yes确认写入

(如果准备弄成exFAT的,则选择Linux filesystem即可,退出后用mkfs.exfat -n LABEL_NAME /dev/sdXn

等cfdisk里面delete/new/type/write都搞定后[Quit]退出cfdisk

 

分区完成以后就要格式化一下硬盘:

BIOS boot分区不需要手动格式化[不加这个分区,没用];

【UEFI启动模式】如果是UEFI启动模式,boot EFI分区要格式化为FAT32分区(就是那个EFI System的)。

mkfs.vfat -F32 /dev/sdb2

那个大于1G的分区格式化为swap,命令如下:

[我这里的swap由于是第3次分的,所以它在我这里是/dev/sdb3]

mkswap /dev/sdb3
# 类似mount
swapon /dev/sdb3

这里面的sdXY要按照自己的实际情况来填,在我的例子当中我只有一个硬盘,同时swap分区是放在sdb3分区的,这里我的参数就是/dev/sdb3

接着再格式化我的/dev/sdb4(root分区)为ext4,相应的命令是(注意,如果是移动U盘装系统的话,建议用ZFS/Btrfs文件系统,因为移动U盘系统容易出现断电崩溃等特殊情况,而ZFS/Btrfs的写时拷贝和对应的快照功能很适合恢复数据)

mkfs.ext4 /dev/sdb4  # 带日志功能
mkfs.ext4 -O "^has_journal" /dev/sdb4  # 不带日志功能,由于带日志功能会加速消耗U盘的寿命,所以可以用不带日志功能的,同样的原因,Swap分区其实也应该去掉

或者(btrfs文件系统):

mkfs.btrfs /dev/sdb4

(这个是root分区,roo分区因为最大所以格式化会比较久)。如果分了更多的区,那就要依次进行格式化。这个格式化操作会比较慢一些,略微等一下就好。如果不记得自己的分区表了,可以用cfdiskfdisk -l检查一下自己的分区表,可以从容量和类型等属性来判断具体某个分区是干什么用的。

 

格式化硬盘

格式化完成以后就要挂载硬盘,因为这个时候的系统是运行在U盘里的,而你要对电脑的硬盘进行操作,显然需要挂载一下,相当于把硬盘当成大号U盘(系统u盘)插到小u盘(安装u盘)上面。命令当中的/dev/sdXY需要根据实际情况设置为自己的根目录,也就是那个比较大,占掉所有剩余空间的硬盘分区(root目录,ext4文件系统的那个,我的是/dev/sdc3)。

mount /dev/sdb4 /mnt

如果是btrfs文件系统,还需要做如下操作:

btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@log
btrfs subvolume create /mnt/@pkg
btrfs subvolume create /mnt/@yay
btrfs subvolume create /mnt/@downloads
umount /dev/sdb4    # 卸载分区

# 挂载根目录
mount /dev/sdb4 /mnt -o subvol=@,noatime,discard=async,compress=zstd

# 挂载家目录
mkdir /mnt/home
mount /dev/sdb4 /mnt/home -o subvol=@home,noatime,discard=async,compress=zstd

# 挂载 /var/log 目录
mkdir -p /mnt/var/log
mount /dev/sdb4 /mnt/var/log -o subvol=@log,noatime,discard=async,compress=zstd

# 挂载 /var/cache/pacman/pkg 目录
mkdir -p /mnt/var/cache/pacman/pkg
mount /dev/sdb4 /mnt/var/cache/pacman/pkg -o subvol=@pkg,noatime,discard=async,compress=zstd

# 挂载 /home/silentdoer/.cache/yay 目录
mkdir -p /mnt/home/silentdoer/.cache/yay
mount /dev/sdb4 /mnt/home/silentdoer/.cache/yay -o subvol=@yay,noatime,discard=async,compress=zstd

# 挂载 /home/silentdoer/Downloads 目录
mkdir -p /mnt/home/silentdoer/Downloads
mount /dev/sdb4 /mnt/home/silentdoer/Downloads -o subvol=@downloads,noatime,discard=async,compress=zstd

chattr +C /mnt/var/log
chattr +C /mnt/var/cache/pacman/pkg
chattr +C /mnt/home/silentdoer/.cache/yay
chattr +C /mnt/home/silentdoer/Downloads

 

【UEFI启动模式】创建EFI挂载分区:mkdir -p /mnt/boot/EFI

注意这里的sdb2是上面300M的那个EFI Systemmount /dev/sdb2 /mnt/boot/EFI

 

FLAG-grub

正式安装

选择合适的镜像源,使用vim打开/etc/pacman.d/mirrorlist,找一个感觉速度比较快的镜像源用dd切掉,gg到首行按p粘贴一下(最上面的最优先),然后:wq存储并退出。这样在安装软件的时候,网速就会比较快了。当然也可以直接使用清华镜像源(即第一个Server上面加一行:

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

),请参考如下帮助文档。

调整完镜像源以后,可以刷新一下软件包缓存:

pacman -Syy

现在可以正式开始安装系统了,安装系统使用pacstrap,输入如下命令安装一些基础包:

pacstrap /mnt base linux-lts linux-lts-headers linux-firmware base-devel networkmanager dhcpcd(貌似只需要安装networkmanager即可) vim grub btrfs-progs[如果不是btrfs文件系统安装可以不要]
# 注意,这里用linux-lts,之前用linux是用的最新版本内核

# 如果要安装waydroid似乎要用linux-zen和linux-zen-headers

networkmanager提供nmcli(命令行工具)和nmtui(文本界面工具)用来联网,dhcpcd用来动态获取ip地址,vim用来编辑配置文件。只要能连上网,别的软件都可以晚点装,目前装这么多东西就足够开机了。需要等待安装过程完成以后,再执行后续的操作,现在可以出去上个厕所先。

生成分区表:

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

如果挂载了其他的硬盘,那么这一步会把他们的相关信息写入配置文件,开机启动后会自动完成硬盘挂载(即自动将当前mount了的分区和其挂载目录信息放到fstab里,linux启动后会自动按这个关系进行挂载这些分区)。如果在前面的操作当中没有挂载其他硬盘,系统便不会把相关信息写入配置文件,系统启动后如果想要使用其他硬盘,还需要手动挂载。

进入新系统:

arch-chroot /mnt

 

【UEFI启动模式】EFI启动安装:(如果安装有问题,这一步可以考虑放回 FLAG-grub 步骤处,但是注意要加/mnt前缀)

# 注意grub-install命令不需要安装grub,适用内置硬盘
grub-install --target=x86_64-efi --recheck --removable --efi-directory=/boot/EFI --boot-directory=/boot

 

设置时区(当然了,如果不在国内肯定就不设置上海的时区了哈):

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

设置硬件时间

hwclock --systohc

本地化设置,使用vim打开/etc/locale.gen,把en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8取消注释,保存退出。运行下面两条命令:

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

注意到这里设置的是en_US.UTF-8,这是因为中文在终端中可能会被显示为方块块(后面安装了中文字体后也不要用zh_CN.UTF-8,试过了也是乱码,所以老实用en_US.UTF-8)。

设置电脑主机名(这里的<myhostname>取一个自己喜欢的名字)(类似windows下的主机名,我的是xxx-PC):

echo <myhostname> >> /etc/hostname

使用vim打开/etc/hosts,在里面输入下面三行内容(<myhostname>换成上面自己取的名字,<localdomain>随便取一个自己喜欢的组织名):

127.0.0.1	localhost
::1		localhost
127.0.0.1	<myhostname>.<localdomain>
<myhostname>

设置root用户的密码(连输两遍,输入时无显示):

passwd

[可以两个都装] intel的CPU安装intel-ucodeamd的CPU安装amd-ucode。如果不太确定自己的cpu型号,可以安装一个neofetch,然后使用neofetch查看。

# 可选项
pacman -S neofetch
neofetch # 查看cpu和显卡信息

# 必选项
# 问了,如果是U盘安装,应该也可以两个一起安装
pacman -S intel-ucode
pacman -S amd-ucode

 

(不要执行这一步,否则可能会造成系统启动有问题,找不到分区UUID)如果是 btrfs 文件系统需要编辑 mkinitcpio 文件,通常位于 /etc/mkinitcpio.conf,找到 MODULES=() 一行,在括号中添加 btrfs,这是为了在系统启动时提前加载 btrfs 内核模块,从而正常启动系统。记得每次编辑完 mkinitcpio 文件后都需要手动重新生成 initramfs:(不做这一步,做了反而启动有bug)

mkinitcpio -P

 

最后初始化GRUB:

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

退出系统,准备关机了:

exit

exit后建议等几秒再umount

卸载刚刚挂载上来的硬盘(卸载失败也无所谓,不强求):

umount -R /mnt

重启电脑(黑屏的时候记得拔掉U盘,或者是在启动前重新进BIOS设置启动顺序):

这里建议umount后等几秒再reboot

reboot

进入系统

开机后显示这样的画面,就说明我们已经成功地安装好Arch Linux系统了。

等待登录

登录的时候输入root作为用户名,密码自然是自己在安装系统的时候设置好的密码。

登录成功

安装完成后

在使用NetworkManager联网之前,先启动必要的后台服务,然后nmclinmtui(推荐)联网就可以了。

systemctl start  NetworkManager
systemctl enable NetworkManager
systemctl start  dhcpcd
systamctl enable dhcpcd

连接上互联网以后(注意,这里需要用root账号再通过nmtui连wifi,选择Activate a connection,然后选择对应的Wi-Fi连接(会要求输入密码,输入完毕按ESC返回),连接好后可以用ip -brief address看下自己的ip情况),

我们需要创建一个普通用户账号,一直使用root不太好。<username>可以改成自己喜欢的用户名,-m表示创建用户的家目录~-G表示把用户放进wheel这个

useradd -m -G wheel <username>

创建完用户以后,设置一下该用户的密码:

passwd <username>

 

如果是btrfs安装,且设置了yay或downloads子卷,那么/home/silentdoer目录的权限是root的(因为是用root账号创建的),需要改一下所属用户:

chown -R silentdoer:silentdoer /home/silentdoer/

 

为了让新创建普通用户能够获得管理员权限,安装sudo包:

pacman -S sudo

安装完毕以后,使用vim打开/etc/sudoers,找到%wheel ALL=(ALL:ALL) ALL这一行取消注释,然后使用:wq!强制改写该文件,使得wheel这个组内的用户都可以使用sudo

然后使用exit退出root帐号,再用普通用户登录系统后就可以正式开始使用archlinux系统了。

 

接下来就是安装桌面环境和桌面环境下的一些软件了:

1.先安装中文字体:

sudo pacman -S wqy-zenhei ttf-fireflysung noto-fonts wqy-microhei ttf-liberation(也可以找一些其他更好看的字体)

2.安装zsh:

sudo pacman -Sy zsh zsh-autosuggestions zsh-syntax-highlighting zsh-theme-powerlevel10k zsh-completions

【这里powerlevel10k经常出问题,可以考虑换成oh-my-zsh的,相应的 ~/.zshrc里的.zsh-theme路径也要换;且需要先安装yay】

切换默认的shell解释器:

chsh -s /usr/bin/zsh

然后把所有的bashrc配置都复制到zshrc里,主要包括~/.bashrc -> ~/.zshrc(要手动创建这个文件)和/etc/bash.bashrc -> /etc/zsh/zshrc(这个文件要自己创建)

然后把/etc/zsh/zshrc里的shopt命令改成set

然后在~/.zshrc最后加上(注意,下面的配置太长可以先不配置等安装完桌面和浏览器后再从本文章copy到~/.zshrc里,然后source一下配置zsh即可):

source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme

# key bindings
bindkey "\e[1~" beginning-of-line
bindkey "\e[4~" end-of-line
bindkey "\e[5~" beginning-of-history
bindkey "\e[6~" end-of-history

bindkey '^[[1;5C' forward-word
bindkey '^[[1;5D' backward-word

# for rxvt
bindkey "\e[8~" end-of-line
bindkey "\e[7~" beginning-of-line
# for non RH/Debian xterm, can't hurt for RH/DEbian xterm
bindkey "\eOH" beginning-of-line
bindkey "\eOF" end-of-line
# for freebsd console
bindkey "\e[H" beginning-of-line
bindkey "\e[F" end-of-line
# completion in the middle of a line
bindkey '^i' expand-or-complete-prefix

# Fix numeric keypad  
# 0 . Enter  
bindkey -s "^[Op" "0"
bindkey -s "^[On" "."
bindkey -s "^[OM" "^M"
# 1 2 3  
bindkey -s "^[Oq" "1"
bindkey -s "^[Or" "2"
bindkey -s "^[Os" "3"
# 4 5 6  
bindkey -s "^[Ot" "4"
bindkey -s "^[Ou" "5"
bindkey -s "^[Ov" "6"
# 7 8 9  
bindkey -s "^[Ow" "7"
bindkey -s "^[Ox" "8"
bindkey -s "^[Oy" "9"
# + - * /  
bindkey -s "^[Ol" "+"
bindkey -s "^[Om" "-"
bindkey -s "^[Oj" "*"
bindkey -s "^[Oo" "/"
# delete
bindkey "^[[3~" delete-char
# ctrl+u
bindkey \^U backward-kill-line

HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000000
SAVEHIST=10000000

然后重启或注销一下(注意,这里的重启或注销是指zsh是在安装了KDE桌面环境之后才安装的,如果是当前时间点就安装了是不需要的)

3.安装KDE Plasma:(可以不安装这个换成安装hyprland,sudo pacman -S hyprland kitty waybar),还需要sddm以及启动它

sudo pacman -S plasma-wayland-protocols qt5-wayland qt6-wayland xorg-xwayland plasma sddm konsole dolphin kate ark okular spectacle gwenview net-tools

安装完成后再用:systemctl enable sddm启动登录管理器服务;

4.安装中文输入法:

sudo pacman -S fcitx5-im(选全部) fcitx5-chinese-addons

如果是hyprland桌面,这样安装输入法:sudo pacman -S fcitx5 fcitx5-chinese-addons fcitx5-configtool(用fictx5-configtool来执行输入法配置)

安装完成后设置环境变量:

sudo vim /etc/environment,添加这些配置:

# 新版fcitx5似乎可以不用这两个配置
#GTK_IM_MODULE=fcitx5
#QT_IM_MODULE=fcitx5
XMODIFIERS=@im=fcitx5
INPUT_METHOD=fcitx5
SDL_IM_MODULE=fcitx5
GLFW_IM_MODULE=fcitx

这里默认的输入法不好用,但是又不知道搜狗支持wayland不,如果支持可以用:yay -S fcitx5-pinyin-zhwiki fctix5-pinyin-sougou安装试下;

 

接着重启电脑(重启后桌面环境才会生效)

启动后就可以看到进入了桌面环境,其左上角可以看到默认是wayland,账户是上面新建的非root账号;

 

登录进去后发现KDE是英文,可以点击左下角菜单,选择System Settings-> Regional Settings,可以看到语言默认是美国的,点击Modify就可以选择简体中文(如果上面没有安装中文字体会发现有乱码),然后应该是要求强制重启;

 

安装浏览器,可以之间用sudo pacman -S firefox安装;

注意,firefox默认是xwayland运行的,如果要原生wayland运行可以给firefox快捷方式的环境变量添加MOZ_ENABLE_WAYLAND=1;

 

安装电池管理工具:sudo pacman -S power-profiles-daemon

 

桌面的文件是点一下就触发打开了(不是双击打开),这里可以设置成双击打开,系统设置-工作区行为-常规行为:单击文件/文件夹时 为 选中;

 

然后还需要配置一下输入法,添加输入法-拼音;

在KDE里可以这样配置输入法:

1.将拼音输入法放到键盘-英语上面(这样默认输入法就是拼音)

2.点击配置全局选项,在快捷键这里将快捷键第一项 切换启用/禁用输入法 的第一栏 改成 左Shift,第三栏韩文点两下变成空;

3.将 临时在当前和第一个输入法之间切换 的快捷键改成 Control+空格;

4.此时的fcitx5无法按[键打印【,需要配置一下sudo vim /usr/share/fcitx5/punctuation/punc.mb.zh_CN并重启fcitx5

# 在大概18,19行改成:(注意中间有空格)
[ 【
] 】
# 同时增加
/ 、
` ·

5.在输入法配置里-配置附加组件-云拼音 后端改成Baidu

6.配置附加组件-拼音-快速输入的触发键 改成空

7.配置附加组件-快速输入-编辑器 - 导入 选择fcitx5_fuhao.csv文件,点击确定,重启fcitx5后,输入meta+;开启快速输入,然后输入ling就能看到有⓪这个特殊符号了。

8.配置附加组件-标点-字母或数字之后输入半角标点(取消勾选,否则是中文输入法但是遇到英文输入逗号会变成英文逗号)

 

如果是给不懂英文的人装的系统,则还需要将$HOME目录下的Desktop、Documents等目录改成中文的【桌面】【文档】,可以执行:

export LC_ALL=zh_CN.UTF-8
xdg-user-dirs-update --force

echo zh_CN > ~/.config/user-dirs.locale

此时在$HOME目录下就会有新增的【桌面】【文档】【下载】等中文目录了,然后打开文件管理器(Dolphin),左边可以看到桌面、文档、下载等选项

,此时逐个点击右键-编辑-位置改成新目录的位置,之后将旧目录的文件mv到新目录(比如Desktop/*到桌面目录)即可。

 

安装lshw读取硬件信息:sudo pacman -S lshw[也可以用来查看GPU驱动信息:lshw -C display]

安装加载ntfs文件系统模块:sudo pacman -S ntfs-3g

安装防火墙:sudo pacman -S firewalld

安装解压rar压缩包的工具:sudo pacman -S unrar;

用 unrar x xxx.rar 来解压文件

接着可以考虑滚动升级一波:

sudo pacman -Syu

 

安装zip压缩命令:sudo pacman -S zip

安装zip解压命令:sudo pacman -S unzip

 

安装time命令,可以用于统计命令的执行时间

yay -Sy time

 

安装chrpath和patchelf命令,可以用于修改可执行文件依赖的共享库的位置

yay -Sy chrpath

yay -Sy patchelf

 

安装yay命令(可以不安装yay[git还是要安装的],pacman也可以安装aur包,配置方式在下面[还是安装yay吧,pacman的aur仓库软件比较少]):

先安装git:sudo pacman -S git
mkdir ~/Projects
cd ~/Projects
git clone --depth=1 https://aur.archlinux.org/yay
cd yay

sudo pacman -S go
下面的makepkg的命令会安装go语言,然后再安装go第三方库
,但是可能会因为网络问题而失败,所以上面提前安装go语言,然后配置库代理:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
export GO111MODULE=on
export GOPROXY=https://goproxy.cn

makepkg -si

然后配置/etc/sudoers文件,添加一行silentdoer ALL=(ALL) !/usr/bin/yay,来禁止silentdoer用户用sudo执行yay命令

 

配置pacman也可以安装aur包

# 注意,第一步可能会卡挺久,可以多试几次
sudo pacman-key --recv-key FBA220DFC880C036 --keyserver keyserver.ubuntu.com
sudo pacman-key --lsign-key FBA220DFC880C036
sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'

然后,在 /etc/pacman.conf 末尾添加如下两行

[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist

接着执行:sudo pacman -Syy更新仓库后就可以用pacman安装aur仓库的软件了;

不过目前aur仓库会很慢,可以sudo vim /etc/pacman.d/chaotic-mirrorlist,将里面Korea(韩国)的Server放到最顶上加速(还有印度和日本)

再添加中文软件仓库sudo vi /etc/pacman.conf

最后面添加:

[archlinuxcn]
Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$arch
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

然后执行:sudo pacman -Sy archlinuxcn-keyring

 

启动桌面后可以再改下pacman的源,安装过程中改的源应该是安装U盘里的,而非系统U盘里的(看了下应该自动改了);

arch linux桌面环境如果要进入tty是用Ctrl+Alt+F3,退出则是Ctrl+Alt+F2(可能要加Fn键)

安装bottom(btm命令)替代top:

sudo pacman -S bottom

yay -Sy helix;安装替换vim的hx工具

至此arch linux基本功能的安装就结束了;

 

修改GRUB的方式是在grub界面(停顿几秒的那个界面)按下e键(有的可能是tab等键)

tty里查看系统日志的方式,输入dmesg命令可以看到打印的启动内核日志(也许可以从这里找出系统启动的问题)

而用journalctl命令可以查看systemd的日志,可以用来排查哪些自启动程序有问题;

如果是从非lts版本升级lts版本linux内核,切换为lts后可以通过sudo pacman -Rs linux linux-headers删除非lts版本的内核;

tty环境可能没有联网,可以用nmtui设置一下;

 

KDE初步美化:

1.下面的bar换成36大小(同时点击更多选项-显示/隐藏-窗口可以覆盖),上面的是24大小(同时临时改下其他点才会生效,比如半透明之类的),下面的半透明和浮动;

2.屏幕右侧放网络速度(这个卡片可能要重启后才能生效网络速度监听)和磁盘活动一上一下的长方形监控卡片;

3.上面的bar左侧放内存和总cpu监控,然后放回收站,剪贴板和记事贴以及边距分隔符和全局菜单;

4.图标换成Adwaita,窗口装饰元素换成Breeze微风;Plasma视觉风格换成Breeze微风深色;

5.桌面特效要加大概有:窗口惯性晃动,窗口粉碎动画,窗口透明度,最小过度动画,鼠标定位,鼠标点击动效,放大镜,请求管理员模式时降低屏幕亮度

6.锁屏 配置锁屏背景图

7.右键桌面,配置桌面背景图,

8.登录屏幕(SDDM) 选择Breeze微风(可能重启后要再勾选一次)[注意,是三块地方,一个是锁屏背景图,一个是登陆屏幕类型,一个是右键桌面配置桌面背景图]

9.开启防火墙

10.配置用户

11.Konsole配置80活动透明

12.在快捷键设置里将KRunner的Alt+Space快捷键去掉,改成Meta+R

13.桌面会话可以考虑改为空会话(否则关机可能会因为要保存会话而关很久)

14.旧式X11应用程序支持里选择:所有键,但仅按下Meta Ctrl Alt Shift键时

15.系统设置里面-日期和时间-勾选 自动设置日期和时间

16.在电源管理-节能里有两个tab可以分别配置插入电源和电池供电的配置,即 交流供电 和 电池供电 ,建议交流供电不休眠;(注意,会出现这两个tab的前提是在有电池的电脑上启动的,如果是台式机或者没有插电池的笔记本上没有tab,节能页面首页的设置就是交流供电的设置)

17.系统设置-音频-配置音量控制-静音状态 取消勾选(否则腾讯会议开着,不动电脑,会自动锁屏音频就没有了)

 

安装双显卡切换工具(主要是Intel和Nvidia),这个看情况要不要安装[还是不安装下面的东西比较好]。。(主要是担心如果只有Nvidia或者是AMD的会有影响吗?毕竟自己的是系统u盘):

# 安装后重启
sudo pacman -S nvidia nvidia-prime nvidia-settings nvidia-utils opencl-nvidia lib32-nvidia-utils
[这个安装了可能导致系统问题,如果发现有问题进tty或者chroot卸载掉]


# 安装后重启
#yay -S optimus-manager
# 安装后建议重启
#yay -S optimus-manager-qt(图形化管理界面)
# 上面的两个我这边安装后用不了不知道为什么。。所以卸载了

重启后可以用optimus-manager-qt命令打开图形化GPU驱动切换工具(也有这个管理图标);

 

这里建议安装safe-rm命令替换掉系统的rm命令,可以参考:https://zhuanlan.zhihu.com/p/374610735;[最新版本已经达到1.1了]【如果用了btrfs快照功能,可以不用这个命令,这个命令会导致一些软件滚动更新时删除部分文件失败导致更新的有问题,比如virtualbox

https://launchpad.net/safe-rm/这里可以下载(直接用yay -Sy safe-rm来安装

安装好后进行如下配置:

sudo su
whereis safe-rm
ln -s /usr/bin/safe-rm /usr/local/bin/rm
chown root:root /usr/local/bin/rm
vim /etc/profile,在最后添加: PATH=/usr/local/bin:$PATH

safe-rm可以配置禁止执行哪些参数,这里至少要配置这些(这些参数是实时生效的[说明用了watch],最好不要配置太多项,否则影响效率]):

/etc/safe-rm.conf文件配置下面的配置;

/
/*
/etc  # 这里可以自动适配etc目录的绝对路径和相对路径以及/etc/
/usr
/usr/bin
/usr/share
/usr/local/share
/usr/local
/usr/local/bin
/usr/share/applications
/usr/share/applications/*.desktop
/home/silentdoer
/home/silentdoer/*  # 注意,这里的*是通配符,即bin下所有的文件都不会删除。。。(而不是自己理解的只是不允许一次性清空里面的文件而已。)
# 所以这里要指定*.desktop类似这样的特殊后缀的不能删除。。
# 这个是用rust写的且有源码,自己改一下用自己的rm

 

如果reboot经常卡住要强制重启,可以考虑不直接桌面环境reboot而是切换tty,然后用root执行reboot

[其实也不用,一般卡住是安装了比较多东西,,等个三分钟左右是可以正常关机的]

可以配置文件/etc/systemd/system.conf

然后将DefaultTimeoutStopSec=90s 取消注释,并将90s改成10s即可优化这个问题;

 

archlinux 全局bash别名配置(包括konsole里的普通用户和root用户,tty里的普通用户和root用户)

vim /etc/bash.bashrc[对应改/etc/zsh/zshrc文件)

# 然后在文件最后换行后加上配置:
alias vi=vim
alias ls='ls --color=auto'
alias ll='ls -al'
alias hx=helix
alias sudo='sudo '
# 考虑前面加上WINEPREFIX的env配置
#alias dpwine=deepin-wine6-stable
alias explorer=dolphin

上面的bash.bashrc在有的linux系统里可能就是bashrc看情况(记得改成/etc/zsh/zshrc);

sudo systemctl enable --now bluetooth开启蓝牙;

 

yay -Sy inetutils,安装hostname命令

 

注意,哪怕按上面的设置了时区,KDE里也设置了自动同步网络时间,有时候时间仍然有问题,可以用ntpdate命令手动同步

yay -Sy ntp
# 注意,要和这个NTP服务网络连通,并不是说能上网就能和这个地址连通,有些wifi是会单独禁用一些服务地址的,可以ping一下
sudo ntpdate -u ntp1.aliyun.com

 

rsync命令类似cp命令,一般用它来实现增量备份;

 

blkid命令可以查看分区的UUID,这个有助于排查/etc/fstab里的分区加载失败问题;

 

现在有时候启动会提示找不到UUID的分区问题(但是查了UUID是没问题的),会卡在rootfs界面,可以按ctrl+alt+del重启电脑;(这个目前不清楚是少了3M的那个分区导致,还是btrfs导致,还是内核有bug导致;应该是mkinitcpio -P命令生成的img导致的)

 

vim如果忘了加sudo,可以在里面执行: :w !sudo tee %,再输入 O 确认,然后Enter后 q! 退出即可;

 

安装后可以配置:sudo vi /etc/modprobe.d/modprobe.conf

里面写:options snd_hda_intel power_save=0(这个主要是在部分电脑上,如果开了声音,但是又没有播放啥,电脑就会发出滴答的声音,像心跳包一样)(看情况,如果配置了有问题就不配置也行,毕竟影响不大)

如果不行,还可以在最后加上: power_save_controller=N

 

安装命令:yay -Sy pamixer,然后可以通过pamixer -m和-u来实现静音或取消静音;主要是可以用来实现某些操作下自动静音(比如锁屏,防止出现忘记了非静音,然后工作环境下开了一个视频的尴尬情况)

添加一个777权限的脚本/home/silentdoer/Apps/shells/mute_voice.sh:

#!/bin/bash
pamixer -m

然后可以通过系统设置-自动启动-添加-添加登录脚本:

/home/silentdoer/Apps/shells/mute_voice.sh

 

vim配置可以选中文本后右键复制:cp /usr/share/vim/vim90/defaults.vim ~/.vimrc【这里vim90要根据自己的vim版本】

然后修改~/.vimrc里的set mouse=a改成set mouse-=a

然后sudo vim /etc/vimrc,在runtime! archlinux.vim下面增加(好像没用。。):

if has('mouse')
  if &term =~ 'xterm'
    set mouse-=a
  else
    set mouse=nvi
  endif
endif

 

timeshift恢复快照的时候,千万不要勾选Restore @home subvolume(额,改了/etc/fstab的配置后似乎也可以?,不管怎么说不用GUI来恢复,只在tty里用root用户用命令来恢复快照)

在tty用root用户来恢复快照:timeshift --list,然后timeshift --restore --snapshot '2023-xx-xx_xx-xx-xx' --skip-grub恢复到具体时间的快照

如果恢复后出现subvolume挂载问题,可以看下将/etc/fstab里的btrfs所有子卷的subvolid=xxx,给删掉重启

 

yay安装软件时,经常会出现等待下载去看视频或者啥,回来发现30分钟过期了输入密码的时间,需要重新yay的情况,可以设置永不过期:

sudo vi /etc/sudoers

然后在Defaults secure_path附近增加一行配置:

Defaults env_reset, timestamp_timeout=-1

 

sudo modprobe overlay可以开启目录堆叠技术,将多种目录一层一层合并为一个目录,其中overlay挂载目录和work工作目录是空目录,还有就是多个读目录和一个写目录;

 

通过命令:sudo smartctl -a /dev/sdc
来检测磁盘是否正常,如果显示了:

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

表示磁盘目前还没有问题;

posted on 2023-03-08 23:39  Silentdoer  阅读(1614)  评论(0编辑  收藏  举报