记录一次archlinux安装和基础配置

archlinux 安装步骤


下载镜像制作启动盘 然后进入arch live进行安装系统


链接wifi

1
2
3
4
5
6
7
8
rfkill unblock [网卡]                        # 软解网卡
ip link set [wifi设备] up # 启动网卡
wpa_passphrase [wifi名称] [wifi密码] > wifi.conf # 写入wifi配置文件
wpa_supplicant -c wifi.conf -i & # 登录wifi
dhcpcd & # 动态ip分配
# 此时已可以上网 可以用ping baidu.com 验证

# 嫌麻烦可以直接用nmtui连接

硬盘分区 + 挂载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
cfdisk /dev/硬盘                             # 使用cfdisk工具分区、格式化、调整大小等

# 以三个盘举例
# /dev/nvme0n1p1 boot分区 type: efi
# /dev/nvme0n1p2 root分区 type: linux filesystem
# /dev/nvme0n1p3 swap分区 type: swap

# 磁盘格式化以及开启swap
mkfs.fat -F32 /dev/nvme0n1p1
mkfs.ext4 /dev/nvme0n1p2
mkswap /dev/nvme0n1p3
swapon /dev/nvme0n1p3

# 挂载 (切记一定先挂载再执行后面的安装)
mkdir /mnt/boot
mount /dev/nvme0n1p2 /mnt
mount /dev/nvme0n1p1 /mnt/boot

安装基础包 + genfstab

1
2
3
pacman -Sy archlinux-keyring                 # 安装这个可解决证书问题
pacstrap /mnt base base-devel linux linux-firmware
genfstab -U /mnt >> /mnt/etc/fstab

制作grub引导

1
2
3
4
5
6
7
8
arch-chroot /mnt
pacman -S grub efibootmgr amd-ucode # 如果是intel就装intel-ucode
mkdir /boot/grub
grub-install --target=x86_64-efi --efi-directory=/boot
grub-mkconfig > /boot/grub/grub.cfg

事后可设置 /etc/default/grub 中 可提升启动速度
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 nowatchdog"

初始化 设定用户+本地化

1
2
3
4
5
6
7
8
9
10
passwd
useradd -m -G wheel [用户名]
passwd [用户名]
pacman -S netmanager dhcpcd

# 本地化 一些自定义设置
vim /etc/locale.gen -> zh_CN.UTF-8 UTF-8
locale-gen
vim /etc/locale.conf -> LANG=zh_CN.UTF-8
timedatectl set-timezone Asia/Shanghai

此时已可以重启正常进入系统tty了


配置archcn 安装yay等

1
2
3
4
5
6
7
8
9
10
11
12
vim /etc/pacman.conf 尾部添加

[archlinuxcn]
SigLevel = Never
Server = https://mirrors.ustc.edu.cn/$repo/$arch

顺便开启
[multilib]
Include = /etc/pacman.d/mirrorlist

sudo pacman -Syyu
sudo pacman -S yay

安装gui

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 安装git和xorg和字体
yay -S git
yay -S xorg
yay -S wqy-microhei
yay -S wps-office-mui-zh-cn
yay -S ttf-wps-fonts
yay -S nerd-fonts-jetbrains-mono
yay -S ttf-material-design-icons
yay -S ttf-joypixels
yay -S ttf-dejavu

mkdir ~/workspace
cd ~/workspace
git clone https://github.com/yaocccc/dwm
git clone https://github.com/yaocccc/st
cd dwm && sudo make install clean
cd st && sudo make install clean

echo exec dwm > ~/.xinitrc
startx # 进入系统

此时已可以重启正常进入系统gui了

接下来设置一些日常使用的内容


中文输入法

1
2
3
4
5
6
7
sudo pacman -S fcitx5 fcitx5-qt fcitx5-gtk fcitx5-config-qt fcitx5-material-color fcitx5-im fcitx5-rime
sudo echo '
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus' >> /etc/environment

触控板轻触

1
2
3
4
5
6
7
8
9
10
11
yay -S xf86-input-synaptics      # 触控板

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

Section "InputClass"
Identifier "touchpad"
Driver "libinput"
MatchIsTouchpad "on"
Option "Tapping" "on"
Option "TappingButtonMap" "lrm"
EndSection

配置系统锁屏和关机时间

1
2
3
4
5
6
7
8
9
/etc/X11/xorg.conf.d/10-monitor.conf

Section "ServerLayout"
Identifier "ServerLayout0"
Option "BlankTime" "10" # 自动锁屏
Option "StandbyTime" "20" # 关闭屏幕
Option "SuspendTime" "30" # 挂起
Option "OffTime" "60" # 关机
EndSection

音频和蓝牙

1
2
3
4
5
6
7
8
sudo pacman -S pipewire-pulse
sudo pacman -S pavucontrol
sudo pacman -S bluez bluez-utils bluedevil # bluedevil 为gui蓝牙管理
pactl load-module module-bluetooth-discover

sudo vim /etc/bluetooth/main.conf
FastConnectable=true
AutoEnable=true

SSR

1
2
3
4
5
6
7
8
9
10
# run v2raya
docker run -d \
--privileged \
--network=host \
--name v2raya \
-e V2RAYA_ADDRESS=0.0.0.0:2017 \
-v /lib/modules:/lib/modules \
-v /etc/resolv.conf:/etc/resolv.conf \
-v /etc/v2raya:/etc/v2raya \
mzz2017/v2raya

tty免登录

1
2
3
4
5
6
7
8
9
10
vim /etc/systemd/system/getty.target.wants/[email protected]

update
ExecStart=-/sbin/agetty -o '-p -f [用户名]' -n -a chenyc --noclear %I $TERM

sudo免密 加到 visudo 添加到尾部
[用户名] ALL=(ALL:ALL) NOPASSWD: ALL

用户提权
yay -S polkit

开启hibernate

1
2
3
4
5
6
7
8
9
10
1. 确保已经有swap
2. /etc/default/grub, GRUB_CMDLINE_LINUX_DEFAULT 添加 resume=/dev/nvme0n1p3
3. /etc/mkinitcpio.conf, HOOKS添加resume,resume放在udev之后,如果有lvm,放在lvm之后
4. /etc/systemd/logind.conf, 按下电源键进入休眠 合盖挂起 半小时后休眠
HandlePowerKey=hibernate
HandleLidSwitch=suspend-then-hibernate
HandleLidSwitchDocked=suspend-then-hibernate
HibernateDelaySec=30min
5. sudo grub-mkconfig -o /boot/grub/grub.cfg
6. sudo mkinitcpio -p linux

永久去除蜂鸣器声音

1
2
3
4
sudo su
mkdir -p /etc/rc.d
echo "rmmod pcspkr" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

时间同步

1
2
3
sudo pacman -S ntp
sudo ntpdate ntp.aliyun.com
sudo hwclock -w

开发环境搭建

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
ubuntu升级nvim
apt-add-repository ppa:neovim-ppa/unstable
nodejs:
git clone https://github.com/nvm-sh/nvm.git .nvm
nvm install 17.1.0
golang:
官网下载tar包,配置 GOROOT GOBIN等
docker:
yay -S docker
sudo vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
sudo systemctl daemon-reload
sudo systemctl start docker
sudo systemctl enable docker
sudo docker pull redis
sudo docker pull mysql
sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:7.3.0
sudo docker pull rabbitmq:3.7.7-management
sudo docker pull mongo
sudo docker network create esnet
sudo docker run -d -p 9200:9200 -p 9300:9300 --name esApp --network esnet -e "discovery.type=single-node" bdaab402b220
sudo docker run -d -p 5672:5672 -p 15672:15672 --name rabbitmqApp -v ~/.data/rabbitmq:/var/lib/rabbitmq --hostname myRabbit 2888deb59dfc
sudo docker run -d -p 27017:27017 --name mongoApp mongo
sudo docker run -d --network=host --name redisApp redis --requirepass 123456
sudo docker run -d --network=host --name mysqlApp -e MYSQL_ROOT_PASSWORD=123456 mysql
mysql -h 172.17.0.1 -u root -p123456
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;

sudo docker run --network=host --name mysqlApp \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

日常软件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
yay -S lxappearance              # gui设置
yay -S paper-gtk-theme-git # gtk主题
yay -S pavucontrol # 音频设置
yay -S breeze-icons # 图标
yay -S rofi # 菜单
yay -S flameshot # 截图软件
yay -S google-chrome wyeb-git # 浏览器
yay -S byzanz # gif截图依赖
yay -S wps-office-cn # wps
yay -S libnotify dunst # 通知 可使用 dunst -b 命令 启动通知服务
yay -S xorg-xsetroot # dwm设置状态栏
yay -S xf86-input-synaptics # 触控板
yay -S network-manager-applet # 网络托盘
yay -S amf-amdgpu-pro # amd gpu 驱动
yay -S obs-studio-amf # obs for amd_gpu
yay -S mpc mpd ncmpcpp # tui music player

记录一次archlinux安装和基础配置
https://yaocc.cc/archinstall/
作者
Yaocan Chen
发布于
2022年12月28日
许可协议