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,在列表中选择从虚拟光驱启动。

KVM虚拟化VPS如何安装Arch Linux

接下来你就能看见Arch Linux的启动菜单了。选择第一个选项以进入Arch Linux Live环境。(建议服务器使用64位)

KVM虚拟化VPS如何安装Arch Linux

第二步:在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

为这篇文章评分
[Total: 1 Average: 2]

发表评论

电子邮件地址不会被公开。 必填项已用*标注