文科生 / 网管 / 看书写字 / 动漫 / 不爱国

Debian in X1 Yoga 2018

2019.05.05

两年前的米本是 8G 内存,最近不太够用了,咸鱼淘了个 x1 yoga,又简单鼓捣了一下桌面。


大二在惠普本上第一次装好 debian 之后,多年来主力系统就是它。除了那个本子当初不会挑是 A 卡外,再后来自己组的台式机和再买的笔记本,就没用过独显,所以从米本里把 btrfs 子卷直接挪到 yoga 的硬盘里就能开机,绝大部分功能都正常的。


找个 Ubuntu 的镜像做 U 盘启动(虽然不用 Ubuntu,但它的安装镜像对硬件的兼容是很好的,无线一般也能直接用,进预览模式后,我们就可以像进 Windows 的 PE 一样为所欲为了。

磁盘规划

# Device          Size   Type                   Filesystem  mount 
  /dev/nvme0n1p1  200M   Microsoft basic data   fat32       /boot/efi
  /dev/nvme0n1p2  100G   Linux filesystem       btrfs       /
  /dev/nvme0n1p3  130G   Linux filesystem       xfs         /home
  /dev/nvme0n1p4  8.3G   Linux swap             swap        none

# /dev/nvme0n1p2 下有两子卷
sudo mount /dev/nvme0n1p2 /mnt
sudo btrfs subvolume create /mnt/@
sudo btrfs subvolume list /mnt
    ID 296 gen 14039 top level 5 path @

# blkid 查看 UUID
/dev/nvme0n1p1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="23B6-CFE9" TYPE="vfat" PARTUUID="91c46c72-56e4-46e3-8f36-9d58e09da101"
/dev/nvme0n1p2: LABEL="ROOT" UUID="6afa1ff5-9380-4096-b753-d7ff736f73c5" UUID_SUB="a3f762ca-7eb8-473b-bc6a-65ec36337aec" TYPE="btrfs" PTTYPE="dos" PARTUUID="21937dbb-ef59-4c72-9b1b-fc32046d3fc8"
/dev/nvme0n1p3: LABEL="HOME" UUID="549ba4e8-7ec5-4fcb-84b7-7bbcddd4daf4" TYPE="xfs" PARTUUID="bccbcdd5-d0be-4dfe-ae77-0179193a97c6"
/dev/nvme0n1p4: LABEL="SWAP" UUID="cbda5127-9a61-4906-b525-0d083e0aaa81" TYPE="swap" PARTUUID="0984d5e1-a868-4aea-b559-4909ddec0163"

" 安装 " 系统

我直接用了米本的备份。如果初次安装,我们可以用 debootstrap 这个工具——

apt update && apt install debootstrap
mount /dev/nvme0n1p2 -o subvol=@,compress=lzo,ssd /mnt
mkdir -p /mnt/home
mount /dev/nvme0n1p3 /mnt/home
debootstrap sid /mnt http://mirrors.ustc.edu.cn/debian
.....
# 耐心等结束吧

进入刚刚安装的系统

~ λ cat /usr/local/bin/chroot2dir   # 把下面内容丢进脚本

#!/usr/bin/env bash
DIR=$1
sudo mount -o bind /dev $DIR/dev
sudo mount -o bind /dev/pts $DIR/dev/pts
sudo mount -t sysfs /sys $DIR/sys
sudo mount -t proc /proc $DIR/proc
sudo cp /etc/resolv.conf $DIR/etc/resolv.conf
sudo chroot $DIR
chroot2dir /mnt
apt install bash-completion zsh neovim \
            xserver-xorg-input-evdev \
            xserver-xorg-input-synaptics \
            xserver-xorg-input-evdev \
            xserver-xorg-input-kbd \
            xserver-xorg-input-wacom \
            xserver-xorg-input-mouse \
            xserver-xorg-video-intel \
            lightdm tilix mate \
            network-manager network-manager-gnome blueman
# 这里可以装完所有你需要的软件

更多好用的 app 可以参考: Linux 应用推荐

用户和密码

passwd root
adduser xxxx

/etc/fstab 文件

# <file system>                             <dir>     <type> <options> <dump> <pass>
# 根据 blkid 执行结果来改
UUID="23B6-CFE9"                            /boot/efi vfat rw,relatime 0 0
UUID="6afa1ff5-9380-4096-b753-d7ff736f73c5" /         btrfs defaults,rw,relatime,noatime,compress=lzo,ssd,discard,autodefrag,space_cache,subvolid=257,subvol=@ 0 1
UUID="549ba4e8-7ec5-4fcb-84b7-7bbcddd4daf4" /home     xfs defaults,rw,noatime,relatime,attr2,inode64,noquota 0 1
UUID="cbda5127-9a61-4906-b525-0d083e0aaa81" swap      swap defaults,discard,pri=30 0 0

引导

参考: rEFInd 引导简介 即可

针对 yoga 的优化

  • 参考 ArchLinux wiki 激活 S3

  • 屏幕旋转后触摸功能没有转到相应方向,网上都是自己写脚本转换矩阵,但 debian 直接安装

x11-touchscreen-calibrator 这个包就好了。

  • 对触摸屏支持比较好的应用,可以拿来写写画画:apt install xournal mypaint

  • 风扇控制

    apt install lm-sensors thinkfan    # 都 root 执行
    sensors-detect                     # 统统 yes
      
    find /sys/devices -type f -name "temp*_input" | \
       grep core | awk 'NF{print "hwmon " $0}' >> /etc/thinkfan.conf
      
    systemctl enable thinkfan && systemctl start thinkfan
    

总结

debootstrap 其实很类似 ArchLinux 的部署过程——甚至更好用 : )或者说,基本上只要是 Linux 都可以用差不多的方式处理,尤其是各大发行版都有了官方的 docker 镜像,在拿到包含了包管理器的最小压缩包之后,chroot 进去换源然后一通 apt (dnf pacman emerge apk zypper) 即可,包名不一致也就是一个 apt search 的工作量 。


screen-preview.png


Happy Hacking:)