U盘安装可移动Arch Linux,为完成这一操作,需要


参考这两篇文章:

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官方网站的截图

准备安装

把制作好的启动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进入该程序,可以发现终端窗口发生了一些微妙的变化。

进入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处理相应硬盘

UEFI启动模式】如果是UEFI启动模式,cfdisk到某个物理设备后,可以通过底部的[Delete]命令 删掉所有现有分区,然后新建4个分区,一个1M的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分区的,因此删除默认给出的大小,输入1M]

选择write写入分区表(看上面一点解释,是三个分区分别都write),在出现的对话框中用yes确认写入。分区完成以后就要格式化一下硬盘,那个大于1G的分区格式化为swap,命令如下:

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

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

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

接着再格式化我的/dev/sdb4,相应的命令是

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

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

BIOS boot分区不需要手动格式化;

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

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

mkfs.vfat -F32 /dev/sdb2

格式化硬盘

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

mount /dev/sdb4 /mnt

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

【UEFI启动模式】EFI启动安装:

# 注意grub-install命令不需要安装grub
grub-install --target=x86_64-efi --recheck --removable --efi-directory=/mnt/boot/EFI --boot-directory=/mnt/boot

正式安装

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

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

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

archlinux | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

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

pacman -Syy

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

pacstrap /mnt base linux-lts linux-lts-headers linux-firmware base-devel networkmanager dhcpcd vim grub
# 注意,这里用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

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

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.1.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

初始化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>

为了让新创建普通用户能够获得管理员权限,安装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(也可以找一些其他更好看的字体)

2.安装KDE Plasma:

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

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

3.安装中文输入法:

sudo pacman -S fcitx5-im fcitx5-chinese-addons

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

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

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
INPUT_METHOD=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus

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

 

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

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

 

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

 

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

 

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

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

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

安装防火墙:sudo pacman -S firewalld

安装解压rar压缩包的工具:sudo pacman -S unrar,unrar x xxx.rar来解压文件

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

sudo pacman -Syu

 

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

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

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

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

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

 

安装yay命令:

先安装git:sudo pacman -S git

git clone https://aur.archlinux.org/yay
cd yay
makepkg -si

上面的命令会安装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

 

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

arch linux桌面环境如果要进入tty是用Ctrl+Alt+F3,退出则是Ctrl+Alt+F2

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

sudo pacman -S bottom

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

 

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

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

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

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

 

KDE初步美化:

1.下面的bar换成36大小,上面的是26大小,下面的半透明和浮动;

2.屏幕右侧放网络速度和磁盘活动一上一下的长方形监控卡片;

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

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

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

6.锁屏配置锁屏背景图

7.桌面配置背景图,

8.登录屏幕选择Breeze微风

9.开启防火墙

10.配置用户

11.Konsole配置80活动透明

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

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

 

安装双显卡切换工具(主要是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了]

https://launchpad.net/safe-rm/这里可以下载

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

/
/*
/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

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

 

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

vim /etc/bash.bashrc
# 然后在文件最后换行后加上配置:
alias vi=vim
alias ll='ls -al'
alias hx=helix
alias sudo='sudo '
# 注意ll是单引号,所以alias并不是单纯的一个替换,即不是输入ll然后替换为'ls -al',而是会转换为ls -al(去掉单引号)
alias dpwine=deepin-wine5-stable
alias expolrer=dolphin

上面的bash.bashrc在有的linux系统里可能就是bashrc看情况;

相关内容

    暂无相关文章