動機
這是更新上次安裝arch的流程
- 用systemd-boot
- 用systemd-networkd
- 用systemd-homed
- 用doas
- 優化pacman
systemd-boot
取代grub,預設裝在systemd中的bootloader
- 把
/boot/
創好 - 裝arch
- 之後
/boot/
中要有initrf與vmlinuz
bootctl install
- 放設定檔
/boot/loader/loader.conf
default arch
timeout 0
/boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=[UUID] rw
UUID用blkid -s PARTUUID -o value [path to arch root device]
systemd-networkd
就是管網路的,但不太好用,想預設沒個網卡用dhcp要自己設定
/etc/systemd/network/10-dhcp.network
[Match]
Name=*
[Network]
DHCP=Yes
systemd-homed
創帳號很痛苦
新的管帳號的方式,但很不方便
- 在chroot時不能用systemd,所以沒辦法創帳號
- 創帳號一定要密碼,但沒辦法用echo去給!!
第一點目前沒想法,所以就等reboot後再創帳號
homectl create {{ user_id }} --group=wheel --shell=/bin/zsh
第二點在翻了homectl的source code發現有一個env可以放密碼!!
"NEWPASSWORD={{ user_pw }} homectl create {{ user_id }} --group=wheel --shell=/bin/zsh
ssh沒有啟動的帳號
arch的wiki有解法
- 在創帳號時紀錄sshd要去哪邊看authorized-keys
NEWPASSWORD={{ user_pw }} homectl create {{ user_id }} --group=wheel --shell=/bin/zsh --ssh-authorized-keys=@/home/authorized_keys
- 改sshd_config
- 之後登入都是用public key與password
sshd_config
AuthenticationMethods publickey,password
AuthorizedKeysCommand /usr/bin/userdbctl ssh-authorized-keys %u
AuthorizedKeysCommandUser root
PasswordAuthentication yes
su不給用
另外還有一個是homed沒辦法直接su,這要改su的pam(原本只吃unix的account)
/etc/pam.d/su-l
auth include system-auth
account include system-auth
session include system-auth
password include system-auth
doas
simple的sudo
doas conf
/etc/doas.conf
permit persist :wheel
在wheel group可以用doas,同時在成功auth後一段時間不用打密碼
doas auto-complete
~/.bashrc
complete -cf doas
優化pacman
reflector怪怪的
當初是用reflector直接掃,但是之後看出來的結果沒有最好的site,所以就直接用自己的吧
另外,在安裝環境改的mirrorlist會直接影響到被安裝的mirrorlist。 也就是只要copy一次,在chroot中不用再複製一次
Server = http://free.nchc.org.tw/arch/$repo/os/$arch
Server = http://archlinux.cs.nctu.edu.tw/$repo/os/$arch
Server = http://shadow.ind.ntou.edu.tw/archlinux/$repo/os/$arch
pacman平行化
pacman一次只載一個,所以要改一下設定
/etc/pacman.conf
...
ParallelDownloads = 10
...