buyvm这家的小鸡后台功能挺丰富的,有挂载iso的功能,所以折腾一下装个邪教玩玩?
安装的大部分步骤和官方的wiki差不多,主要是后面的网络配置和一些需要注意的小细节。
理论上支持dhcp,有vnc,有挂载iso功能的小鸡都可以使用这个方法安装archlinux。其实archlinux也可以从现有的linux直接安装,不过本文暂不介绍这种安装方式。
archlinux和其他linux发行版比较起来的话,安装方面是全命令行的,没有图形化界面给你使用。所以在VNC下面也是用命令行,安装步骤较复杂,需要你有一点linux的基础。
首先在buyvm后台挂载iso:
在这里找一个iso直链的地址:
https://www.archlinux.org/download/
例如:
https://mirrors.edge.kernel.org/archlinux/iso/2020.08.01/archlinux-2020.08.01-x86_64.iso
然后上传上去:
把机器的启动顺序改为CDROM在第一位:
重要:把机器关机,再重新启动,否则启动项的顺序无法应用更改。
现在访问VNC正常的话应该可以看到如下内容:
首先测试有没有网络:
ping google.com
buyvm是支持dhcp的,并且archiso里面默认也是使用systemd-networkd来配置dhcp,所以这里肯定是有网络的。
如果你测试没有网络的话,那么就需要配置静态地址了,这里本文不做叙述,具体的步骤可以看官方的wiki。
启用NTP时间同步:
timedatectl set-ntp true timedatectl status
删除所有分区表:
wipefs -a /dev/vda
开始分区:
fdisk /dev/vda
机器只有20G硬盘,所以这里我只创建2个分区,一个swap,一个/。首先来创建swap分区:
分区类型要改为swap,最后按w保存退出:
接下来再创建一个/分区,划分硬盘剩下的所有空间即可:
创建swap并挂载:
mkswap /dev/vda1 swapon /dev/vda1
创建文件系统并挂载到/mnt:
mkfs.ext4 /dev/vda2 mount /dev/vda2 /mnt
安装基本系统和一些软件:
pacstrap /mnt base linux linux-firmware nano openssh grub
根据你的需要这里还可以安装更多的软件包,个人建议装个nano编辑器/openssh/grub就差不多了。
完成之后生成fstab:
genfstab -U /mnt >> /mnt/etc/fstab
现在你可以chroot到刚装的新系统了:
arch-chroot /mnt
设置root密码:
passwd
设置时区:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc
本地化设置:
nano /etc/locale.gen
去掉下面的注释:
en_US.UTF-8 UTF-8
重新生成配置:
locale-gen
创建locale.conf配置文件:
nano /etc/locale.conf
写入如下配置:
LANG=en_US.UTF-8
设置hostname:
echo imlala > /etc/hostname
编辑hosts列表:
nano /etc/hosts
写入如下配置:
127.0.0.1 localhost ::1 localhost 127.0.0.1 imlala
接下来我们还需要配置网络,否则机器重启后是没有网络的。
网络的配置有多种可行的方案,你并不一定需要完全照搬我的配置。
archlinux支持很多网络管理软件,例如netctl/networkmanager/systemd-networkd。这里我选择使用systemd-networkd。
说下原因吧:
1.systemd-networkd无需额外安装,默认就自带了。
2.配置语法很简单。
3.systemd自家的兄弟,就算你用netctl/networkmanager,到时候还是要调用systemd来管理服务。
在开始配置之前,我们要知道:systemd-networkd默认是不会接管你的DNS设置的。(意味着它不会分配DHCP给你的DNS地址)
如果你要让systemd-networkd接管DNS设置的话还需要用到:systemd-resolved
但我个人觉得systemd-resolved有点多余,为了简便不如直接改:
nano /etc/resolv.conf
在里面设置你需要的DNS服务器地址就行了:
nameserver 8.8.8.8 nameserver 8.8.4.4
接下来用ip a看看接口的名字,有ens3和ens4,那就ens3用于外网,ens4用于内网吧:
新建systemd-networkd的配置文件:
nano /etc/systemd/network/ens3.network
之前说过buyvm这家的网络是支持dhcp的,但是他们的ipv6不支持dhcp,所以这里的ipv6配置静态地址,ipv4直接用dhcp。
一个示例配置:
[Match] Name=ens3 [Network] DHCP=ipv4 Address=2605:6400:0020:16f0:0008:0008:0008:0008/48 Gateway=2605:6400:20::1
ipv6的网关/子网掩码这些信息都可以通过buyvm的后台查看到:
注意子网掩码,systemd-networkd没有netmask这种配置项,取而代之的是使用掩码位。既上面配置的/48。
同时buyvm不会路由你的整个子网,你需要添加指定的ipv6地址到你的机器内,例如我下图配置的地址:
外网的配置就完成了,buyvm还支持内网通信,默认会给你的机器分配一个内部ip:
所以我们再新建一个systemd-networkd配置文件:
nano /etc/systemd/network/ens4.network
写入如下配置:
[Match] Name=ens4 [Network] Address=172.16.x.x/16
为什么掩码位是/16?从buyvm的wiki换算来的:
https://wiki.buyvm.net/doku.php/networking#ipv4_private
设置systemd-networkd的开机启动即可完成网络这块的配置:
systemctl enable systemd-networkd
接下来我们需要对openssh的配置做一点修改。刚才我们安装的openssh默认不允许root登录,所以编辑如下配置文件:
nano /etc/ssh/sshd_config
修改下面的配置:
PermitRootLogin yes
设置openssh的开机自启即可:
systemctl enable sshd
别忘了最后我们还需要安装grub并生成grub配置文件:
grub-install /dev/vda grub-mkconfig -o /boot/grub/grub.cfg
在完成上述这些步骤后,我们就可以退出这个chroot了:
exit
取消挂载的文件系统然后重启机器就大功告成了:
umount -R /mnt reboot
使用SSH登录上来简单测试一下系统各方面是不是正常的:
本来我不应该表明自己的立场,但出于善意的提醒,个人不建议使用archlinux在服务器上,尤其是你打算用来跑生产环境的机器。(像我这样随便玩玩的小鸡那当然无所谓)
服务器环境追求的是稳定,而不是追新,archlinux的滚动更新与服务器环境所追求的这个目标显然是格格不入的。
最新评论
5211314
能不能教我 一点不会