操作环境:
时间:2023-02-17
电脑型号:联想拯救者R720
cpu:Intel Core i5-7300HQ @ 4x 3.5GHz
gpu:NVIDIA GeForce GTX 1050 Ti
安装系统:
1.下载镜像: 请访问https://archlinux.org/查找镜像站下载最新的安装镜像
2.烧录镜像: 准备一个2G以上的U盘,Windows用户推荐使用Ventoy、Rufus、balenaEtcher刻录;Linux用户推荐使用Ventoy、balenaEtcher或者dd命令刻录
3.安装前准备: 由于archlinux不支持安全启动,请进入bios设置中禁用安全启动或快速启动
4.安装: 将U盘插入电脑,在开机时按下boot menu按键进入boot menu,选择U盘引导并回车(也可以在bios中将U盘启动调整至第一位,保存配置后开机启动)
5.测试网络连通性: 通过u盘启动会被引导至一个使用root身份登陆的虚拟控制台,默认的shell是zsh,可以使用以下命令配置网络,之后使用ping命令测试网络连通性
ip link #查看网卡名称
ip add #查看IP地址
推荐使用网线连接电脑,正常情况下此时就可以直接上网,如果使用无线请使用以下命令:
wpa_supplicant -D wext -B -i wlp3s0(设备名) -c <(wpa_passphrase wifi-name wifi-password)
#注释:
-D wext #使用 wext 驱动网卡
-B #后台运行
-i #是指定设备
-c #是指定配置文件
6.校对时间: 由于下载软件的服务器会验证系统时间,如果时间不正确,可能出现下载失败的情况
timedatectl set-timezone Asia/Shanghai #设置时区为上海
timedatectl status #验证及查看时间
date #查看时间
7.创建硬盘分区: 分区创建可以使用fdisk或cfdisk,其中cfdisk是图形化操作,较为简单。操作前请检查要格式化的硬盘,数据无价
fdisk -l #查看硬盘分区
cfdisk /dev/nvme0n1 #使用cfdisk管理硬盘
fdisk /dev/nvme0n1 #使用fdisk管理硬盘
我个人的分区方案:/dev/nvme0n1p1 #EFI分区,300MB,类型:EFI系统
/dev/nvme0n1p2 #swap分区,4GB,类型:Linux swap
/dev/nvme0n1p3 #根分区,剩下所有空间,类型:Linux LVM
格式化分区:mkfs.fat -F 32 /dev/nvme0n1p1 #格式化EFI分区
mkswap /dev/nvme0n1p2 #格式化交换分区
mkfs.ext4 /dev/nvme0n1p3 #格式化系统分区
挂载分区:swapon /dev/nvme0n1p2 #启动交换分区
mount /dev/nvme0n1p3 /mnt #挂载系统分区
mkdir -p /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi #挂载EFI分区df -hT #检查分区挂载情况
free -h #检查内存情况
8.配置镜像源: 由于archlinux官方网站在国外,国内访问偏慢,建议通过镜像站下载软件包
vim /etc/pacman.d/mirrorlist #编辑配置文件
#以下列出部分镜像源地址,添加一个即可,建议添加至镜像源列表首位
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch #清华大学开源软件镜像站
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch #中国科学技术大学开源镜像站
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch #华为开源镜像站
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch #兰州大学开源镜像站
Server = http://mirrors.aliyun.com/archlinux/$repo/os/$arch #阿里云镜像站pacman -Syy #更新软件包
9.安装基本操作系统及工具:
pacstrap /mnt base base-devel linux linux-headers linux-firmware
pacstrap /mnt base base-devel linux-lts linux-lts-headers linux-firmware #lts为稳定版
#base base-devel linux linux-firmware是系统中最基本的四个包,base-devel在AUR包安装过程中是必须用到的,linux是内核软件包,linux-firmware包括部分驱动
10.创建fstab文件: fstab用来定义磁盘分区,主要用于系统启动时自动挂载分区,是linux重要文件之一。使用genfstab自动根据当前挂载情况生成并写入fstab文件
genfsfab -U /mnt >> /mnt/etc/fstab # efi+gpt使用此命令
-U #使用uuid
-L #使用卷标
genfstab -p /mnt >> /mnt/etc/fstab # bios+mbr使用此命令
11.对系统进行配置: 到此基本系统安装已经完成,接下来是对系统进行更进一步的配置
arch-chroot /mnt #切换根目录
安装软件
pacman -S networkmanager openssh vim git grub efibootmgr intel-ucode man-db man-pages ntfs-3g bash bash-completion sudo net-tools wget tree
#注释
networkmanager #网络管理,建议安装
grub efibootmgr #grub2引导管理,必装;efi+gpt引导的安装grub、efibootmgr;bios+mbr引导的安装grub、efivar
os-prober #双系统必装;os-prober 可以检查其他硬盘上的其他系统引导,如果不安装并启用,可能无法识别其他系统
intel-ucode #cpu微码,必装;intel安装intel-ucode,amd安装amd-ucode
bash bash-completions #终端,必装;如果喜欢使用zsh,可更换为zsh zsh-completions
sudo #提权用,必装systemctl enable NetworkManager设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc #同步硬件时钟本地化
vim /etc/locale.gen
去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的注释符号
#使用命令修改
# sed -i 's/^#en_US.UTF-8/en_US.UTF-8/' /etc/locale.gen
# sed -i 's/^#zh_CN.UTF-8/zh_CN.UTF-8/' /etc/locale.genlocale-gen #更新locale信息创建locale.conf文件,并编辑设定LANG变量
vim /etc/locale.conf
LANG=en_US.UTF-8
#不建议在这里将 en_US.UTF-8 改为 zh_CN.UTF-8 ,这样会导致终端乱码编辑主机名
vim /etc/hostname设置root密码
passwd root创建新用户
useradd -m xiaoyu(用户名)
passwd xiaoyu新用户提权
vim /etc/sudoers
xiaoyu ALL=(ALL:ALL) ALL创建引导
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB #使用efi+gpt引导
# --target=x86_64-efi 目标架构x86架构64位,efi启动方式
# --efi-directory=/boot 是硬盘挂载的/boot位置,将grubx64.efi安装到之前的指定位置(EFI分区)
# --bootloader-id=name 其中name可以更改为自己想要的名称,建议简短明确;可忽略不写
grub-install --target=i386-pc /dev/nvme0n1 #使用bios+mbr引导#grub2默认禁用了os-prober,如果你是双系统或多系统安装,需要手动开启该选项
vim /etc/default/grub
GRUB_DISABLE_OS_PROBER=falsegrub-mkconfig -o /boot/grub/grub.cfg #生成引导配置文件退出重启进入系统
exit
reboot
12.进入系统后的配置(可在上一步的环境中继续操作)
使用xiaoyu账号登陆,不建议使用root
配置中文源
sudo vim /etc/pacman.conf
[multilib] #开启32位仓库
Include = /etc/pacman.d/mirrorlist
[archlinuxcn] #配置中文仓库
Server = https://repo.archlinuxcn.org/$archsudo pacman -Syu haveged
systemctl start haveged
sudo systemctl start haveged
sudo systemctl enable haveged配置密钥环
ls /etc/pacman.d/gnupg/
sudo pacman -S archlinuxcn-keyring archlinux-keyring
sudo rm -rf /etc/pacman.d/gnupg/
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --populate archlinuxcn安装声卡驱动
sudo pacman -Syu
sudo pacman -S alsa-utils pulseaudio pulseaudio-alsa安装蓝牙驱动
sudo pacman -S bluez bluez-utils pulseaudio-bluetooth pavucontrol
sudo systemctl enable bluetooth
sudo systemctl start bluetooth
sudo vim /etc/pulse/system.pa
load-module module-bluetooth-policy
load-module module-bluetooth-discover安装触摸板驱动
sudo pacman -S xf86-input-synaptics安装paru和yay
sudo pacman -S paru
sudo pacman -S yay安装kde桌面
sudo pacman -S plasma-meta konsole dolphin ark okular gwenview kate spectacle packagekit-qt5 appstream-qt appstream kcalc kamoso
#plasma-meta plasma-meta元数据包
#konsole 终端
#dolphin 文件管理器
#ark 解压工具
#okular 文档查看器
#gwenview 图片查看器
#kate 文本编辑器
#spectacle 截屏工具
#packagekit-qt5 appstream-qt appstream 软件管理中心
#kcalc 科学计算器
#kamoso 相机#sudo pacman -S plasma kde-applications可以安装kde的所有组件,但是略臃肿,不建议sudo pacman -S sddm #桌面管理器
sudo systemctl enable sddm
sudo systemctl start sddm安装字体
sudo pacman -S ttf-dejavu wqy-microhei wqy-microhei-lite noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra adobe-source-han-serif-cn-fonts adobe-source-han-sans-cn-fonts wqy-zenhei wqy-bitmapfont ttf-arphic-ukai
yay -S ttf-fira-code安装及配置中文输入法
sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-material-color
yay -S fcitx5-input-support
词库
sudo pacman -S fcitx5-pinyin-zhwiki fcitx5-pinyin-moegirl fcitx5-pinyin-moegirl-rime rime-pinyin-zhwiki配置中文输入法
sudo vim /etc/environment
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus安装显卡驱动
sudo pacman -S xf86-video-intel #intel显卡驱动
yay -S nvidia-dkms #nvidia显卡驱动
sudo pacman -S nvidia-settings #nvidia设置
yay -S optimus-manager optimus-manager-qt #双显卡切换工具
sudo systemctl enable optimus-manager
sudo systemctl start optimus-manager
#测试nvidia显卡是否运行
nvidia-smikde桌面中文化
打开:System Settings --> Regional Settings--> Language -->Add Languages # 添加中文并拖到第一行
#vim .xprofile
#export LANG=zh_CN.UTF-8
#export LC_ALL=zh_CN.UTF-8固态硬盘优化
sudo systemctl enable fstrim.timer #添加开机自启动,通过Trim 来优化SSD
sudo systemctl start fstrim.service #启动服务电池优化
yay -S tlp tlp-rdw tlpui #安装电源管理及图形界面
sudo vim /etc/tlp.conf #编辑配置文件,防止Btrfs文件系统损坏
SATA_LINKPWR_ON_BAT=max_performance
sudo systemctl enable tlp.service #设置tlp服务开机自启动
sudo systemctl enable NetworkManager-dispatcher.service #设置开机自启动
sudo syatemctl mask systemd-rfkill.service #屏蔽服务,防止冲突
sudo syatemctl mask systemd-rfkill.socket #屏蔽,防止冲突
sudo tlp start #启动服务安装cpu调频工具
sudo pacman -S cpupower #安装调频管理工具,调节频率
sudo pacman -S i7z # 安装i7CPU监视工具,监视频率
sudo pacman -S thermald #安装CPU温度守护进程工具,监视温度
systemctl enable cpupower.service #设置开机自启动服务安装浏览器
sudo pacman -S firefox #火狐浏览器
yay -S microsoft-edge-dev-bin #edge浏览器安装dock栏
sudo pacman -S latte-dock安装neofetch
sudo pacman -S neofetch
sudo vim .bashrc
neofetch安装常用软件
yay -S linuxqq #linux版QQ
yay -S com.qq.weixin.deepin #第三方微信
yay -S wps-office-cn ttf-wps-fonts wps-office-mui-zh-cn #wps
sudo pacman -S xarchiver #压缩解压缩工具,支持密码
yay -S listen1-desktop-appimage #listen1音乐聚合平台
yay -S foxitreader #福昕PDF编辑器
yay -S vlc #vlc视频播放器
yay -S obs-studio #obs
yay -S baidunetdisk-electron #百度网盘
yay -S qbittorrent-qt5 #磁力下载,tracker源需要自己配置
yay -S steam #steam游戏平台
sudo pacman -S lutris wine-staging wine-mono wine-gecko giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse libgpg-error lib32-libgpg-error alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo sqlite lib32-sqlite libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt lib32-libxinerama ncurses lib32-ncurses opencl-nvidia opencl-headers lib32-opencl-nvidia lib32-opencl-mesa opencl-mesa libxslt lib32-libxslt libva lib32-libva gtk3 lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader #lutris游戏平台及其依赖
yay -S mangohud lib32-mangohud #游戏帧率检测,与lutris一起使用
13.安装zsh终端以及美化
sudo pacman -S zsh zsh-completions #安装zsh
sh -c "$(wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)" #安装ohmyzsh
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k #下载powerlevel10k主题
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions #下载自动补全插件
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting #下载错误高亮提醒插件在相应位置编辑配置文件应用主题与插件
vim .zshrc
ZSH_THEME="powerlevel10k/powerlevel10k"
plugins=(gitzsh-autosuggestionszsh-syntax-highlighting)
neofetch关闭终端后再次启动需要手动配置powerlevel10k,之后可以执行以下命令配置
p10k configure
14.安装kvm虚拟化
注:这里省略确认自己电脑是否支持kvm的步骤,此步骤建议查阅archlinux的wiki自检
sudo pacman -S qemu virt-manager virt-viewer dnsmasq vde2 bridge-utils openbsd-netcat virt-manager libvirt edk2-armvirt edk2-ovmf qemu-arch-extra #安装kvm及依赖
sudo usermod -a -G libvirt $USER #将用户加入libvirt组用于管理
sudo systemctl restart libvirtd #启动libvirt
sudo systemctl enable libvirtd #libvirt自启
sudo virsh net-autostart default #虚拟网卡default自启
reboot #重启电脑
15.kvm配置显卡直通
参考文档:https://lantian.pub/article/modify-computer/laptop-intel-nvidia-optimus-passthrough.lantian/
新建虚拟机,固件使用64位uefi的OVMF_CODE.fd,磁盘总线建议使用VirtIO,性能更好,需要安装virtio驱动:https://github.com/virtio-win/kvm-guest-drivers-windows
sudo vim /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet intel_iommu=on iommu=pt" #启用IOMMU,AMD处理器添加amd_iommu=on,修复或导致黑屏添加iommu=qt
sudo grub-mkconfig -o /boot/grub/grub.cfg #重新生成配置文件
reboot #重启
sudo dmesg | grep -e DMAR -e IOMMU #查看是否开启IOMMU
[ 0.351545] DMAR: Intel(R) Virtualization Technology for Directed I/Olspci -nn | grep NVIDIA #查看pci设备信息
01:00.0 3D controller [0302]: NVIDIA Corporation GP107M [GeForce GTX 1050 Ti Mobile] [10de:1c8c] (rev a1)添加VFIO到内核模块
sudo vim /etc/modprobe.d/vfio.conf #ids是设备ID,每个用,隔开
options vfio-pci ids=10de:1c8c
#options vfio-pci disable_idle_d3=1
#options vfio-pci disable_vga=1修改 /etc/mkinitcpio.conf,在 MODULES 中添加以下内容:
vim /etc/mkinitcpio.conf
MODULES=(vfio_pci vfio vfio_iommu_type1 vfio_virqfd)
删除 nvidia 等与 NVIDIA 驱动相关的内核模块。
这样 PCIe 直通模块就会在系统启动的早期抢占独显,阻止 NVIDIA 驱动后续占用。重新生成initramfs
sudo mkinitcpio -P配置intel虚拟核显卡
1.编辑内核参数:
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet i915.enable_gvt=1 kvm.ignore_msrs=1 intel_iommu=on iommu=pt"
sudo grub-mkconfig -o /boot/grub/grub.cfg编辑 /etc/modules-load.d/vfio.conf,添加如下三行内容:
sudo nano /etc/modules-load.d/vfio.conf
kvmgt
vfio-iommu-type1
vfio-mdev重启设备2.创建虚拟显卡
查找核显的 PCIe 总线位置编号
lspci | grep "HD Graphics"
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)
find /sys/devices/ -name "*00:02.0"
切换至root用户
sudo su
创建虚拟显卡
echo "af5972fb-5530-41a7-0000-fd836204445b" > "/sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_4/create"
另外,每次系统重启后,你都需要在启动虚拟机之前手动运行这条命令。你也可以把这条命令加入 /etc/rc.local,在开机时自动添加虚拟显卡。虚拟机不运行时,虚拟显卡是不影响性能的。
nano /etc/rc.local
echo "af5972fb-5530-41a7-0000-fd836204445b" > "/sys/devices/pci0000:00/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_4/create"退出root用户
exit3.修改虚拟机配置,让虚拟显卡对虚拟机可见
运行sudo virsh edit Win10,其中 Win10 是你的虚拟机名,在 </devices> 前加入以下内容:
<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='off'><source><address uuid='af5972fb-5530-41a7-0000-fd836204445b'/></source>
</hostdev>
启动虚拟机
这时可以选择去intel官网下载驱动并安装,或者等待windows update更新驱动
识别到核显后关闭虚拟机
禁用QXL显卡
sudo virsh edit win10
在上面添加的这个 <hostdev> 中,把 display='off' 改成 display='on'<hostdev mode='subsystem' type='mdev' managed='no' model='vfio-pci' display='on'>
删除 <graphics>...</graphics> 和 <video>...</video> 的所有内容,用如下内容替换:
<graphics type='spice'><listen type='none'/><image compression='off'/><gl enable='yes'/>
</graphics>
<video><model type='none'/>
</video>在 </domain> 之前添加如下内容:
<qemu:commandline><qemu:arg value='-set'/><qemu:arg value='device.hostdev0.ramfb=on'/><qemu:arg value='-set'/><qemu:arg value='device.hostdev0.driver=vfio-pci-nohotplug'/><qemu:arg value='-set'/><qemu:arg value='device.hostdev0.x-igd-opregion=on'/><qemu:arg value='-set'/><qemu:arg value='device.hostdev0.xres=1920'/><qemu:arg value='-set'/><qemu:arg value='device.hostdev0.yres=1080'/><qemu:arg value='-set'/><qemu:arg value='device.hostdev0.romfile=/vbios_gvt_uefi.rom'/><qemu:env name='MESA_LOADER_DRIVER_OVERRIDE' value='i965'/>
</qemu:commandline>
其中 vbios_gvt_uefi.rom 从 http://120.25.59.132:3000/vbios_gvt_uefi.rom 下载,或者从本站下载,放在根目录下。如果移动了位置,也要对应修改 romfile 参数。