ArchLinux重开备忘录

2023-02-05 21:39:03

技术

时常记得:sudo pacman -Syu
万一哪天挂了或用新电脑时,方便自己快速重开。
第二次安装成功,nice.
原来16G太小了,重新分配40G再装了一遍,第三次安装成功。

可能用到的链接

Arch wiki
https://wiki.archlinux.org/

vmware虚拟机安装archlinux
https://blog.csdn.net/takashi77/article/details/118927109

重启后网络ping不通
网络问题解决方案
https://blog.csdn.net/kaluosifa/article/details/105303484

安装plasma桌面环境 虚拟机安装不需要配置显卡驱动,其实这个应该是最全最好用的,不过我是装好了Arch后要装kde出错后才找到这个不错的完全体教程
https://arch.icekylin.online/rookie/desktop-env-and-app.html#_4-%E5%AE%89%E8%A3%85-kde-plasma-%E6%A1%8C%E9%9D%A2%E7%8E%AF%E5%A2%83

安装可能用到的命令

ping arch.icekylin.online
timedatectl set-ntp true
timedatectl status
vim /etc/pacman.d/mirrorlist
# 分区和挂载系列命令
pacstrap /mnt base base-devel linux linux-firmware
pacstrap /mnt dhcpcd iwd vim sudo bash-completion
genfstab -U /mnt > /mnt/etc/fstab
cat /mnt/etc/fstab
arch-chroot /mnt
vim /etc/hostname
vim /etc/hosts
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
locale-gen
echo 'LANG=en_US.UTF-8'  > /etc/locale.conf
passwd root
pacman -S intel-ucode
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=ARCH
vim /etc/default/grub
grub-mkconfig -o /boot/grub/grub.cfg
exit
umount -R /mnt
reboot

安装准备

下载软件

前往官网 https://archlinux.org/download/ 下载Arch镜像,往下划选择一个国内的镜像源,这里选用的是aliyun,选择iso映像文件下载

下载虚拟机 VMware 或visual box都可以,这里使用的是VMware

创建虚拟机

创建虚拟机:

  • 典型配置
  • 安装程序光盘映像文件-选择刚刚下载好的iso映像文件
  • 操作系统选择Linux-版本选择其他Linux内核64位
  • 设置虚拟机名称和位置
  • 分配内存 我是16g硬盘 2g内存 后面装kde后感觉有点小了?
  • 其他默认,之后可以在虚拟机-设置里更改

创建完成后请勿直接开启虚拟机,因为会默认使用bios方式启动,我们这里要改用efi方式启动

开始安装

开启虚拟机

更改为UEFI引导: 虚拟机-设置-选项-高级-固件类型,将BIOS选项改为UEFI,确定。因为我们之后的分区类型和引导程序都是用EFI的
开启虚拟机,第一个选项 enter
测试网络,开通则有数据显示,安装镜像时应该已经预配置了网络

ping www.bilibili.com

时间

# 通过 npt 校准时间
timedatectl set-ntp true
# 查看时间
timedatectl status

如果与实际时间相差 8 小时,那是因为我们用的东八区时间与UTC标准时间相差 8 小时: 设置时区为上海,我是安装完后才设置的

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

磁盘分区

lsblk查看磁盘分区情况,未分区时磁盘sda 16G

# 进入磁盘分区系统
cfdisk /dev/sda

然后选择 gpt 方式进入分区,上下键选择分区、左右键选择下方的操作命令,回车执行操作

  • new 新建分区然后输入分区大小,即可将当前磁盘划分出一块分区
  • type 分区类型
  • write 写入磁盘,如果没有 write 直接 quit 则分区操作不会生效
  • delete 删除分区
  • quit 退出分区操作

分区sd1:new - 输入大小(参考:512M)- type - EFI System
分区sd2:new - 输入大小(参考:12G)- type - Linux root(x86-64)
分区sd3:输入大小(参考:剩下的3.5G)- type - Linux swap

确定完成分区后 write - 最后 quit
使用lsblk查看分区后的磁盘

初始化分区

格式化分区

mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
mkswap /dev/sda3 -L Swap
swapon /dev/sda3

挂载分区

mount /dev/sda2 /mnt
mkdir -p /mnt/boot/EFI
mount /dev/sda1 /mnt/boot/EFI

使用vim打开下载镜像列表

vim /etc/pacman.d/mirrorlist

在里面列表第一行添加中国境内的源,这里使用aliyun

Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch

假如你不会vim,你只需要了解在本文中你会用到的 vim 操作:

  • i 进入插入模式,在插入模式下才可以对文件进行修改
  • esc 进入命令模式,可以多按几次 esc 以确保你处于命令模式,在命令模式下不能对文件进行修改
  • 在命令模式下,可以输入一些命令,在本文中你会用到的命令如下
    • :/为查找命令,后面家上你要查找的文本,vim 会跳转到匹配的那一行,按 N 查找下一个
    • :w 保存修改
    • :wq 保存修改并退出 vim
    • :q! 强制退出

系统安装

# 这是为/mnt下安装一些环境用于待会创建用户所使用的,包括一些基本环境以及网络相关的dhcpcd和net-tools
pacstrap -i /mnt base base-devel linux vim dhcpcd net-tools
# 生成 fstab 文件 (用 -U 或 -L 选项设置UUID 或卷标):
genfstab -U /mnt >> /mnt/etc/fstab
# 查看是否生成了磁盘分区
cat /mnt/etc/fstab
# 切换用户,原来 root是红色,切换成功后变为灰色
arch-chroot /mnt
# 创建初始的ramdisk环境
mkinitcpio -p linux

locale地区和语言配置

# 用 vim 打开locale配置文件
vim /etc/locale.gen

查找以下3项,去掉前面的 # 号 vim命令模式输入 :/en_US.UTF-8 UTF-8 查找

en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8
# 生成Locale信息
locale-gen
# 列出所有启用的Locale
locale -a
# 创建locale.conf文件,并提交所要使用的本地化选项
# 不推荐此时设置任何中文locale,这样做可能会导致tty显示乱码
echo LANG=en_US.UTF-8 > /etc/locale.conf
# 显示当前正在使用的Locale和相关的环境变量
locale

设置主机名

# 创建 /etc/hostname 文件并将主机名写入文件,比如主机名为 arch
echo arch > /etc/hostname
# 然后用 vim打开 /etc/hosts 配置
vim /etc/hosts

写入以下内容,保存并退出

127.0.0.1    localhost.localdomain    localhost
::1          localhost.localdomain    localhost
127.0.1.1    arch.localdomain    arch 

网络配置

pacman -S dhcpcd
systemctl enable dhcpcd.service

使用无线网络的话,则需安装以下几个软件包(未验证)
pacman -S iw wpa_supplicant dialog  (有线网络忽略这行)

另一个教程里无线网络的配置
https://arch.icekylin.online/rookie/basic-install.html#%E8%8B%A5%E4%BD%BF%E7%94%A8%E6%97%A0%E7%BA%BF%E8%BF%9E%E6%8E%A5

iwctl # 进入交互式命令行
device list # 列出无线网卡设备名,比如无线网卡看到叫 wlan0
station wlan0 scan # 扫描网络
station wlan0 get-networks # 列出所有 wifi 网络
station wlan0 connect wifi-name # 进行连接,注意这里无法输入中文。回车后输入密码即可
exit # 连接成功后退出

root用户密码及创建新用户

设置 root 密码

# 输入时密码会隐藏,你不会看到你输入的任何东西,这是正常的。确定密码输入完后回车
passwd
# 二次确认密码,密码同样会隐藏

root用户拥有系统的所有操作权限,这样对系统的操作非常不安全,所以需要新建一个普通用户,让其对系统的操作受到一定限制,后面要用的 kde 也只能由非 root 用户使用

# 创建新用户,比如用户名为free
useradd -m -G wheel -s /bin/bash free
# 设置用户密码
passwd free

-m:创建用户主目录(/home/用户名) -G:用户要加入的附加组列表;此处将用户加到wheel组中,之后可以给这个组执行sudo命令的权限 -s:指定了用户默认登录shell的路径,此处设置为bash的路径

给予普通用户使用 root 的权限

# 打开sudoers文件后
visudo

删除wheel组前面的注释符号即可,之后普通用户在命令之前加上 sudo 就能以 root 权限执行命令

安装引导程序 grub

# arch下载软件命令:pacman -S <软件名>
# 因为我们使用的是虚拟机和UEFI引导方式,因此只需要安装grub和efibootmgr:
pacman -S grub efibootmgr
# 将其安装到EFI分区当中
grub-install --recheck /dev/sda
# 生成 grub 的配置文件:
grub-mkconfig -o /boot/grub/grub.cfg

安装完毕

退出重启,安装完成

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

开启网络

重启后使用登录,若使用普通用户登录则有些命令之前需要加 sudo 以获得 root权限

# 设置开机自启并立即启动 dhcp 服务
systemctl enable --now dhcpcd 
# 测试网络连接
ping www.bilibili.com 

若为无线连接,还需要

systemctl start iwd # 立即启动 iwd
iwctl # 和之前的方式一样,连接无线网络

而本人之前遇到网络问题的解决方式,亲测可用

# 检查网络接口
ip link
# 开启第二个接口
ip link set dev ens33 up
# 使用 dhcpcd 分配网络地址
dhcpcd
# 将 dhcpcd 设置为自启
systemctl enable dhcpcd
systemctl disable dhcpcd        // 取消自启

到此 ArchLinux 已经安装完成啦,撒花❀,但是此时只有命令行的界面,稍后我们将安装图形化界面

图形化桌面-KDE(plasma)

Linux 的图形化桌面有 KDE、GONE、xfce等等,这里使用 KDE

安装 KDE plasma桌面环境

安装最小相关软件包

# plasma-meta 元软件包、konsole 终端模拟器和 dolphin 文件管理器
sudo pacman -S plasma-meta konsole dolphin 

kde-applications则是 kde 全家桶 sudo pacman -S plasma kde-applications 其中很多都没必要,而且我第一次装完后登录只显示黑屏与鼠标,不知道是部件有问题还是磁盘空间太小(应该是后者?使用最小包安装成功后我sda2 12g的存储空间只剩5g了) 假如你不慎安装了 kde 全家桶,想要卸载,可以使用以下命令卸载

sudo pacman -Rsc plasma
sudo pacman -Rsc kde-applications

kde 默认安装的是 xorg,如果想使用wayland的话安装以下包:

pacman -S  plasma-wayland-session xdg-desktop-portal
# N卡用户需要额外安装egl-wayland,xdg-desktop-portal包是为了如obs此类工具录制屏幕使用

安装完成后,可以在登录时选择使用 xorg 还是 wayland 另外,虚拟机环境下不需要显卡驱动

配置 sddm

systemctl enable sddm
systemctl start sddm  # 直接启动显示管理器,与以下reboot命令二选一即可
reboot

基本的 kde 就安装完成了,之后更改需要的配置,挑选喜欢的主题,查找美化的教程,安装需要的软件,时常记得 sudo pacman -Syu 滚动更新防止滚挂

完结撒花,可以愉快地玩耍啦 ❀

软件源配置

执行安装 archlinuxcn 源所需的相关步骤:

sudo pacman -S archlinuxcn-keyring # cn 源中的签名(archlinuxcn-keyring 在 archlinuxcn)
sudo pacman -S yay # yay 命令可以让用户安装 AUR 中的软件(yay 在 archlinuxcn)

若安装 archlinuxcn-keyring 时报错,是由于密钥环的问题。 以root 权限运行

pacman -Syu haveged
systemctl start haveged
systemctl enable haveged

rm -fr /etc/pacman.d/gnupg
pacman-key --init
pacman-key --populate archlinux
pacman-key --populate archlinuxcn

出现这个问题

错误:密钥环文件 `/usr/share/pacman/keyrings/archlinuxcn.gpg` 不存在。

解决方法是通过git方式安装yay,再通过yay安装archlinuxcn

git 安装yay

# 安装 git
sudo pacman -S base-devel 
sudo pacman -S git
# 进入 /opt 目录并克隆 yay 稳定版的 git 仓库。
cd /opt
sudo git clone https://aur.archlinux.org/yay.git
# 更改源目录的所有者。将 debugpoint 替换为你的用户名。
sudo chown -R free:users ./yay
# 进入目录进行编译
cd yay
makepkg -si
# 安装中出现 build 错误,卡在下载一个 go 的依赖包

在 makepkg 过程中会因为go依赖的问题卡住,换源后再makepkg

不过go的代理推荐改用https://proxy.golang.com.cn, 感觉其他代理有时不太行,因为在安装vscode的go工具时下载有时会失败
https://zhuanlan.zhihu.com/p/439805266

cd /opt
cd yay
makepkg -si 
# yay 安装 archlinuxcn-keyring
yay -S archlinuxcn-keyring

问题已解决,推荐用上面的方法,下面安装keyring后,安装一些软件如v2ray时还是有密钥问题,上面的方法已经完全解决问题了,不过换源还是可以换一下的


使用中科大镜像源,用清华源失败了,还是中科大的靠谱

sudo vim /etc/pacman.conf

在末尾添加

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

安装 archlinuxcn-keyring

sudo pacman -S archlinuxcn-keyring 
# 如出现错误让你使用 -Sy 安装
sudo pacman -Sy archlinuxcn-keyring 

软件安装

sudo pacman -S firefox chromium # 安装常用的火狐、chromium 浏览器
sudo pacman -S ark # 压缩软件。在 dolphin 中可用右键解压压缩包
sudo pacman -S gwenview # 图片查看器
sudo pacman -S code # all in vscode,yyds
sudo pacman -S go # golang
sudo pacman -S java # java 其他编程语言应该都类似安装

进一步美化桌面

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

透明代理

sudo pacman -S v2ray v2raya