Arch Linux&Linux引导教程 2021.7.22

Arch Linux配置&Linux使用教程

文章目录

1.简介

​ 本配置教程根据个人安装经验整合编写,用来帮助想要入门Arch Linux的用户快速上手Arch Linux的配置过程并尽快的掌握一些可能算是必须的相关知识点以及技能并了解部分的操作系统运行原理,包含从 arch linux 安装,KDE 桌面环境安装,到 Linux 显卡驱动,常用软件,日常维护以及部分Linux相关知识,部分内容存在个人主观观点,此外,此文档参考并引用了部分网络上的现有教程代码以及当前的Arch Wiki内容(更新于2021年5月12日),完整版github更新地址(暂时使用此地址):https://stvsl.github.io

2.安装前的准备——镜像烧录

2.1 原Windows用户

​ 原windows用户推荐使用rufus软件进行Arch镜像的烧录,官网:https://rufus.ie/zh_CN.html

​ 注:当前最新版不会提醒你是否使用dd模式写入镜像,但较老的版本可能存在这种情况,若出现该类提示时选择以dd模式写入,否则烧录完的镜像无法正 常使用!

2.2 原Linux用户

​ 原Linux用户可使用Balena Etcher进行Arch镜像的烧录,亦可使用指令进行烧录操作,操作指令为

sudo dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress oflag=sync

​ 命令解释:

提权指令 调用dd命令 设置文件输入输出块大小为4M 指定镜像目录 指定烧录设备地址 输出刻录过程总的信息 保证数据真正写入了U盘

​ 虚拟机用户请忽略

2.3 使用ventory实现烧录

​ ventory使用了一种显得十分高端大气上档次的方法实现镜像的功能,在windows上,你可以下载ventory并使用它,然后将arch的镜像拖进U盘的文件夹内即可,linux同理,具体使用方式省略(如果你原来都用linux的话这个应该能够应付的过来吧)

3.进入安装环境前的准备

3.1 原windows用户

​ 以下内容虚拟机用户请忽略

​ 3.1.1在BIOS中关闭Secure Boot功能

​ Secure Boot用来限制主板的启动,它会禁止主板从未经认证的操作系统或硬件驱动程序的加载,以此来防止恶意软件的入侵,但因为这种特性,导致了操作系统的垄断(即若想启动一个系统则该主板上必须要有对应的公钥),如果想要启动非Windows系统则很可能需要关闭主板上的该功能

​ 3.1.2调整启动方式为UEFI

​ 在某些旧的主板里,需要调整启动模式为 UEFI,而非传统的 BIOS/CSM。在类似名为 boot 的选项卡中,找到类似名为 Boot Mode 的选项,确保将其调整为UEFI,而非 legacy/CSM

​ 3.1.3关闭windows的快速启动功能

​ 快速启动是 Windows 8 (及更新的版本) 中的一项功能,通过休眠来提高启动速度.但是如果你休眠 Windows 然后进入另一个系统修改文件,可能会造成数据丢失.即使你不打算在双系统中共享文件,这也容易损坏 EFI 系统分区.因此你应该在安装前禁用快速启动

​ 3.3.4 确定硬盘分配(想双系统的用户注意!!!)

​ 由于安装需要使用一部分磁盘空间(整个分区),因此,你需要查看你的设备分区状态,准备好一整块的分区便于以后使用(当前部分电脑是单C盘使用,因此需要考虑拆分分区的操作,一般情况下借助windows自带的计算机管理中的磁盘管理就可以轻松的执行该步骤)

​ 3.3.5 windows to go原用户

​ 由于windows to go的特殊性,你只需要执行3.1.1,3.1.2两个部分,随后就可以按照linux的方案走了,但要注意,安装时,建议将windows to go硬盘拔掉,以防止后面发生错误格式化等不期望的的事情发生

3.2 原Linux用户

​ 如果是的话应该可以直接跳过该环节了~~

3.3 不管你是什么用户

​ 想要从U盘启动的方式主要有两种,从启动选项菜单中选择(临时)或直接修改BIOS的设置(永久),部分电脑为默认优先从U盘启动

​ 虚拟机用户请忽略。。。

4.开始安装过程

​ 此时你应该进入了arch的安装环境了,选择第一项或第二项均可(第二项会在环境准备就绪时说一段话),请注意,在一些场合下,你可以使用TAB键实现命令的自动补全,以此来减少打字次数节省时间并降低错误率,此外,安装环境默认的文本编辑器为VIM,需掌握VIM的基本操作,以下为需要掌握的VIM的操作示例:

功能 操作方式
剪切 非编辑模式下连续输入2次d
粘贴 非编辑模式下输入1次p
进入编辑模式 输入i
退出编辑模式 按下ESC键
顺向查找 非编辑模式下输入 / 后加上需要查找的文本内容后回车
反向查找 非编辑模式下输入 ? 后加上需要查找的文本内容后回车
保存并退出 输入:wq后回车
不保存直接退出 输入:q!后回车
回到第一行 非编辑模式下连按2次g
跳转到文末 非编辑模式下按下shift和g

然后让我们开始安装流程

4.1 确认当前的引导模式为UEFI
ls /sys/firmware/efi/efivars

​ 若执行后有输出内容即当前为UEFI模式,若没有该输出请尝试重新执行3.1.2的内容

4.2 连接网络

​ 若你是使用有线连接网络,你可以跳过该步骤,进行4.3的内容,若你是无线连接,请利用以下指令进行网络连接

iwctl                           #进入交互式命令行
device list                     #列出设备名,比如无线网卡看到叫 wlan0
station wlan0 scan              #扫描网络
station wlan0 get-networks      #列出网络 比如想连接CMCC-5AQ7这个无线
station wlan0 connect wlanNAME  #进行连接 输入密码即可
exit                            #成功后exit退出
#一般情况下,你可以直接执行iwctl和station wlan0 connect wlanNAME即可连接,输入exit退出即可
4.3 确认网络连接状态

​ 直接使用ping命令用于测试即可,

ping www.bilibili.com

​ 有返回类似64 比特,来自 ecs-119-3-234-165.compute.hwclouds-dns.com (119.3.234.165): icmp_seq=4 ttl=42 时间=24.6 毫秒的内容即代表网络连接正常,按下Ctrl + c 终止ping命令即可,如果无法连接,使用 ip link set xxx up 命令确认你已经激活了对应的网卡,再重新执行ping命令,若有类似Operation not possible due to RF-kill的报错,继续尝试rfkill unblock wifi来解锁无线网卡

4.4 禁用reflector

​ reflector 服务用于自动更新 mirrorlist,但在特定情况下,它可能会误删源信息,导致在国内无法访问软件源,这将强迫你再次手动修改源配置文件

systemctl stop reflector.service
4.5 进行时间同步
timedatectl set-ntp true    #将系统时间与网络时间进行同步
timedatectl status          #检查服务状态

​ 若有类似以下返回即代表时间服务正常

               Local time: 二 2021-03-23 22:22:41 CST
           Universal time: 二 2021-03-23 14:22:41 UTC
                 RTC time: 二 2021-03-23 14:22:41    
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes                       
              NTP service: active                    
          RTC in local TZ: no      
4.6 更换国内镜像源
vim /etc/pacman.d/mirrorlist

​ 执行完毕后你会进入VIM编辑器,在里面利用查找功能快速定位到china部分,选择你想使用的源将其剪切粘贴到所有的镜像源的最前面(此文件中的链接是世界各地的源,pacman会按照该源内的顺序从上而下的尝试直到该源可用,更多相关信息可以自行阅读该文件内的注释部分)

4.7 分区
4.7.1 打算换到纯Arch的用户或拥有专门的硬盘安装Arch的用户以及windows to go用户

​ 因为分区需求每个人都可能不同,因此给出以下下部分Linux目录表以便于你自行定义

目录 说明 是否推荐独立分区 推荐大小 标签 备注(独立分区的好处是能在系统崩溃时保证某一部分的正常,缺点是ext4格式无法后期修改大小,而若不使用ext4格式可能会出现兼容问题)
EFI 开机引导目录 推荐 800MB EFI System 请将该分区作为第一个分区,以防不兼容的问题发生,
/ 根目录 没得选,必须是 100G linux file system 防治所以文件的地方,是最底层的目录,若你不打算将home独立分区,那么跟目录就是越大越好
swap 交换分区,将部分内存数据保存到硬盘上 4~8G linux swap swap为可有可无的分区,推荐开启,否则可能在运行部分软件时出现异常或因内存不足出现异常,或无法使用系统休眠功能
home 家目录 越大越好 linux home 存放你的个人数据的地方,独立分区可以保证以后系统崩溃时不会损坏你的个人文件
opt 第三方软件安装目录 80G linux file system 大小取决于你想要安装的软件的大小,可视情况而定,若你将此独立分区,你就可以将/的大小适当减小
tmp 存放临时文件目录 8G linux file system 部分软件因为会产生大量的垃圾文件可能会导致占用大量根目录空间,若此类情况发生可考虑将其独立分区
usr 应用程序放置目录 80G linux /usr x86-64 大小取决于你想要安装的软件的大小,可视情况而定,若你将此独立分区,你就可以将/的大小适当减小

linux的部分设备命名规则

​ 在linux系统中,你的所有设备都将以文件的形式放在/dev文件夹中,在不同的场景下通过挂载相应设备来使用它们,以硬盘为例,你的硬盘会以adx或nvmexnx的文件形式存在,下表为命名规则(以下内容均会使用sdax来演示)

adx类 nvmexnx类
硬盘命名规则 SCSI/SATA/U盘会以adx的形式存在,x表示从a到p的字母,通过排序表示设备,如一个U盘的文件为sdb nvme设备会以nvmexnx的形式存储,第一个x表示插槽命名空间,第二个x表示位置,如某个硬盘为nvme0n1
分区命名规则 adx的分区命名规则为在后面加一个数字,如某设备的第一个分区为sda1 nvmexnx的分区命名规则为在后面添加px(x为数字),如某设备的第一个分区为nvme0n1p1

在执行lsblk时,你将会看到类似如下的返回信息:

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 547.9M 1 loop /var/xdroid/common/rootfs sda 8:0 0 111.8G 0 disk └─sda1 8:1 0 111.8G 0 part /run/timeshift/backup nvme1n1 259:0 0 476.9G 0 disk ├─nvme1n1p1 259:2 0 260M 0 part ├─nvme1n1p2 259:3 0 16M 0 part ├─nvme1n1p3 259:4 0 457.9G 0 part /run/media/stvsl/OS ├─nvme1n1p4 259:5 0 1.3G 0 part └─nvme1n1p5 259:6 0 17.5G 0 part nvme0n1 259:1 0 465.8G 0 disk ├─nvme0n1p1 259:7 0 800M 0 part ├─nvme0n1p2 259:8 0 8G 0 part [SWAP] └─nvme0n1p3 259:9 0 457G 0 part /

4.7.2 Windows与Linux双系统用户

​ 原windows用户请注意!不要执行parted相关的命令!!!这可能会损坏你的windows系统!!!

​ 原windows用户请注意!不要执行parted相关的命令!!!这可能会损坏你的windows系统!!!

​ 原windows用户请注意!不要执行parted相关的命令!!!这可能会损坏你的windows系统!!!

​ 重要的事情说三遍!!!

​ 此外,你可能需要额外另建一个EFI分区(尽管原来已经有了)用来引导双系统

4.7.3 虚拟机用户

​ 虚拟机请随意,与4.7.1基本一致

4.7.4 分区操作命令使用方法演示

​ (以cfdisk为例,当然,你也可以使用fdisk,gdisk等工具)

lsblk                       #显示分区情况,这会显示你当前的硬盘设备的基本信息,你可以根据size的大小大致判断是你的哪一块硬盘
parted /dev/sdx             #执行parted,进行磁盘类型变更
(parted)mktable
New disk label type? gpt    #输入gpt 将磁盘类型转换为gpt 如磁盘有数据会警告,输入yes即可
quit                        #最后quit退出parted命令行交互
cfdisk  /dev/sdx            #执行分区操作,分配各个分区大小,类型
#请注意,该步骤需要选择Linux分区类型标签(type),标签按照对应分区类型选择
fdisk -l                    #复查磁盘情况
4.8 格式化新分区

​ 以下仅为部分命令,其它分区命令与之类似

#磁盘原来若有数据会返回 'proceed any way?' 输入y回车即可
mkfs.ext4  /dev/sdax            #格式化根目录,home目录等分区,当然,你也可以使用其他的分区格式,但这可能导致未知异常的发生!!!
mkfs.vfat  /dev/sdax            #格式化efi分区
mkswap -f /dev/sdax             #格式化swap分区
swapon /dev/sdax                #打开swap分区

​ 注意:双系统用户仅需要格式化新的几个分区,其它的原有分区不要操作!!!

4.9 挂载分区

​ 注意!!!挂载时为保证目录树正常,请从根目录/mnt开始挂载

#挂载根目录
mount /dev/sdax  /mnt
#挂载efi文件目录
mkdir /mnt/efi
mount /dev/sdax /mnt/efi
#挂载其它目录(以home目录为例,其它目录亦同)
mkdir /mnt/home
mount /dev/sdax /mnt/home
4.10 安装系统
4.10.1 基础包安装
pacstrap /mnt base linux linux-firmware

​ 若你想要使用AUR或使用系统的一些基础工具的话请额外安装 base-devel !!!即 pacstrap /mnt base base-devel linux linux-firmware ,不安装可能会极大的降低你的使用体验!!!

4.10.2 功能性包安装
pacstrap /mnt dhcpcd iwd vim sudo bash-completion   
#dhcped用于获取动态IP地址 iwd用于无线网络连接 vim为文本编辑器  sudo为必备提权工具 bash-completion是命令补全工具,若你不喜欢vim,换成nano也可以
4.11 生成fstab文件

​ fstab是用于存放文件系统的静态信息,位于/etc/目录下,当系统启动的时候,系统会从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录,以下为自动生成命令

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

​ 复查fstab以防有误

cat /mnt/etc/fstab

​ 若异常你可以尝试再次执行生成命令,或手动修改fstab

4.12 切换环境到新系统内
arch-chroot /mnt
4.13 设置主机名(local hosts)

​ 此步骤可以先行跳过,不进行也可以,若后期出现进入桌面且联网后无法正常打开任何软件时回过头来执行即可(但那样你需要在命令前加上sudo)

​ 首先在/etc/hostname设置主机名

vim /etc/hostname #若你使用的是nano则将vim换成nano

​ 向文件中写入你将要使用的用户名后保存退出

​ 随后修改/etc/hosts

vim /etc/hosts #若你使用的是nano则将vim换成nano

​ 向文件中输入以下内容

127.0.0.1    localhost
::1          localhost
127.0.1.1    your.localdomain 
yourname
4.14 设置时区与同步硬件时间

​ 国内使用上海,其它地区请按照你的需求修改

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

​ 同步硬件时间

hwclock --systohc
4.15 设置地区信息

​ 此步需修改/etc/locale.gen

vim /etc/locale.gen #若你使用的是nano则将vim换成nano

​ 此步你需要查找并去掉 en_US.UTF-8 以及 zh_CN.UTF-8 两行前面的注释符号#

​ 随后执行以下命令生成locate

locale-gen

​ 然后向/etc/locale.conf输入以下内容(直接执行即可)

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

​ 然后查看该更改是否已生效

vim /etc/locale.conf #若文件内有LANG=en_US.UTF-8即代表已生效
4.16 设置root账户的密码
passwd root
4.17 安装微码

​ 微码用于纠正CPU运行时可能产生的错误以及对部分底层指令引入新特性和优化,安装哪个微码完全取决于你的CPU型号

pacman -S intel-ucode   #Intel CPU安装
pacman -S amd-ucode     #AMD CPU安装
4.18 安装与配置引导程序GRUB
pacman -S grub efibootmgr   #grub是启动引导器,efibootmgr被 grub 脚本用来将启动项写入 NVRAM
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Arch-GRUB #取名为Arch-GRUB 并将grubx64.efi安装到的指定位置
grub-mkconfig -o /boot/grub/grub.cfg #自动生成GRUB配置文件

!!!请注意!!!

windows双系统用户请先安装ntfs-3g使系统支持加载NTFS文件系统的分区,否则GRUB无法识别到WIndows系统!!!(根据linux)

yay -S ntfs-3g

​ 部分主板在4.19执行完毕后可能出现问题,因为其不支持自定义EFI,而导致你无法找到Arch-GRUB的启动选项,此时你需要重新插回U盘执行4.9,4.12,随后执行以下命令

mkdir -p /efi/EFI/BOOT
mv /efi/EFI/GRUB/grubx64.efi /efi/EFI/BOOT/BOOTX64.EFI
4.19 退出安装
exit                # 退回安装环境
umount -R  /mnt     # 卸载分区
reboot              # 重启

5.安装桌面环境和部分系统配置

​ 如果你顺利的进入了一个黑不溜秋的东西里面那么恭喜,你成功了50%了!接下来开始配置剩下的部分

5.1 连接网络

​ 有线连接网络请执行以下命令开启动态IP地址分配

systemctl start dhcpcd

​ 无线连接请额外执行以下命令(4.2的内容)

iwctl                           #进入交互式命令行
device list                     #列出设备名,比如无线网卡看到叫 wlan0
station wlan0 scan              #扫描网络
station wlan0 get-networks      #列出网络 比如想连接CMCC-5AQ7这个无线
station wlan0 connect wlanNAME  #进行连接 输入密码即可
exit                            #成功后exit退出
#一般情况下,你可以直接执行iwctl和station wlan0 connect wlanNAME即可连接,输入exit退出即可

​ 测试网络连接是否正常(4.3的内容)

ping www.bilibili.com
5.2 更新系统
pacman -Syyu 										#有时可能有包的冲突,如果有类似报错且你不怕死的话可以执行 pacman -Syyu
5.3 准备日常使用账户

​ 创建账户

useradd -m -G wheel -s /bin/bash yourname  			#wheel附加组可sudo进行提权 -m同时创建用户家目录,yourname请替换成4.13步骤里面设置的名字!!!

​ 设置密码

passwd yourname 		#yourname请替换成4.13步骤里面设置的名字!!!
5.4 配置sudo
EDITOR=vim visudo 		#若你使用的是nano则将vim换成nano

​ 查找 #%wheel ALL=(ALL) ALL的所在行,去除前面的注释符号#后保存退出即可

5.5 安装KDE桌面环境
pacman -S plasma-meta
5.6 安装终端与文件管理器
pacman -S konsole dolphin 
5.7 开启SDDM服务
systemctl enable sddm
5.8 开启32位源与archlinuxcn源
vim /etc/pacman.conf 	 #若你使用的是nano则将vim换成nano

去掉[multilib]一节中两行的注释,来开启 32 位库支持。
在文档结尾处加入下面的文字,来开启 ArchLinuxCN 源(此处使用中科大的软件源,若你不喜欢或想要换其它源可以自行点击此处查看选择

[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
5.9 刷新pacman数据库
pacman -Syyu
5.10 重启进入桌面环境
reboot

6.进入桌面后的准备

​ 恭喜你成功装好了桌面,接下来让我们配置最后的一点东西吧!

6.1 网络连接

​ 现在已经有桌面环境了,因此我们可以使用KDE的网络管理器而不是使用和dhcped和iwd来连接网络了!

sudo systemctl disable iwd                             #确保iwd开机处于关闭状态,其无线连接会与NetworkManager冲突
sudo systemctl stop iwd                                #同上,立即关闭iwd
sudo systemctl start --now NetworkManager              #开启NetworkManager
sudo systemctl enable --now NetworkManager             
  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值