ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

在Surface笔记本上安装Arch Linux全过程

2022-02-22 06:00:21  阅读:524  来源: 互联网

标签:-- 安装 pacman sudo mnt Surface etc Linux Arch


系统安装

安装参考: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交换分区),还请以实际情况为准

输入lsblkfdisk -l显示磁盘及分区,找到你要分区的盘符,输入gdisk /dev/nvme0n1fdisk /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.genlocale.conf

编辑 /etc/locale.gen,然后取消掉 en_US.UTF-8 UTF-8zh_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插件:

  1. ArcMenu 集成的应用程序菜单
  2. Blur my Shell 美化界面
  3. Dash to Dock 增强型Dock
  4. Just Perfection 控制面板的隐藏和显示
  5. 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!

标签:--,安装,pacman,sudo,mnt,Surface,etc,Linux,Arch
来源: https://www.cnblogs.com/juzaizai/p/15921418.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有