-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathchroot-install.sh
99 lines (83 loc) · 2.33 KB
/
chroot-install.sh
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/bin/bash
set -e
MIRROR=${MIRROR:='http://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch'}
DESKTOP_LXQT=(lxqt)
DESKTOP_DDE=(deepin deepin-extra)
GUIPKGS=(qemu ovmf \
ttf-droid ttf-dejavu \
xorg-server xorg-xrandr xorg-xrdb xorg-xev xorg-setxkbmap xorg-setxkbmap xorg-drivers xorg-xinit
gparted firefox pidgin pidgin-otr pidgin-xmpp-receipts element-desktop
leafpad
network-manager-applet)
case "${DESKTOP}" in
no)
DESKTOP=()
;;
mate)
DESKTOP=(mate mate-terminal)
;;
xfce*)
DESKTOP=(xfce4)
;;
lxde-gtk3)
DESKTOP=(lxde-common lxlauncher-gtk3 lxpanel-gtk3 lxsession-gtk3 lxterminal openbox pcmanfm-gtk3)
;;
lxqt)
DESKTOP=("${DESKTOP_LXQT[@]}")
;;
dde)
DESKTOP=("${DESKTOP_DDE[@]}")
;;
budgie)
DESKTOP=(budgie-desktop gnome-terminal)
;;
*)
DESKTOP=()
;;
esac
if [[ "${#DESKTOP[@]}" -ne 0 ]]; then
DESKTOP+=("${GUIPKGS[@]}")
fi
pacman-key --init
pacman-key --populate archlinux
cp /etc/pacman.conf /etc/pacman.conf.bak
sed -i 's/CheckSpace/#CheckSpace/g' /etc/pacman.conf
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
echo "Server = ${MIRROR}" > /etc/pacman.d/mirrorlist
# (re)install linux because the Linux image is not present
pacman --noconfirm -Sy linux
pacman --noconfirm -Syu --needed \
base-devel \
git \
archiso \
wireguard-tools \
flashrom debootstrap htop \
acpid iasl dmidecode procinfo-ng efibootmgr \
picocom \
bash-completion zsh-completions \
networkmanager \
chntpw radare2 \
fwupd \
wimlib \
"${DESKTOP[@]}"
if /bin/ls /aur/*.pkg.tar.*; then
pacman --noconfirm -U --needed /aur/*.pkg.tar.*
fi
# wireguard modules has been built, remove dkms and linux-headers
#pacman --noconfirm -Rdd dkms
#pacman --noconfirm -Rcsn linux-headers
mkinitcpio -p linux
mv /etc/pacman.conf.bak /etc/pacman.conf
mv /etc/pacman.d/mirrorlist.bak /etc/pacman.d/mirrorlist
if ! grep '^arch:' /etc/passwd; then
useradd -m -G wheel,uucp arch
echo arch:arch | chpasswd
sed -i 's/^# %wheel/%wheel/g' /etc/sudoers
sed -i 's/root/arch/g' /etc/systemd/system/[email protected]/autologin.conf
fi
gpgconf --homedir /etc/pacman.d/gnupg/ --kill gpg-agent || echo 'Failed to kill gpg-agent'
rm -f /etc/udev/rules.d/81-dhcpcd.rules
systemctl enable NetworkManager
systemctl enable acpid
# save the kernel package
cp "/var/cache/pacman/pkg/linux-$(pacman -Q linux|cut -d ' ' -f2)-x86_64.pkg.tar.zst" /opt/