云服务器/VPS 安装Arch Linux (三)

适用于: 内存300-512MB的机器、商家不提供VNC控制台、商家VNC坏了

我随便拿了一台机器进行演示,还是预装了Debian系统

预装其他系统也可以,我还是推荐Debian

准备工作

1. 确定启动方式:传统BIOS还是UEFI?

1
ls /sys/firmware/efi 

如果提示No such file or directory就是传统BIOS启动,否则就是UEFI

我这台机器是UEFI启动

2. 确定当前系统的根分区

使用df -hT命令查看

2

可以看到根分区是/dev/vda1,即第一个硬盘的第一个分区

3.确定是DHCP还是静态IP

执行ip addr查看网卡

如果活动网卡有dynamic字眼说明是DHCP,否则是静态IP

如果是静态IP,把ip地址,子网掩码以及网关记下来

我这台机器是DHCP

准备安装环境

1
2
3
4
cd /tmp
wget http://mirrors.edge.kernel.org/archlinux/iso/latest/archlinux-bootstrap-x86_64.tar.zst
zstd -d archlinux-bootstrap-x86_64.tar.zst
tar -xvf archlinux-bootstrap-x86_64.tar --numeric-owner

绑定目录并配置 Pacman 镜像列表

1
mount --bind /tmp/root.x86_64 /tmp/root.x86_64

为什么要绑定它自己?官方的解释:

2

不绑定的话系统也会警告:

1
WARNING: /tmp/root.x86_64/ is not a mountpoint. This may have undesirable side effects.

镜像的话我选择Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch

1
sed -i 's/^#Server = https:\/\/mirrors\.kernel\.org\/archlinux\/\$repo\/os\/\$arch/Server = https:\/\/mirrors\.kernel\.org\/archlinux\/\$repo\/os\/\$arch/' /tmp/root.x86_64/etc/pacman.d/mirrorlist

进入 chroot 环境

1
/tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/

初始化 Pacman 密钥

1
2
pacman-key --init
pacman-key --populate archlinux

挂载目标分区

挂载目标分区,也就是原来的根分区

1
mount /dev/vda1 /mnt

除了/dev、/proc、 /run 、/sys目录都删除,比如:

1
2
cd /mnt
rm -rf bin etc initrd.img.old lost+found root srv usr vmlinuz.old home lib media opt var web initrd.img lib64 sbin vmlinuz boot

然后像正常安装 Arch Linux 一样使用 pacstrap 向目标挂载点安装系统基础软件包

1
2
cd ..
pacstrap /mnt base linux

生成 fstab 文件

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

步骤五:进入新系统根目录并配置

卸载 resolv.conf 并进入新系统:

1
2
umount /etc/resolv.conf
arch-chroot /mnt

配置 DNS

1
echo 'nameserver 8.8.8.8' > /etc/resolv.conf

安装常用的软件包

1
pacman -S vim openssh grub bash-completion htop curl wget

设置系统时间和主机名

设置时区和硬件时钟:

1
2
3
4
bash
复制代码
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

配置主机名和 hosts 文件:

1
2
3
4
5
6
7
echo "archlinux" > /etc/hostname

cat << EOF > /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 archlinux.localdomain archlinux
EOF

SSH 服务开机自启

1
systemctl enable sshd

配置 GRUB 引导加载程序(最重要)

根据 BIOS 或 UEFI 配置 GRUB

传统BIOS

1
2
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

UEFI

1
2
3
4
pacman -S efibootmgr
mkdir /boot/efi && mount /dev/sda1 /boot/efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg

网络配置

根据实际情况配置:

DHCP 配置

1
2
3
4
5
6
7
8
9
10
11
cat << EOF > /etc/systemd/network/20-ethernet.network
[Match]
Name=en*
Name=eth*

[Link]
RequiredForOnline=routable

[Network]
DHCP=ipv4
EOF

静态 IP 配置

1
2
3
4
5
6
7
8
9
10
11
12
cat << EOF > /etc/systemd/network/20-ethernet.network
[Match]
Name=en*
Name=eth*

[Link]
RequiredForOnline=routable

[Network]
Address=ip地址/子网掩码网络号位数
Gateway=网关
EOF

网络服务开机自启

1
systemctl enable systemd-networkd

passwd设置root用户密码

确保每次启动时 DNS 配置正确(个人喜好)

1
echo "echo 'nameserver 8.8.8.8' > /etc/resolv.conf" >> /etc/profile

至此,Arch Linux 安装和基本配置已完成

接着在VPS控制面板强制重启VPS即可

期间阅读的文档:

https://wiki.archlinuxcn.org/wiki/从现有_Linux_发行版安装_Arch_Linux