arch linux 安装配置笔记

采用 UEFI 模式 GPT 分区

安装准备

请参照 wiki,仅对省略处进行补充。

下载镜像

官方下载地址:https://archlinux.org/download/,选择中国的镜像源下载。
下载完后检查镜像:md5 xxx

制作启动盘

选择 Rufus 制作启动盘

安装

连网(必须

检查网络连接:ping -c 4 www.baidu.com
连接 wifi:wifi-menu

如果是拨号连接的话:
编辑/etc/ppp/pap-secrets

1
2
3
# 帐号 * 密码
"10555576" * "77833196"
pppoe-setup

编辑/etc/dhcpcd.conf

1
2
# 不dhcp刷新
nohook resolv.conf

然后启动网卡:

1
2
ls -la /sys/class/net                   # 查看网卡名称
ip link set dev enp2s0 up               # 启动网卡(假设网卡名称为enp2s0)

以下为旧命令(arch从2011年已经从base包剔除ifconfig,改用ip命令)

1
2
sudo ifconfig enp2s0(网卡名称) up       # 启动网卡
sudo ifconfig enp2s0 192.168.1.11     # 设置电脑为固定 ip

刷新本地时间

1
timedatectl set-ntp true

配置软件仓库镜像

该配置不仅会应用到安装环境,也会应用至新系统中。

1
nano /etc/pacman.d/mirrorlist

在 bash 中直接执行sed -i '/China/!{n;/Server/s/^/#/};t;n' /etc/pacman.d/mirrorlist可将配置文件修改为中国大陆镜像。

检查启动模式

1
ls /sys/firmware/efi/efivars

若该目录不存在,则当前是以 BIOS/CSM 模式启动,否则是以 UEFI 模式启动。

分区

分区方案

  • 至少一个分区分配给根目录/
  • 在 UEFI 系统上,需要一个 UEFI 系统分区

注:不要把/etc和/usr挂载在与/不同的分区,把/usr单独挂载可能导致“/sbin/init does not exist”的错误不能正常启动。
尽量使用fdisk进行分区,最新版本的fdisk会自动分区对齐。 cfdisk类似fdisk但目前仍不能正确地自动对齐好第一个分区。(fdisk维基页面)(19.04.25更新)

/dev/nvme0n1p1 /boot/EFI 550M vfat
/dev/nvme0n1p2 swap 8G swap
/dev/nvme0n1p3 / 剩余空间 ext4

分区后格式化(创建文件系统

1
2
3
4
mkfs.vfat /dev/nvme0n1p1 -n 盘符
mkfs.ext4 /dev/nvme0n1p3 -L 盘符
mkswap /dev/nvme0n1p2
swapon /dev/nvme0n1p2   # 激活swap分区,不然后面生成分区表时不会包含已创建的swap分区

ref:
Installation guide (简体中文)
Arch Linux 安装指南[2017.10]
Fdisk (简体中文)
/sbin/init does not exist
细说linux挂载
硬盘操作指北

挂载分区

请注意挂载次序。从根目录开始,先挂载父目录,再挂载子目录。

1
2
3
4
# mount <分区> <挂载点>
mount /dev/nvme0n1p3 /mnt
mkdir -p /mnt/boot/EFI
mount /dev/nvme0n1p1 /mnt/boot/EFI

安装基本系统

1
pacstrap -i /mnt base base-devel  # base-devel 用于 AUR

配置基础系统

生成分区表

1
genfstab -U /mnt >> /mnt/etc/fstab

强烈建议检查一下生成的 /mnt/etc/fstab 文件,有没有漏掉swap分区之类的……漏掉的话就手动添加吧

接着使用 arch-chroot 进入新系统。

1
arch-chroot /mnt

设置时间

设置时区:

1
2
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime   # 中国时区
ln -sf /usr/share/zoneinfo/$(tzselect) /etc/localtime     # 或者手动选择时区

设置硬件时间:
大陆的机器bios里面一般是localtime,要用UTC的话,要调整bios里面的时间,要不两个是不一致的。
ref: 关于Archlinux的时间设置

1
hwclock --systohc

本地化设置

1
2
3
4
5
nano /etc/locale.gen
# 去掉 en_US.UTF-8 前面的 # 号

locale-gen                                  # 生成 locale
echo LANG=en_US.UTF-8  > /etc/locale.conf   # 设置默认 locale

主机名

1
echo <主机名> > /etc/hostname

编辑/etc/hosts文件,添加:

1
2
3
#<ip-address> <hostname.domain.org> <hostname>
127.0.0.1     localhost.localdomain	localhost
::1           localhost.localdomain	localhost

网络连接

1
2
pacman -S networkmanager
pacman -S iw wpa_supplicant dialog 无线登录必备
  • 如果需要图形化的网络连接管理工具,安装nm-connection-editor
  • 如果需要在状态栏显示网络图标,安装network-manager-applet
  • 如果需要 ADSL 支持,安装 rp-pppoe


设置用户

记得一定设定 root 的 password

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
passwd                                    # 修改 root 密码
useradd 用户名 -g users -m -s /bin/bash    # 添加普通用户
passwd 用户名

# 给普通用户添加 sudo 权限
chmod u+w /etc/sudoers        # 增加 sudoers 文件的写权限

nano /etc/sudoers
# visudo找到 "root ALL=(ALL) ALL" 在这行下边添加 "用户名 ALL=(ALL) ALL"
# 绝对不能写错 否则用户会无法使用

chmod u-w /etc/sudoers        # 除去 sudoers 文件的写权限

# 修改 sudoer 文件最保险的方法是安装 visudo,它会检查文件语法正确
# 修改 visudo 默认编辑器:sudo update-alternatives --config editor

安装引导程序

UEFI 系统:

1
2
3
pacman -S dosfstools grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=<EFI 分区挂载点> --bootloader-id=GRUB   # 分区挂载点这里是/mnt/boot/EFI
grub-mkconfig -o /boot/grub/grub.cfg

完成安装

  • 使用命令 exit 或 [CTRL+D] 退回安装环境
  • 卸载新分区:
    bash umount -R /mnt
  • 重启:
    bash reboot
  • 移除安装介质

配置

启用 AUR

启用multilib
/etc/pacman.conf 文件末尾添加以下两行:

1
2
3
[archlinuxcn]
SigLevel = Optional TrustedOnly
Server = http://repo.archlinuxcn.org/$arch

之后安装 archlinuxcn-keyring 包以导入 GPG key:

1
sudo pacman -S archlinuxcn-keyring

安装 haveged,以 root 权限运行:

1
2
3
4
5
6
7
8
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

ref:
Arch Linux 中文社区仓库 / 镜像加速源
[已解决]archlinuxcn-keyring无法安装
GnuPG-2.1 与 pacman 密钥环

安装桌面环境和登录管理器

桌面环境:openbox,登录管理器:lightdm
编辑~/.xinitrc文件,写入:

1
2
#!/bin/bash
exec openbox-session

startx

声音

alsa和pulse
状态栏音量图标:volumeicon

分辨率

lxrandr

鼠标

lxinput

主题

obconf
lxappearance

Pacman

递归删除孤立软件包:pacman -Rs $(pacman -Qtdq)
卸载软件并删除依赖:pacman -Rs xx

避免过度清理缓存
删除所有已有新版本的过期软件包。添加以下内容到/etc/pacman.conf[options]段:

1
CleanMethod = KeepCurrent

休眠

安装acpi后安装pm-utils即可
ref: https://wiki.archlinux.org/index.php/Pm-utils_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

GFW

shadowsocks

sudo nano /etc/shadowsocks/config.json
{
“server”:“www.example.com”,
“server_port”: 1234,
“local_address”: “127.0.0.1”,
“local_port”:1080,
“password”:“password”,
“timeout”:300,
“method”:“rc4-md5”,
“fast_open”: false,
“workers”: 1,
“prefer_ipv6”: false
}

v2ray

终端

lilyterm:
右键->set key binding取消绑定的快捷键后,要在右键->User profile中save settings配置才能生效

sakura

输入法

安装fcitx,使用rime作为输入方案

https://github.com/rime/home/wiki/UserGuide
https://flypy.com/bbs//forum.php?mod=viewthread&tid=342

~/.pam_environment中写入以下环境变量:

1
2
3
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

应用变量:source ~/.pam_environments
执行 fcitx-remote -r 命令重新部署
mousepad ~/.config/fcitx/rime/default.custom.yaml

1
2
3
4
5
6
patch:
  "menu/page_size": 7
  "style/horizontal": false # 候選竖排
  "style/display_tray_icon": true # 顯示托盤圖標
  "style/font_face": "Source Han Sans" # 字體名稱,從記事本等處的系統字體對話框裏能看到
  "style/font_point": 14 # 字號,只認數字的,不認「五號」、「小五」這樣的

在fcitx中添加第一个输入法
/etc/xdg/openbox/

openbox

绑定快捷键

application launcher 快速启动应用

1
sudo pacman -S rofi

~/.config/openbox/rc.xml添加:

1
2
3
4
5
<keybind key="W-r">  
  <action name="Execute">
    <command>rofi -show run</command>
  </action>
</keybind>

通过win+r键启动

生成菜单

安装obmenu-generator
添加关机菜单:编辑~/.config/obmenu-generator/schema.pl,添加

1
2
3
4
5
6
7
{beg => ['Exit',  'cat-icon']},
  {item => ["openbox --exit", 'Log Out                    ',   'gnome-session-halt']},
  {item => ["systemctl poweroff", 'Shutdown',   'gnome-session-halt']},
  {item => ["systemctl reboot", 'Restart',   'gnome-session-halt']},
  {item => ["systemctl suspend", 'Suspend',   'gnome-session-halt']},
  {item => ["systemctl hibernate", 'Hibernate',   'gnome-session-halt']},
{end => undef},

挂载

gvfs
udisks2

Q: mount: unknown filesystem type ‘exfat’
A: install exfat-utils
https://unix.stackexchange.com/questions/143829/trouble-getting-exfat-formatted-drive-to-mount

多媒体

volumn control: volumeicon

美化、主题

compiler-rt-6.0.0-1 clang-6.0.0-1
qt5-tools qt5-base
libqtxdg
hicolor-icon-theme gnome-icon-theme gnome-icon-theme-extras papirus-icon-theme

阅读

epub - fbreader
pdf - mupdf

屏幕亮度

安装light
max brightness 7500
dell-command-configure
ref: Brightness control doesn’t work in i3wm. Due to xbacklight

触摸板

编辑/etc/X11/xorg.conf.d/30-touchpad.conf

1
2
3
4
5
6
7
8
9
Section "InputClass"
    Identifier "touchpad"
    Driver "libinput"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Option "Tapping" "on"
    Option "ScrollMethod" "twofinger"
    Option "TappingButtonMap" "lmr"
EndSection

注销会话重登录
参考:[SOLVED] Can not configure touchpad “tap to click” in Mate-gtk3

再次启动之后

联网

sudo nmtui 关掉已有wifi连接的Automatically connect选项
sudo nmcli dev wifi connect wifiname password wifipassword
wifi-menu 似乎不能开机自动连接网络

其它

1
2
3
4
5
netsh wlan set hostednetwork mode=allow ssid=wife key=notawifi
网络和共享中心->更改适配器设置
netsh wlan start hostednetwork
netsh wlan stop hostednetwork
rtwintgt -setup
soda主题待办
spring boot项目打包为docker image
comments powered by Disqus