适用于: 内存1.5GB以上的机器
我在Vultr 开了一台2GB的机器进行演示,预装了Debian系统
预装其他系统也可以,我更推荐Debian
准备工作
1. 确定启动方式:传统BIOS还是UEFI?
ls /sys/firmware/efi
如果提示No such file or directory就是传统BIOS启动,否则就是UEFI
我这台机器是UEFI启动
2. 确定当前系统的根分区
使用 df -hT
命令查看
可以看到根分区是 /dev/vda2
,即第一个硬盘的第二个分区,在grub中表示为(hd0,2)
3.确定是DHCP还是静态IP
执行 ip addr
查看网卡
如果活动网卡有dynamic字眼说明是DHCP,否则是静态IP
如果是静态IP,把ip地址,子网掩码以及网关记下来
我这台机器是DHCP
下载ISO镜像
前往Linux镜像网站: mirrors.edge.kernel.org
下载archlinux的ISO镜像文件
这里以archlinux-2024.06.01-x86_64.iso为例
使用ssh工具连接你的VPS
mkdir /iso && cd /iso
wget https://mirrors.edge.kernel.org/archlinux/iso/latest/archlinux-2024.06.01-x86_64.iso
配置GRUB
接下来,为了能够从ISO启动,我们需要编辑GRUB配置.
在 /etc/grub.d/40_custom
文件中添加Arch Linux启动条目(根据你的情况修改,不能照搬):
cat << EOF >> /etc/grub.d/40_custom
menuentry "Arch Linux ISO" {
set root=(hd0,2)
set isofile="/iso/archlinux-2024.06.01-x86_64.iso"
loopback loop \$isofile
echo "Starting \$isofile..."
linux (loop)/arch/boot/x86_64/vmlinuz-linux img_dev=/dev/vda2 img_loop=\$isofile copytoram=y
initrd (loop)/arch/boot/x86_64/initramfs-linux.img
}
EOF
**copytoram=y这个选项是非常必要的,其作用是将airootfs文件(初始的根文件系统)复制到内存中运行,这样才能给硬盘重新分区和格式化!**想了解更多启动参数请查阅: README.bootparams
airootfs是Arch Linux安装过程中使用的临时根文件系统。这个文件系统包含了安装Arch Linux所需的最小系统环境,包括必要的命令行工具、库文件和其他组件,以便用户可以通过这个环境完成硬盘分区、文件系统格式化、安装基础系统包等一系列安装步骤.
更新GRUB配置
如果是Debian或者Ubuntu系统,执行 update-grub
其他系统: grub-mkconfig -o /boot/grub/grub.cfg
VNC控制台操作
在你的VPS商家官网的控制面板找到VNC控制台并打开,先等VNC窗口加载出来
VNC窗口加载出来后,然后 reboot
重启机器,接着立即在VNC窗口里按键盘上下箭头,会看到GRUB的菜单
按键盘向下箭头选择我们自定义配置的"Arch Linux ISO",回车启动
稍等一会后会看到:
接下来我们可以开始安装arch linux了
请立刻 passwd
修改密码,输入一个能记住的密码就好
商家提供的VNC窗口敲命令不太舒服,接下来用ssh工具以root用户和刚才修改的密码登陆机器
注意,如果你发现这时候ping不通机器,多半是因为你的机器用静态ip,需要在VNC里手动配置一下网卡
vim /etc/systemd/network/20-ethernet.network
输入以下内容
[Match]
Name=en*
Name=eth*
[Link]
RequiredForOnline=routable
[Network]
Address=ip地址/子网掩码网络号位数
Gateway=网关
:wq 保存退出
systemctl restart systemd-networkd #重新加载网络
安装过程
硬盘分区并格式化
使用 fdisk
工具进行分区,这里将分两个区
fdisk /dev/vda
如果是UEFI模式,按g创建gpt分区标签; 如果是传统BIOS模式,按o创建dos分区标签;剩下的步骤都一样
Command (m for help): g
Created a new GPT disklabel (GUID: 5DAC88AF-D3E8-40B0-B8D8-765DA1FF71CD).
The device contains 'gpt' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.
Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-115343326, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-115343326, default 115341311): +100M
Created a new partition 1 of type 'Linux filesystem' and of size 100 MiB.
Partition #1 contains a vfat signature.
Do you want to remove the signature? [Y]es/[N]o: Y
The signature will be removed by a write command.
Command (m for help): n
Partition number (2-128, default 2):
First sector (206848-115343326, default 206848):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (206848-115343326, default 115341311):
Created a new partition 2 of type 'Linux filesystem' and of size 54.9 GiB.
按p输出分区结果,按w保存分区信息
/dev/vda1是引导分区, /dev/vda2是根分区
按q退出fdisk
格式化分区
mkfs.fat -F32 /dev/vda1
mkfs.ext4 /dev/vda2
/dev/vda1是引导分区,必须是fat格式
/dev/vda2是将来系统的根分区
挂载根分区,准备开始正式安装
mount /dev/vda2 /mnt
配置镜像源
vim /etc/pacman.d/mirrorlist
选择一个合适的镜像源即可
初始化 Pacman 密钥:
pacman-key --init
pacman-key --populate archlinux
同步软件包数据库并安装基础系统
pacman -Sy
pacstrap /mnt base linux
生成文件系统表
genfstab -U /mnt > /mnt/etc/fstab
切换到新系统的根目录
arch-chroot /mnt
配置 DNS
echo 'nameserver 8.8.8.8' > /etc/resolv.conf
安装常用软件包
pacman -S vim openssh grub bash-completion htop curl wget neofetch
设置时区和硬件时钟
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc
配置主机名和 hosts 文件
echo "archlinux" > /etc/hostname
cat << EOF > /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 archlinux.localdomain archlinux
EOF
配置 GRUB 引导加载程序(最重要)
根据 BIOS 或 UEFI 配置 GRUB
传统BIOS
grub-install /dev/vda
grub-mkconfig -o /boot/grub/grub.cfg
UEFI
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 配置
cat << EOF > /etc/systemd/network/20-ethernet.network
[Match]
Name=en*
Name=eth*
[Link]
RequiredForOnline=routable
[Network]
DHCP=ipv4
EOF
静态 IP 配置
cat << EOF > /etc/systemd/network/20-ethernet.network
[Match]
Name=en*
Name=eth*
[Link]
RequiredForOnline=routable
[Network]
Address=ip地址/子网掩码网络号位数
Gateway=网关
EOF
网络服务开机自启
systemctl enable systemd-networkd
passwd设置root用户密码
确保每次启动时 DNS 配置正确(个人喜好)
echo "echo 'nameserver 8.8.8.8' > /etc/resolv.conf" >> /etc/profile
至此,Arch Linux 安装和基本配置已完成
exit
退出arch-chroot环境
reboot -f
重启系统后就能够正常启动!
期间阅读的文档: