archlinux安装回顾

现在感觉,以前使用的ubuntu就是个渣渣,用了几年,对与软件本身的了解很差,而且这里的yay或者pura包含的软件实在是太丰富了!而且这种自动的源码编译得到的软件,使用效果要比打包的好很多,为了增加你的决心,先看成品,这个是 kde plasma 桌面,但是最近我又回到了 gnome 桌面(2023.5)

今天,我已经把两个桌面安装了无数遍……

archlinux-kde

openSUSE使用

离开Ubuntu以后,我最开始尝试了滚动版和稳定版,但是体验很差,德国的这些开发者“太过严谨了”,严谨的有毒!

  • 你见过无法播放avi格式视频的vlc吗?
  • 你能忍受买了人脸识别解锁,Ubuntu正常,suse完全卡死吗?
  • 你能明白更新几天以后kde无法进入的无语吗?
  • ……

整个来说体验极差,kde在archlinux,eps文件可以打开,在openSUSE不行,搜狗输入法yay安装正常,openSUSE不行,反正就是问题极多,稳定版也是,不建议使用,而且百度、谷歌基本上找不到解决方案

archlinux从零开始

我觉得吧,新手不要用,因为大概率搞不定,最后还怼arch,需要什么基础呢?

  1. 大概知道分区挂载,以及多系统引导模式
  2. 知道linux以及kde常用的软件,因为软件基本上都需要自己安装,用arch就是为了简洁,不要直接安装kde完全版
  3. 大概知道systemd的使用方法
  4. 足够的时间去折腾,这个很重要

KDE桌面是真的完虐gnome,archlinux具体的安装我记不清了,有些坑以及整体安装逻辑还记得,这个逻辑很重要,因为一开始什么都不懂,安装以后重启到命令行,root设置密码时,没分清U盘与电脑系统,直接无法进入

安装逻辑流程

  1. 使用任意你喜欢的方式刻录archlinux到u盘,

    • 如果在使用windows,可以用软碟通,

    • 如果你在使用linux,可以百度一下,一行命令就可以了,千万注意啊,你要足够熟悉分区 sudo fdisk -l,可以得到分区情况,根据大小判断,如果错误,可能导致某个盘数据彻底被删除!!

      1
      sudo dd if=archlinu镜像的完整路径 of=u盘的分区类似这个/dev/sde

  2. 自行修改电脑启动顺序,u盘第一位,即可进入archlinux所在U盘系统,注意,完全是命令行

    接下来,主要是

    • 确认挂载的分区/ /home /opt /usr/local 名称类似/dev/sdbc2,以及启动引导的 efi 所在分区,但是按照文档挂载以后安装即可
    • 注意按照教程一步步走,不要跳:pacstrap开头的命令只是把linux最基础的东西安装到刚才挂载的分区上,这时候你是在U盘系统上,修改什么都没有意义,尽量在基础安装以后 arch-chroot /根目录分区名字 进入到安装好的系统中,进行其他操作,比如设置root密码,修改时区、语言等,千万不要再U盘系统修改,没意义
    • 另外注意多系统引导,需要额外的软件 os-prober,还需要取消GRUB_DISABLE_OS_PROBER的注释
    • 记得修改root默认密码(这个必须在装系统时修改,下面的启动到系统终端以后也行)

大小坑

分区问题,对于

  • 注意双系统中的 efi 分区不要挂载在新系统的 /boot 里面,因为会导致 grub 以及一些 img 文件放在原来的 efi 分区,而这个分区是 windows 自己创建的,默认大小一般只有 100M ,随着主题自定义、重装系统,这个文件夹会越来越大,甚至报错

软件问题

  • linux启动以后进入桌面系统的逻辑是:显示服务xorg-登录管理器sddm-桌面环境plams(kde)
  • 记得安装plasma桌面环境以后,还有终端(konsole)和文件管理器(dolphin)
  • 记得添加普通用户
  • 注意中文字体(我选择直接复制windows的字体),不然很无语,全是框框,对于中文环境可以不设置,进入kde桌面环境以后,设置页面里选择一下就好
  • 注意很多东西都在 yay 里,而不是 panman 包管理,比如浏览器、搜狗输入法,yay国内好像没法访问,我不知道,自行测试,如果不能访问,改为国内镜像
  • ssh、cron、等等,全部没有……,需要什么安装什么,但是注意安装以后 system enable 使其开机自启!!
  • 防火墙没必要就不要用,不然kde-connect会让你怀疑人生
  • howdy,记得设置正确摄像头、千万不要直接修改 /etc/pam.d/system-auth,会导致很多问题,比如别人ssh你的电脑,直接通过摄像头登陆了

代码参考

明白以后,官方文档知乎百度等文档 配合着看,官方为主,其他为辅,双系统这个参考:2021 Archlinux双系统安装教程(超详细)

涉及双系统、常用软件等

先挂载

1
2
3
4
5
6
7
8
#  sdc1 为做准备安装新系统的磁盘分区
mount /dev/sdc1 /mnt
mkdir /mnt/efi
# sda1 为windows安装时自动创建的efi启动分区
mount /dev/sda1 /mnt/efi

# btrfs
mount /dev/nvme0n1p4 -o subvol=@gnome /mnt

一些常用命令

1
2
3
4
# 分区删除等
cfdisk /dev/sd你的磁盘名字
# 分区格式化为 ext4
mkfs.ext4 /dev/sd你要格式化的分区名字

初步安装

前面那一步,不要按照有些地方说的,把 windows安装时自动创建的efi启动分区 挂在 /boot,因为,grub以及linux等img 文件都会安装在 /boot 里,但是windows的这个分区一般只有100M,而且还有个问题,多个arch系统,会导致这里被重复覆盖,出现一些问题

1
pacstrap /mnt base linux linux-firmware

分区敲定

这个可以最后,全部结束以后,再进行

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

切换新系统

1
arch-chroot /mnt

grub

官方文件在这里,中文的,请自行查看参考,防止更新:GRUB (简体中文) - ArchWiki

grub多系统管理, uefi启动,intel芯片

1
pacman -S grub os-prober efibootmgr intel-ucode

--efi-directory=/efi 是因为刚才的挂载路径

1
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Arch

为了取消双系统的注释

1
echo "GRUB_DISABLE_OS_PROBER=false" >> /etc/default/grub

生成grub启动文件

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

如果想美化,登录以后按照这里来,vinceliuice/grub2-themes 下载以后直接:

1
sudo ./install

bootctl

1
bootctl install
1
bootctl update
1
2
3
4
5
title arch-kde
linux img/kde/vmlinuz-linux
initrd img/kde/initramfs-linux.img
initrd intel-ucode.img
options root=UUID=86f86555-c1c5-4a78-9d77-b0e4b16c7be0 rw rootflags=subvol=@kde quiet splash

其他设置

文本编辑、网络管理、git

1
pacman -S vim git base-devel

设置root密码,尽量复杂一些

1
passwd

语言,这里设置以后,一会到kde设置桌面环境,还需要修改

1
vim /etc/locale.gen
  • 输入 /#en_US回车 输入 n 找到UTF-8那一行 输入:i回车 删掉前面的#(取消注释)
  • esc 按键退出
  • 输入 /#zh_CN回车 输入 n 找到UTF-8那一行 输入:i回车 删掉前面的#(取消注释)
  • esc 按键退出、输入:wq 保存并退出
1
locale-gen
1
vim /etc/locale.conf

添加 LANG=en_US.UTF-8

hostname,我的是 ldr

1
vim /etc/hostname

vim的使用方法上面语言配置已经大致介绍,不再重复

添加 echo "ldr" > /etc/hostname

1
vim /etc/hosts

添加,必须和上面的 /etc/hostname 里面的 ldr 对应

1
2
3
127.0.0.1 localhost
::1 localhost
127.0.0.1 ldr.localdomain ldr

北京时间

1
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

安装桌面

显卡驱动自选,但是我不建议,因为linux内核里本来就有开源的显卡驱动了,对于需要cuda编程的N卡来说,你可以安装 cudnn,会自动把 cuda nvidia 等安装上,同时会禁用开源驱动,重新编译内核,安装以后,不要轻易卸载,有时候会因为内核没有重新编译,导致一些奇怪问题

新建用户

用户名,我的是 yuh,你的自己改

1
useradd -m yuh

设置密码,一会kde可以用它登录

1
passwd yuh

重启

退出系统,结束挂载

1
exit

取消挂载,可能会有报错,不用管,事不大

1
umount -a

重启

1
reboot

有时候代理报错,更新一下时间

1
timedatectl set-ntp true

其他软件

配置其他源 vim /etc/pacman.conf

1
2
3
4
5
[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

[arch4edu]
Server = https://mirrors.tuna.tsinghua.edu.cn/arch4edu/$arch
1
sudo pacman-key --lsign-key "farseerfc@archlinux.org"; sudo pacman -Syyu; sudo pacman -Sy archlinuxcn-keyring; sudo pacman-key --recv-keys 7931B6D628C8D3BA; sudo pacman-key --finger 7931B6D628C8D3BA; sudo pacman-key --lsign-key 7931B6D628C8D3BA;

kde 常用

1
pacman -S plasma spectacle ark gwenview yakuake python-pyqt6 kdegraphics-thumbnailers ffmpegthumbs kdeconnect konsole dolphin okular kate
1
systemctl enable sddm NetworkManager

gnome常用:

1
pacman -S gdm evince gnome-calculator gnome-console gnome-control-center gnome-remote-desktop gnome-text-editor gnome-weather loupe nautilus xdg-desktop-portal-gnome xdg-user-dirs-gtk gnome-browser-connector power-profiles-daemon gst-plugin-pipewire gst-plugins-good gnome-shell-extension-gsconnect-git deja-dup gnome-tweaks file-roller
1
systemctl enable gdm NetworkManager

其他

1
pacman -S openssh neofetch atuin networkmanager-openvpn microsoft-edge-stable-bin visual-studio-code-bin nextcloud-client fcitx5-im fcitx5-chinese-addons pnpm yarn python-pip python-pipreqs python-scipy python-setuptools python-matplotlib yay wget trash-cli texlive perl-yaml-tiny perl-file-homedir texlive-langchinese clash-premium-bin fuse2 xclip pandoc-bin hexo-cli rsync btrfs-progs sof-firmware plymouth noto-fonts-cjk vim git zsh

其他yay

1
adw-gtk3 zotero-beta-bin gnome-network-displays-git input-leap-inputcapture wechat-universal-bwrap linuxqq hplip-lite wps-office-cn wps-office-fonts freetype2-wps 

不喜欢

1
yr flatpak-kcm discover

mysql

密码设置了 12345678

1
2
3
4
5
6
sudo pacman -S mariadb
sudo mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
sudo systemctl enable --now mysqld
sudo systemctl status mysqld
sudo mysqladmin -u root password "12345678"
echo "mysql -uroot -p12345678"

比如我要设置slurm相关的数据库

1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建slurm单独的mysql用户,只本地访问即可,所以密码12345678就可以
create user 'slurm'@'localhost' identified by '12345678';

# 创建基础数据库
create database slurm_acct_db;

# 允许slurm用户访问
grant all on slurm_acct_db.* TO 'slurm'@'localhost';

# 创建另一个,这个不强制,但是建议,如果不创建,后面slurm配置需要改,所以还是创建吧
create database slurm_job_db;

grant all on slurm_job_db.* TO 'slurm'@'localhost';

配置文件在

1
/etc/my.cnf

NVIDIA显卡

先说环境,注意我用的 linux-lts 而不是 linux,所以安装 nvidia 注意也变成了 nvidia-lts

1
2
3
4
5
6
7
8
9
10
11
12
archlinux-keyring 20230504-1
linux-api-headers 6.3-1
linux-firmware 20230404.2e92a49f-1
linux-firmware-whence 20230404.2e92a49f-1
linux-lts 6.1.30-1
linux-lts-headers 6.1.30-1
util-linux 2.39-3
util-linux-libs 2.39-3

nvidia-lts 1:530.41.03-11
nvidia-settings 530.41.03-1
nvidia-utils 530.41.03-1

还原bugs

我直接运行以下命令,然后 重启

1
yay -S nvidia-lts

重启 以后,输入 nvidia-smi 提示

1
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

其实他的意思就是,现在驱动根本没起作用

正确方法

以下内容全部是看文档解决的,文档在这里,我忽略了显卡是否支持这一步骤,我的显卡 GeForce 1060

  1. 安装驱动

    注意我用的 linux-lts 而不是 linux,所以安装 nvidia 注意也变成了 nvidia-lts

    1
    sudo pacman -S nvidia-lts

  2. 拉黑 kms

    1
    sudo vim /etc/mkinitcpio.conf

    找到这一行

    1
    HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block filesystems fsck)

    删除其中的 kms,防止 initramfs 包含 nouveau 模块

  3. 更新 initramfs

    1
    sudo mkinitcpio -P

  4. 更新xorg配置

    很重要,不然启动黑屏(但是ssh能连接上)

    1
    sudo nvidia-xconfig

  5. 重启

    1
    sudo reboot

其他

如果 pandoc 更新太频繁,不想(或者直接安装 pandoc-bin

1
sudo vim /etc/pacman.conf

修改这一行,如果没有特殊需要,pandoc其实安装 yay pandoc-bin 更好一些

1
IgnorePkg  = pandoc

gnome主题中,qt应用不是黑色、gtk3的老应用太丑

adw-gtk3 可以解决


本文作者:yuhldr
本文地址https://yuhldr.github.io/posts/3513d90f.html
版权声明:转载请注明出处!