在低配置 VPS 上,Alpine Linux 是更好的选择,1GB 磁盘运行起来就已绰绰有余。

本文基于 Scaleway VPS 安装 Debian Linux 的操作环境,请确保你当前已进入 救援模式 (Rescue Mode)。
首先进行磁盘分区并设置挂载点:
# 彻底清空并重新分区
wipefs -a /dev/vda
parted -s /dev/vda mklabel gpt
parted -s /dev/vda mkpart ESP fat32 1MiB 51MiB
parted -s /dev/vda set 1 boot on
parted -s /dev/vda mkpart primary ext4 51MiB 100%
# 格式化文件系统
mkfs.fat -F32 /dev/vda1
mkfs.ext4 -F /dev/vda2
# 挂载并写入 Alpine Rootfs
mount /dev/vda2 /mnt
mkdir -p /mnt/boot/efi
mount /dev/vda1 /mnt/boot/efi
wget -qO- https://dl-cdn.alpinelinux.org/alpine/v3.23/releases/x86_64/alpine-minirootfs-3.23.3-x86_64.tar.gz | tar -xz -C /mnt
# 挂载系统必要目录
mount -t proc none /mnt/proc
mount -t sysfs none /mnt/sys
mount --rbind /dev /mnt/dev
mount --make-rslave /mnt/dev
# 继承 SSH 公钥(这里是在 Scaleway 控制台添加的 SSH 公钥)
mkdir -p /mnt/root/.ssh
cp /root/.ssh/authorized_keys /mnt/root/.ssh/
chmod 700 /mnt/root/.ssh
chmod 600 /mnt/root/.ssh/authorized_keys
# 进入 Chroot 环境
chroot /mnt /bin/sh
当看到命令提示符变为
/ #时,即表示已成功切入 Chroot 环境。
配置网络和镜像源:
# 设置 IPv6 DNS 解析
cat <<EOF > /etc/resolv.conf
nameserver 2606:4700:4700::1111
nameserver 2001:4860:4860::8888
EOF
# 使用官方镜像源
echo "https://dl-cdn.alpinelinux.org/alpine/v3.23/main" > /etc/apk/repositories
echo "https://dl-cdn.alpinelinux.org/alpine/v3.23/community" >> /etc/apk/repositories
配置 mkinitfs 以支持 ext4 和 blkid:
apk update && apk add mkinitfs
echo 'features="ata base ide scsi usb virtio ext4 blkid"' > /etc/mkinitfs/mkinitfs.conf
安装内核及基础工具:
apk add alpine-base \
linux-virt \
grub \
grub-efi \
efibootmgr \
e2fsprogs \
openssh \
tzdata \
util-linux \
acpid
更新 fstab 挂载表:
cat <<EOF > /etc/fstab
/dev/vda2 / ext4 rw,relatime 0 1
/dev/vda1 /boot/efi vfat rw,relatime 0 2
tmpfs /tmp tmpfs rw,nosuid,nodev 0 0
EOF
设置主机名:
echo "alpine-scw" > /etc/hostname
配置网络接口:
cat <<EOF > /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet6 auto
EOF
配置关键服务的开机自启:
for svc in devfs dmesg mdev hwdrivers; do rc-update add $svc sysinit; done
for svc in hwclock modules sysctl hostname bootmisc syslog networking; do rc-update add $svc boot; done
for svc in mount-ro killprocs savecache; do rc-update add $svc shutdown; done
rc-update add sshd default
rc-update add crond default
rc-update add acpid default
修正 GRUB 串口参数,以确保 Scaleway VNC 控制台能够正常显示:
echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab
# 配置 GRUB 引导参数
cat <<EOF > /etc/default/grub
GRUB_TIMEOUT=2
GRUB_DISABLE_OS_PROBER=true
GRUB_DISABLE_LINUX_UUID=true
GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0,115200n8 net.ifnames=0 rootfstype=ext4"
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
EOF
# 安装引导并生成配置文件
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=alpine --removable
grub-mkconfig -o /boot/grub/grub.cfg
设置 root 密码,暂时允许密码用于初次登录:
passwd root
sed -i 's/^#PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
完成所有配置后,卸载分区并关机:
# 退出 Chroot 环境
exit
cd /
umount -R /mnt
sync
poweroff
回到 Scaleway 控制台,Scaleway 控制台关闭救援模式,将启动方式切换回 Local Boot 并开机。
为进一步降低磁盘占用,建议将 syslogd 配置为使用 128KB 的内存环形缓冲区:
echo 'SYSLOGD_OPTS="-C128"' > /etc/conf.d/syslog
rc-service syslog restart
更多 Alpine Linux 的初始化步骤可参考 Alpine Linux 服务器配置指南 。






















