Dell XPS 15 9560 Arch Linux 安装教程
BIOS设置
打开电脑,等待出现dell图标时按下F12键,选择进入BIOS设置页面,进行如下操作
- 将
SATA Mode从默认的RAID模式修改为AHCI模式。这样可以允许Linux检测到NVME SSD。 - 将
Fastboot的选项从POST Behaviour修改为Thorough,这样可以防止偶尔的启动错误。 - 关闭安全启动来允许linux启动。
保存后退出,会重启电脑。
内核启动参数设置
从U盘启动 Arch Linux 引导镜像:在dell图标出现时按下F12,选择从U盘启动,在出现启动菜单时,按下e键,添加以下启动参数:
initrd=\initramfs-linux.img root=/dev/sdb2 acpi_rev_override=1 pci=nommconf nouveau.modeset=0这样可以保证系统可以正常关闭和重启,否则关闭和重启时电脑会死机。
系统安装
tty字体设置
首先由于4k屏的高分辨率,使得终端字体非常小,应该设置大一点的字体:
setfont latarcyrheb-sun32网络连接
wifi-menu根据提示选择wifi,输入密码即可。
分区
这里采用lvm并使用cryptsetup来加密磁盘,最终分区如下:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot
└─nvme0n1p2 259:2 0 476.4G 0 part
└─luks 254:0 0 476.4G 0 crypt
├─entropy--vg0-root 254:1 0 150G 0 lvm /
├─entropy--vg0-home 254:2 0 250G 0 lvm /home
├─entropy--vg0-swap 254:3 0 16G 0 lvm [SWAP]
└─entropy--vg0-backup 254:4 0 10G 0 lvm 磁盘创建两个分区,一个分区用于/boot,另一个分区用于安装系统。
cgdisk /dev/nvm0n1输入命令后按照提示进行分区。通常/boot分区512M就够用了,用 ef00, 剩下的分区都用于系统安装。
加密磁盘
cryptsetup luksFormat /dev/nvme0n1p2
cryptsetup open /dev/nvme0n1p2 luks注意提示,输入的yes必须是大写的
创建lvm分区
pvcreate /dev/mapper/luks
vgcreate entropy-vg0 /dev/mapper/luks
lvcreate -L 250G entropy-vg0 --name home
lvcreate -L 150G entropy-vg0 --name root
lvcreate -L 16G entropy-vg0 --name swap
lvcreate -L 10G entropy-vg0 --name backuphome用于挂载home目录,root用于挂载根目录,swap用于交换空间,backup用于备份系统,必要时可还原。
根式化分区
将boot分区格式化为fat32格式
mkfs.fat -F32 /dev/nvme0n1p1将root,home,backup分区格式化为ext4格式
mkfs.ext4 /dev/mapper/entropy--vg0-root
mkfs.ext4 /dev/mapper/entropy--vg0-home
mkfs.ext4 /dev/mapper/entropy--vg0-backup格式化swap分区
mkswap /dev/mapper/entropy--vg0-swap挂载分区
挂载各个分区,backup分区可以先不挂载:
mount /dev/nvme0np1 /mnt/boot
mount /dev/mapper/entropy--vg0-root /mnt
mkdir -p /mnt/{home,boot}
mount /dev/mapper/entropy--vg0-home /mnt/home启用swap分区:
swapon /dev/mapper/entropy--vg0-swap安装基本系统
pacstrap /mnt base base-devel linux linux-firmware生成fstab
genfstab -L /mnt >> /mnt/etc/fstabSSD 参数优化
/etc/fstab的参数设置如下:
# Static information about the filesystems.
# See fstab(5) for details.
# <file system> <dir> <type> <options> <dump> <pass>
# /dev/mapper/entropy--vg0-root UUID=9ce33c90-5f31-4e3c-9dfc-f79d91b0ca97
/dev/mapper/entropy--vg0-root / ext4 rw,noatime,discard,data=ordered 0 1
# /dev/nvme0n1p1 UUID=5D44-7907
/dev/nvme0n1p1 /boot vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 2
# /dev/mapper/entropy--vg0-home UUID=8beacae1-5f69-4704-b336-d75e30e0607d
/dev/mapper/entropy--vg0-home /home ext4 rw,noatime,discard,data=ordered 0 2
# /dev/mapper/entropy--vg0-swap UUID=bb0ce28e-3293-4228-a40f-72b42a72617d
/dev/mapper/entropy--vg0-swap none swap defaults 0 0如果 /usr 配置了单独的分区,需要将 /usr 分区最后一项配置设为 0 0。并且在 Hooks 里添加 usr 模块。
SSD的参数优化具体可以参考 archwiki
切换到新系统
arch-chroot /mnt设置时间
ln -sfv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc --utc设置语言
本地化的程序与库若要本地化文本,都依赖 Locale, 后者明确规定地域、货币、时区日期的格式、字符排列方式和其他本地化标准等等。在下面两个文件设置:locale.gen 与 locale.conf.
/etc/locale.gen是一个仅包含注释文档的文本文件。指定您需要的本地化类型,只需移 除对应行前面的注释符号(#)即可,建议选择帶UTF-8的項:
vi /etc/locale.gen
en_US.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8接着执行locale-gen以生成locale讯息:
locale-gen创建 locale.conf 并提交您的本地化选项:
echo LANG=en_US.UTF-8 > /etc/locale.conf设置终端字体
echo 'FONT=latarcyrheb-sun32' >> /etc/vconsole.conf修改root密码
passwd创建普通用户
useradd -m -g users -G wheel -s /bin/bash <username>
passwd cheon赋予用户执行所有命令的权限:
vi /etc/sudoers添加<username> ALL=(ALL) ALL到该文件中。
设置主机名
echo <hostname> > /etc/hostname配置启动加载模块
编辑/etc/mkinitcpio.conf,修改对应项至如下所示:
MODULES=(ext4 dm_snapshot)
HOOKS=(base systemd udev autodetect modconf block sd-vconsole sd-encrypt sd-lvm2 filesystems keyboard fsck)生成初始化镜像
mkinitcpio -p linux安装启动器
bootctl --path=/boot install
pacman -S intel-ucode首先我们需要在/boot/loader/entries文件夹中创建名为arch.conf的配置文件,添加如下内容:
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options luks.uuid=417dd162-dd0b-4434-bc29-2b6daa8f3593 luks.name=417dd162-dd0b-4434-bc29-2b6daa8f3593=luks root=/dev/mapper/entropy--vg0-root rw acpi_rev_override=1 nouveau.modeset=0 pci=nommconf rd.luks.options=discard大致意思,各位根据名字应该就能猜个大概,这里只需要注意root部分可以填写UUID,要查看UUID,可以使用lsblk -f,这里还加入了一些参数,是为了xps15能够正常关机。
接下来需要配置/boot/loader/loader.conf,这个文件有默认的内容,只需要修改下即可。
timeout 0
default arch安装连接wifi所需工具
pacman -S dialog wpa_supplicant/etc/iwd/main.conf
[General]
EnableNetworkConfiguration=true
[Network]
NameResolvingService=systemdsystemctl enable iwd
systemctl enable systemd-resolved退出chroot并重启
exit
reboot能正常重启说明系统已经安装完成
桌面安裝
驱动安装
声卡
pacman -S pulseaudio显卡
pacman -S xf86-video-intel触摸板可用libinput和synaptics,这里采用libinput。
常用软件安装
xorg
pacman -S xorg-server xorg-xinit窗口管理器
pacman -S herbstluftwm dzen2窗口合成器
pacman -S compton启动器
pacman -S dmenu终端
pacman -S rxvt-unicode常用工具
pacman -S git gvim gdb \ neofetch feh scrot \ slock xautolock \ docker \ ranger zathura zathura-pdf-mupdf \ w3m p7zip tree irssi \ mplayer mpd mpc \ firefox thunderbird libreoffice\ openssh sshpass openvpn \ xorg-xset xorg-xbacklight xorg-xrandr xorg-xprop
软件配置
系统的dotfile存放在了 github 上,针对各软件的HiDPI等设置可以参考 archwiki ,遇见其他一些问题也可以通过archwiki来查找解决方案。

参考文档:

