在Surface笔记本上安装Arch Linux全过程
2022/2/22 7:23:24
本文主要是介绍在Surface笔记本上安装Arch Linux全过程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
系统安装
安装参考:archlinuxcn.org
设置网络
这里以WIFI举例,主要使用iwctl进行配置,记住这个命令就行
有线的更简单,直接就是有网的
其他网络配置参见archlinuxcn
(通过rfkill list
查看网卡是否被禁用,如果被禁用,输入rfkill unblock wifi
取消禁用WIFI设备)
输入ip link
,如果看到<..., LOWER_UP>
字样(后面的红字DOWN不用管,连上WIFI后会变成绿色的UP)说明系统已经启用了网络接口,如果被禁用,输入ip link set [interface] up
,其中[interface]
是你的接口名,比如wlan0
。
通过iwctl
配置WIFI,下面的[WIFI]
改成你的WIFI名
# 列出设备 device list # 扫描WIFI station wlan0 scan # 列出WIFI网络 station wlan0 get-networks # 连接WIFI station wlan0 connect [WIFI] # 接着输入密码 # 查看状态,显示connected device wlan0 show # 输入help查看帮助,输入exit退出
这时候再输入ip link
就会有一个绿色的UP
了。
最好再ping
一下以防万一。
ping -c 3 archlinux.org
更新系统时间
使用 timedatectl(1) 确保系统时间是准确的:
timedatectl set-ntp true
可以使用 timedatectl status
检查服务状态。
更换源
# 自动配置 在国内的 最新的(最多)20个 按速度排序 协议为HTTPS的源 保存到/etc/pacman.d/mirrorlist中 reflector --country China --latest 20 --sort rate --protocol https --save /etc/pacman.d/mirrorlist # 这个文件会被写入新系统中,还请仔细检查 cat /etc/pacman.d/mirrorlist # 同步仓库 pacman -Syy
硬盘分区
这里仅展示最简单的硬盘分区(一个UEFI引导分区,一个Linux System分区还有一个swap交换分区),还请以实际情况为准
输入lsblk
或fdisk -l
显示磁盘及分区,找到你要分区的盘符,输入gdisk /dev/nvme0n1
或fdisk /dev/nvme0n1
(更加推荐cfdisk /dev/nvme0n1
,可视化操作界面)开始分区。
知道要分哪些区,分多大,什么格式,原理都是相通的,只是命令不一样罢了。这里以gdisk
为例:
o # 新建GPT分区表(清空原来所有的分区) n # 两次回车 +512M ef00 # EFI n # 两次回车 +228.9G # 回车,默认Linux filesystem n #三次回车(把磁盘剩余空间分完) 8200 # swap分区 p # 打印检查 w # 写入 Y # 保存退出
分区格式化
# 根分区 ext4 mkfs.ext4 /dev/nvme0n1p2 # 交换分区 swap mkswap /dev/nvme0n1p3 # 引导分区 fat32 mkfs.fat -F 32 /dev/nvme0n1p1
挂载分区
# 一定要先挂载根分区 mount /dev/nvme0n1p2 /mnt # boot还不存在,需要先创建,也可以是/mnt/efi或者/mnt/boot/efi mkdir -p /mnt/boot mount /dev/nvme0n1p1 /mnt/boot/efi swapon /dev/nvme0n1p3 # 检查一下分区大小,格式,挂载点 lsblk -f
注意: 挂载分区一定要遵循顺序,先挂载根(root)分区(到 /mnt
),再挂载引导(boot)分区(到 /mnt/boot
或 /mnt/efi
,如果单独分出来了的话),最后再挂载其他分区。否则您可能遇到安装完成后无法启动系统的问题。
安装内核
pacstrap /mnt base linux linux-firmware vim # 这时候/mnt目录里就会有很多文件夹了 # 后面需要配置很多文件,最好下个vim
配置系统
用以下命令生成 fstab 文件 (用 -U
或 -L
选项设置UUID 或卷标):
# 写入分区挂载顺序、挂载点等信息 genfstab -U /mnt >> /mnt/etc/fstab
强烈建议在执行完以上命令后,后检查一下生成的 /mnt/etc/fstab
文件是否正确。
切换root
Change root 到新安装的系统,这时候就相当于我们登陆到了这个系统里面:
arch-chroot /mnt
Root 密码
设置 Root 密码,不然到时候登不进去:
passwd
设置时区
要设置时区:
# ln -sf /usr/share/zoneinfo/Region(地区名)/City(城市名) /etc/localtime
提示: 以要设置为上海时区为例,请运行 # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
然后运行 hwclock(8) 以生成 /etc/adjtime
:
hwclock --systohc
这个命令假定已设置硬件时间为 UTC 时间。详细信息请查看 System time#Time standard。
本地化
程序和库如果需要本地化文本,都依赖 Locale,后者明确规定了地域、货币、时区日期的格式、字符排列方式和其他本地化标准。
需在这两个文件设置:locale.gen
与 locale.conf
。
编辑 /etc/locale.gen
,然后取消掉 en_US.UTF-8 UTF-8
和 zh_CN.UTF-8 UTF-8
前的注释。
接着执行 locale-gen
以生成 locale 信息:
locale-gen
然后创建 locale.conf(5) 文件,并 编辑设定 LANG 变量,比如:
# /etc/locale.conf LANG=en_US.UTF-8 # LANG=zh_CN.UTF-8 # 如果想用中文的话(不推荐中文)
这两个配置文件中的内容必须一致,否则会出现错误!
网络配置
创建 hostname 文件(会显示在命令提示符前面那一串里面,比如[root@hostname ~]
):
# /etc/hostname myhostname
添加对应的信息到 hosts(5):
# /etc/hosts 127.0.0.1 localhost ::1 localhost 127.0.1.1 [myhostname].localdomain [myhostname] # 主机名.本地域名 主机名
如果系统有常设的 IP 地址,请使用这个常设的 IP 地址而不是 127.0.1.1
。
请注意,目前的 base 不含有任何网络管理工具。对于新安装的系统环境,请接着完成网络配置,配置过程中可能包括要安装合适的网络管理软件。
pacman -S networkmanager # 后面用来设置网络
安装引导程序
需要安装 Linux 引导加载程序,才能在安装后启动系统,可以使用的的引导程序已在 启动加载器 中列出,请选择一个安装并配置它,GRUB (简体中文) 是最常见的选择。
如果有 Intel 或 AMD 的 CPU,请另外启用 微码 更新。
警告: 这是安装的最后但也至关重要的一步,请按上述指引正确安装好引导加载程序后再重新启动。否则将无法正常进入系统。
代码如下:
pacman -S grub efibootmgr intel-ucode grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="Arch Linux" vim /etc/default/grub # 看自己喜好修改一些参数(可选) grub-mkconfig -o /boot/grub/grub.cfg # 生成GRUB配置文件;自动发现微代码并自动更新GRUB systemctl enable NetworkManager exit
重启
输入 exit
或按 Ctrl+d
退出 chroot 环境。
可选用 umount -R /mnt
手动卸载被挂载的分区:这有助于发现任何「繁忙」的分区,并通过 fuser(1) 查找原因。(比如在/mnt
目录里卸载自己)
最后,通过执行 reboot
重启系统,systemd 将自动卸载仍然挂载的任何分区。不要忘记移除安装介质,然后使用 root 帐户登录到新系统。
cd / # 不要在/mnt里umount /mnt! umount -R /mnt reboot
系统完善
系统管理引导,图形用户界面的安装、声音管理、触摸板支持等后期工作参见 General recommendations (简体中文)。
感兴趣的各类程序,请参见 List of applications (简体中文)。
连接网络
以WIFI为例:
nmtui # 进入NetworkManager # 选activate a connection # 然后输入密码就行
更新时间
# 同步时间(需要网络) timedatectl set-ntp true # 确认一下时间对不对 timedatectl status
更新源
# 如果没有换过源的话 pacman -S reflector reflector --country China --latest 20 --sort rate --protocol https --save /etc/pacman.d/mirrorlist # 检查内容无误 cat /etc/pacman.d/mirrorlist # 添加第三方源 vim /etc/pacman.conf # 添加如下内容: # 不要加SigLevel,我们使用默认的等级;下面三个随便选一个 [archlinuxcn] Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch # Server = http://repo.archlinuxcn.org/$arch # Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch # 推荐写法-Syyu或-Syu或-S,不要使用-Syy或-Sy,即有y一定要有u pacman -Syyu # 可能会出现签名错误 pacman -S 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 # 再重新试一次 pacman -S archlinuxcn-keyring
参考:https://www.archlinuxcn.org/gnupg-2-1-and-the-pacman-keyring/
添加用户
useradd --create-home shang passwd shang usermod -aG wheel,users,storage,power,lp,adm,optical shang id shang # 添加必要的系统工具 pacman -S sudo # 配置默认编辑器,这个只是临时的 export EDITOR=vim visudo # 找到 %wheel ALL=(ALL:ALL) ALL 这一行取消注释,保存退出
显卡驱动
AMD显卡
pacman -S xf86-video-amdgpu xf86-video-ati mesa vulkan-radeon
Intel显卡
pacman -S xf86-video-intel vulkan-intel mesa
英伟达显卡
pacman -S nvidia nvidia-settings nvidia-utils
音频驱动
pacman -S alsa-utils pulseaudio pulseaudio-bluetooth
打印机驱动
pacman -S cups
触摸板驱动
# pacman -S xf86-input-synaptics # 上面这个包已经停止维护,Arch Linux官方推荐使用下面这个 pacman -S xf86-input-libinput libinput-gestures
蓝牙驱动
pacman -S bluez bluez-utils systemd enable bluetooth.service systemd start bluetooth.service
触摸屏驱动
以下是Surface解决方案,参考于linux-surface
添加签名密钥
curl -s https://gitee.com/SamLukeYes/linux-surface/raw/master/pkg/keys/surface.asc | sudo pacman-key --add - pacman-key --finger 56C464BAAC421453 pacman-key --lsign-key 56C464BAAC421453
将下面的内容添加到/etc/pacman.conf
文件的末尾。
[linux-surface] Server = https://pkg.surfacelinux.com/arch/
下面开始安装:
pacman -Syu pacman -S linux-surface linux-surface-headers iptsd # 自启动 systemctl enable iptsd
如果你用的是Surface Pro 4, 5, 6, Book 1, 2, Laptop 1, 2
,你还需要安装一个用于驱动WIFI的包
pacman -S linux-firmware-marvell
重启即可,使用screenfetch
查看效果
pacman -S screenfetch screenfetch # 此时会看到右边Kernel含有surface字样说明驱动安装成功,可以使用触屏功能了 # Kernel: x86_64 Linux 5.16.10-arch1-1-surface
安装图形环境
# 建议先安装显卡驱动 pacman -S xorg
安装字体
# 英文字体 pacman -S ttf-dejavu ttf-droid ttf-hack ttf-font-awesome oft-font-awesome ttf-liberation ttf-linux-libertine ttf-opensans ttf-roboto ttf-ubuntu-font-family # 中文字体 pacman -S ttf-hannom noto-fonts noto-fonts-extra noto-fonts-emoji noto-fonts-cjk adobe-source-code-pro-fonts adobe-source-sans-fonts adobe-source-serif-fonts adobe-source-han-sans-cn-fonts adobe-source-han-sans-hk-fonts adobe-source-han-sans-tw-fonts adobe-source-han-serif-cn-fonts wqy-zenhei wqy-microhei # 使用FreeType2引擎渲染字体 vim /etc/profile.d/freetype2.sh # 取消注释最后一行,保存退出
清除缓存
pacman -Scc reboot
安装AUR助手
推荐安装paru
,打开终端,输入以下命令:
sudo pacman -S git base-devel git clone https://aur.archlinux.org/paru.git cd paru makepkg -si
更多使用教程:https://zhuanlan.zhihu.com/p/350920414
安装配置aria2
加速下载Github文件
sudo pacman -S aria2 sudo vi /etc/pacman.conf # 找到XferCommand这一行,添加如下内容: XferCommand = /usr/bin/aria2c --allow-overwrite=true --continue=true --file-allocation=none --log-level=error --max-tries=2 --max-connection-per-server=2 --max-file-not-found=5 --min-split-size=5M --no-conf --remote-time=true --summary-interval=60 --timeout=5 --dir=/ --out %o %u
安装配置fish
sudo pacman -S fish # 将下面这句命令加到~/.bashrc文件最后 # 注意,使用chsh -s /bin/fish是存在问题的,推荐下面的做法 [ -s /bin/fish ] && [ -z "$BASH_EXECUTION_STRING" ] && [[ $(ps --no-header --pid=$PPID --format=cmd) != "fish" ]] && exec fish
系统美化-Gnome
安装桌面环境
以GNOME为例:
pacman -S gnome gnome-extra gdm systemctl enable gdm.service
添加输入法
安装命令:
sudo pacman -S fcitx5-im fcitx5-chinese-addons # 直接回车
添加环境变量:
欲在程序中正常启用 Fcitx5
, 需设置以下环境变量,并重新登录:
vim ~/.pam_environment GTK_IM_MODULE DEFAULT=fcitx QT_IM_MODULE DEFAULT=fcitx XMODIFIERS DEFAULT=\@im=fcitx INPUT_METHOD DEFAULT=fcitx SDL_IM_MODULE DEFAULT=fcitx GLFW_IM_MODULE DEFAULT=ibus
添加词库:
用{}括起有相同前缀的两个包,下面的包相当于:fcitx5-pinyin-zhwiki, fcitx5-pinyin-moegirl
sudo pacman -S fcitx5-pinyin-{zhwiki,moegirl}
安装完成即可使用,另外建议启用云拼音,来源选Baidu。
外观设置:
sudo pacman -S fcitx5-material-color # 类似win10内置输入法风格
然后前往 Fcitx5设置
-> 配置附加组件
-> 经典用户界面
-> 主题
设置主题Material-Color-Teal
。
高分屏设置同样在这个窗口上:Use Per Screen DPI
。
重启即可使用。
其他:
参考:更多Fcitx5输入法
安装Gnome桌面扩展
# 进入Gnome扩展网站:https://extensions.gnome.org # 点击安装浏览器插件 # 然后安装connector git clone https://aur.archlinux.org/chrome-gnome-shell.git cd chrome-gnome-shell makepkg -si # 之后便可在上述网站搜索安装所需插件
推荐的Gnome插件:
- ArcMenu 集成的应用程序菜单
- Blur my Shell 美化界面
- Dash to Dock 增强型Dock
- Just Perfection 控制面板的隐藏和显示
- Vitals 实时显示计算机硬件信息
Gnome的卸载
sudo systemctl disable gdm.service sudo pacman -Rscn gnome gnome-extra gdm
系统美化-DWM
DWM是一个键盘驱动的窗口管理器,它的宗旨是尽可能地用键盘来代替鼠标的功能。
下载安装
# 依赖环境 # sudo pacman -S xorg xorg-server xorg-xinit # 下载源码 git clone https://git.suckless.org/dwm git clone https://git.suckless.org/st git clone https://git.suckless.org/dmenu
修改快捷键
默认的主修饰键是Alt,可能会和某些应用程序中的快捷键冲突,所以这里将其修改为Super键
进入下载的dwm
的源代码文件夹,编辑config.def.h
找到 #define MODKEY Mod1Mask
中的Mod1Mask
(即Alt
键)替换为Mod4Mask
(即Super
键)。
编译安装
cd dwm sudo make clean install cd ../st sudo make clean install cd ../dmenu sudo make clean install
安装一些工具
sudo pacman -S xorg-xinit feh udisks2 udiskie pcmanfm archlinux-wallpaper
编辑启动脚本
在启动dwm前进行一些个性化的设置
cp /etc/X11/xinit/xinitrc ~/.xinitrc vim ~/.xinitrc # 删除最后几行,从twm &开始 # 最后添加以下内容 # Input method fcitx5 & # Resolution xrandr --output eDP1 --mode 2736x1824 --rate 59.96 # Wallpaper feh --bg-fill --randomize /usr/share/backgrounds/archlinux/* # execute dwm exec dwm # 保存退出
进入dwm
startx
自动识别U盘
sudo systemctl enable udisks2
更多软件
其中的
yay
可以换成paru
办公软件(WPS)
yay -S ttf-wps-fonts wps-office wps-office-mui-zh-cn wps-office-mime-cn ttf-ms-fonts cups
最后的话
人生苦短,我用Manjaro!
这篇关于在Surface笔记本上安装Arch Linux全过程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-18git仓库有更新,jenkins 自动触发拉代码怎么配置的?-icode9专业技术文章分享
- 2024-12-18Jenkins webhook 方式怎么配置指定的分支?-icode9专业技术文章分享
- 2024-12-13Linux C++项目实战入门教程
- 2024-12-13Linux C++编程项目实战入门教程
- 2024-12-11Linux部署Scrapy教程:新手入门指南
- 2024-12-11怎么将在本地创建的 Maven 仓库迁移到 Linux 服务器上?-icode9专业技术文章分享
- 2024-12-10Linux常用命令
- 2024-12-06谁看谁服! Linux 创始人对于进程和线程的理解是…
- 2024-12-04操作系统教程:新手入门及初级技巧详解
- 2024-12-04操作系统入门:新手必学指南