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



KVM虚拟化VPS如何安装Arch Linux

Comments

Popular posts from this blog

Ubuntu 16.04 LTS提供snap包格式以加快软件包更新

Linux系统安装WordPress.com Desktop App桌面客户端

Ubuntu使用xCHM和kchmViewer阅读 CHM 文档