KVM虚拟化VPS如何安装Arch Linux
这篇教程介绍如何在KVM VPS安装Arch Linux。在这里Arch Linux被用作服务器操作系统,所以我只安装服务器所需要的基本软件,不安装图形界面的东西。
第一步:从Arch Linux ISO镜像文件启动你的VPS
在KVM VPS的控制面板中找到虚拟光驱,将Arch Linux ISO镜像文件插入到虚拟光驱中。然后,在你的电脑上用VNC客户端连接到你的VPS服务器。(一般在控制面板里有VNC登录的账号密码等信息。)建立VNC连接后,在控制面板里启动你的VPS。
KVM虚拟化的VPS默认使用seaBISO作为固件,按ESC或F12键来选择从哪个设备启动VPS,在列表中选择从虚拟光驱启动。
接下来你就能看见Arch Linux的启动菜单了。选择第一个选项以进入Arch Linux Live环境。(建议服务器使用64位)
第二步:在Arch Linux live模式下连接互联网
Arch Linux的安装是需要互联网连接的。在KVM VPS中启动Arch Linux Live后你很可能会没有互联网连接。
你的主机商为你的VPS分配了一个固定IP。KVM虚拟机,也就是你的VPS可以与KVM宿主机建立静态的以太网连接,这样你的VPS就能访问互联网了。
Arch Linux建立静态的以太网连接步骤如下。
首先将ethernet-static样板文件复制到/etc/netctl目录下。
cp /etc/netctl/examples/ethernet-static /etc/netctl
然后编辑这个复制好的文件
nano /etc/netctl/ethernet-static
将文件的内容修改成如下。你需要更改红色的文字。ens3是网卡名称,你的可能有所不同,用ifconfig命令查看。KVM宿主机IP一般格式是xx.xx.xx.1,也就是网段中第1个IP。
Interface=ens3 Connection=ethernet IP=static Address=('your-vps-public-IP-address') Netmask=('255.255.255.0') Gateway=('your-kvm-host-IP') DNS=('8.8.8.8')
保存文件。然后关闭网卡。
ifconfig ens3 down
加载修改后的ethernet-static网络连接文件。
netctl start ethernet-static
现在可以访问互联网了。用ping命令检查。
ping -c6 baidu.com
第三步:创建硬盘分区
使用parted分区编辑器在/dev/sda硬盘创建MBR分区表的命令:
parted /dev/sda mklabel msdos
这篇教程创建的是GPT分区表。
parted /dev/sda mklabel gpt
然后告诉parted我们将对/dev/sda硬盘进行分区。
parted /dev/sda
如果创建的是GPT分区表,那么我们得创建一个1MiB大小的biso_grub分区,因为KVM虚拟机的默认固件是seaBIOS,不是UEFI。Grub2启动管理器将被安装到这个bios_grub分区。
bios_grub分区必须要从第64个硬盘扇区开始,前63个扇区是MBR代码专用的。但是为了分区对齐,提高硬盘读写性能我们将biso_grub分区设置从硬盘1MiB开始。使用下面的命令创建1MiB大小的分区。
mkpart primary 1MiB 2MiB
将它设为bios_grub分区。
set 1 biso_grub on
然后创建Arch Linux所需要的分区。分区方案有很多种,这篇教程只创建一个root分区。下面的命令从2MiB开始,使用所有剩余的硬盘空间作为root分区。如果你需要更复杂的分区,请自己调整。
mkpart primary 2MiB 100%
现在退出parted分区编辑器。
q
将第二个分区,也就是root分区格式化成ext4文件系统。
mkfs -t ext4 /dev/sda2
将root分区挂载到/mnt目录下。
mount /dev/sda2 /mnt
第四步:安装基本软件包
首先打开mirrorlist文件来选择Arch Linux镜像源。
nano /etc/pacman.d/mirrorlist
找到一个位置近的镜像源,然后复制它的地址,将它粘贴到文件的最上方,这样就能优先从这个镜像源下载软件包了。保存文件。
然后,使用pacstrap将base system安装在/mnt目录下,也就是/dev/sda2 root分区。
pacstrap -i /mnt base
安装完成后,生成一个文件系统表文件(fstab)。
genfstab -U -p /mnt >> /mnt/etc/fstab
chroot进入/dev/sda2根分区。
arch-chroot /mnt
生成locale。
nano /etc/locale.gen
找到en_US.UTF-8 UTF-8 以及zh_CN开头的行。去掉这些行前面的#符号。保存文件。
生成/etc/locale.conf文件,并将en_US.UTF-8设置为默认的locale。
echo LANG=en_US.UTF-8 > /etc/locale.conf export LANG=en_US.UTF-8
设置Arch Linux服务器的时区为上海。
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
Arch Linux默认启用了core, extra, community三个软件库。通常你不需要启用其他软件库。如果你真的要添加其他软件库,请编辑 /etc/pacman.conf文件。
nano /etc/pacman.conf
这篇教程不添加其他软件库
现在为root用户设置密码。
nano /etc/pacman.conf
安装grub和os-prober。
pacman -S grub os-prober
将Grub启动器安装到/dev/sda硬盘,它将自动选择bios_grub分区。
grub-install /dev/sda --target=i386-pc
生成Grub启动菜单。
grub-mkconfig -o /boot/grub/grub.cfg
退出chroot环境。
exit
重启KVM VPS。
shutdown -r now
第5步:安装后的配置
在VPS重启后,再建立一次VNC连接,以root用户登录。安装在硬盘上的Arch Linux此时无法访问互联网。所以我们得按照前面的方法建立一个静态的以太网连接。但这次我们需要对ethernet-static做一点调整。
首先将ethernet-static样板文件复制到/etc/netctl目录下。
cp /etc/netctl/examples/ethernet-static /etc/netctl
然后编辑这个复制好的文件
nano /etc/netctl/ethernet-static
硬盘上的Arch Linux网络连接必须使用CIDR,也就是在你的VPS IP地址后面添加/24,并注释掉Netmask那一行。
Interface=ens3 Connection=ethernet IP=static Address=('your-vps-public-IP-address/24') #Netmask=('255.255.255.0') Gateway=('your-kvm-host-IP') DNS=('8.8.8.8')
保存文件。然后关闭网卡。
ifconfig ens3 down
加载修改后的ethernet-static网络连接文件。
netctl start ethernet-static
现在可以访问互联网了。用ping命令检查。
ping -c6 baidu.com
创建一个用户,并加入到wheel, storage, power用户组。
useradd -m -g users -G wheel,storage,power -s /bin/bash <username>
设置用户密码。
passwd <username>
安装sudo工具。
pacman -S sudo
然后编辑/etc/sudoers文件。
EDITOR=nano visudo
找到这一行。
# %wheel ALL=(ALL) ALL
去年前面的#符号。保存文件。这表示允许wheel组的用户使用sudo来管理系统。
安装openssh
pacman -S openssh
编辑sshd_config文件。
sudo vi /etc/ssh/sshd_config
在文件末尾添加下面两行文字。将<username>修改成你的用户名。
AllowUsers <username> PermitRootLogin no
第一行的意思是允许这个用户SSH登录,第二行的意思是禁止root用户SSH登录。这个是Linux服务器的最基本的安全配置。
启动SSH服务器。
systemctl start sshd
让SSH服务器随开机启动。
systemctl enable sshd
现在,在你的电脑上用SSH客户端,尝试SSH登录。你应该可以用普通用户账号登录,root用户应该是不能直接SSH登录的。
用普通账号登录后,使用sudo,升级Arch Linux的软件包。
sudo pacman -Syu
你可能需要安装如下软件包。net-tools工具包提供了ifconfig命令。
sudo pacman -S net-tools wget parted htop
启用NTP时间同步。
timedatectl set-ntp true
好了!我们成功地在KVM VPS安装了Arch Linux来作为服务器操作系统。
本文翻译自 How To Install Arch Linux on KVM VPS