简介

本人使用腾讯的轻量云服务器,但是发现选择轻量云的最低配置时,使用常用的发行版作为服务器时,系统服务较多会导致资源占用较大,而Archlinux可以高度自定义,只安装自己需要的组件,不需要的组件就不安装,尽可能的减小系统资源占用。并且在系统出现Kernel Panic的情况,可以保留所有数据修复系统,其他发行版可能就需要重装系统。

但是腾讯轻量云默认没有提供Archlinux的系统,所以我尝试自己安装Archlinux,并且记录完整的流程

要求

要求服务器平台必须支持VNC控制,例如腾讯云支持VNC控制,如图:

腾讯云控制面板

阿里的轻量云服务器的VNC控制的位置和腾讯云不同,阿里的VNC叫作“救援模式”,并且需要先设置VNC密码,由于本人现在没有阿里云的服务器,就不展开讲了。

如果是使用其他厂家的服务器,只要可以连接VNC控制服务器也可以进行这个操作

系统建议UbuntuDebian,在大部分的厂家都会提供这两个系统,我测试过多次使用CentOS在调整分区时会出现问题,所以建议使用这两个系统。

原理

修改硬盘分区,在原有硬盘的后方加上一个分区,用来存放Archlinux Live系统的文件,重启后通过grub引导进入Live系统进行安装

修改硬盘分区

首先需要检查现在的分区情况

硬盘分区情况

从图中可以看出,现在这块硬盘的名称是vda,一般服务器的虚拟磁盘都是使用vda命名,如果有不一样请自行辨别;然后从Disklabel这一行可以看出当前分区表结构是dos,也就是MBR,那么就是使用传统BIOS引导;如果看到是gpt,那么就需要使用UEFI引导,接下来就需要调整分区,先将分区缩小,大约缩小1-2G就可以了;注意:这里使用parted调整分区大小,如果你输入了parted提示找不到指令,就需要先安装parted软件包

安装parted

这一步只有在提示找不到parted指令时需要操作

Ubuntu/Debian下的操作

sudo apt update
sudo apt install parted

CentOS/REHL下的操作

sudo yum install parted

调整分区

图中划红线的部分是需要输入的,End后面输入的值根据方括号中的值计算,我这里提示[42.9GB],减小2G并且取整,就填入40GB

硬盘调整分区

修改完成后输入quit退出parted

退出parted

接下来使用fdisk创建一个新的分区

fdisk /dev/vda

进入fdisk后,输入n,然后多次按回车直到提示Created a new partition ...

创建新的分区

创建完成后,输入w,按下回车,将更改写入磁盘。

写入分区到磁盘

写入完成后,不用格式化这个分区,在下一步我们写入一个镜像就可以了

获取Archlinux安装镜像

首先使用命令获取镜像

wget https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/latest/archlinux-x86_64.iso -O archlinux.iso

下载镜像

下载完镜像之后,就需要将镜像写入到我们创建的分区中,填写目标设备时一定要仔细确认,防止刷错分区导致无法引导;该步骤会因为硬盘性能影响需要的时间,时间比较久的话请耐心等待

dd if=archlinux.iso of=/dev/vda2 status=progress

写入镜像

修改引导配置文件

写入完镜像后,我们需要使服务器能引导进入这个镜像,而腾讯云服务器的grub默认会进入当前的系统,并且很难进入grub终端,那么就需要修改grub配置文件使其不引导进当前系统

vim /boot/grub/grub.cfg

向下翻页,找到menuentry开头的部分

grub配置文件

将下方的linuxinitrd注释,这样就可以不自动引导

grub注释后

修改完成后,输入:wq!保存并退出,注意这个文件提示只读,所以需要加上!符号强制写入,完成后就可以输入reboot命令重启系统

使用VNC连接并引导

重启后进入服务器面板使用VNC连接服务器,稍等片刻后会出现grub菜单

进入grub菜单

按下C进入grub command模式,并输入指令:

set root=(hd0,2)
source /boot/grub/grub.cfg

grub指令

输入后没有报错就可以按下Esc,这时grub菜单中出现更多的选项

grub新菜单

选择Archlinux并回车,系统将会进行引导

进入Live系统进行修改

稍等片刻后,就进入Live系统了

进入Live系统

我觉得在VNC中操作比较麻烦,所以可以使用ssh连接,首先需要设置root密码

设置Live的root密码

同时要设置允许ssh通过密码连接,编辑sshd配置文件

vim /etc/ssh/sshd_config

找到PasswordAuthentication no

允许密码登录

将no修改为yes,并保存退出

修改后允许密码登录

修改完后,重启sshd服务

systemctl restart sshd

接下来就可以连接了,如果出现下面这个错误:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256:xxxxxxxxx
Please contact your system administrator.
Add correct host key in C:\\Users\\SCH/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\\Users\\SCH/.ssh/known_hosts:5
Host key for XX.XX.XX.XX has changed and you have requested strict checking.
Host key verification failed.

就说明这个服务器的ssh密钥不在客户端的信任列表中,一般是服务器的ssh密钥改变时出现,只需要删除信任列表即可

Windows

del .ssh\known_hosts

Linux

rm .ssh/known_hosts

再次连接就可以进入了

SSH连接Live

为Archlinux系统分区

首先进入fdisk

fdisk /dev/vda

编辑硬盘分区

出现了红色的内容,意思是说当前硬盘正在使用,这个我们其实可以不用担心,因为我们正在用的就是后面的Live分区,而现在要操作的是前面部分的区域。

删除原系统分区

删除原系统的分区,删除前请仔细确认,当前存镜像的分区在Live系统中千万不能删除

删除分区

创建新的分区

首先需要创建一个新的系统分区,分区大小为硬盘总大小-5GB,我将分区设为35GB

创建系统分区

然后创建一个交换分区,将剩余空间都分配即可

创建交换分区

创建完后,建议修改分区类型,后期如果要编辑就可以更好的辨认

修改分区类型

操作完成后,将更改写入硬盘

写入硬盘更改

格式化分区并挂载

格式化系统分区

mkfs.ext4 /dev/vda1

格式化系统分区

挂载系统分区

mount /dev/vda1 /mnt

格式化交换分区

mkswap /dev/vda2

启用交换分区

swapon /dev/vda2

修改pacman源

安装需要通过pacman获取软件包,一般需要修改镜像源加快下载速度,编辑配置文件

vim /etc/pacman.d/mirrorlist

删除所有的镜像源,添加一个镜像源,保存并退出

Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch

修改镜像源

修改完后,需要更新镜像源缓存

pacman -Syy

更新缓存

安装系统软件包

pacstrap -K /mnt base linux linux-firmware

软件包安装完成

生成文件系统表

这个操作非常重要,fstab用来自动挂载分区,不生成将会导致系统分区挂载异常

genfstab -U /mnt >> /mnt/etc/fstab

进入新系统

这时候需要进入新系统的目录中进行配置

arch-chroot /mnt

安装必要软件包

pacman -S vim networkmanager dhclient openssh grub

配置新系统基本信息

设置主机名

vim /etc/hostname

在其中写入主机名,这里可以自定义

设置语言生成配置

vim /etc/locale.gen

找到en_US.UTF-8并取消注释,修改完成后生成语言

locale-gen

设置系统语言

vim /etc/locale.conf

写入内容:

LANG=en_US.UTF-8

启用服务

启用网络服务,使机器可以联网

systemctl enable NetworkManager

启用ssh服务器,使我们可以连接服务器

systemctl enable sshd

启用服务

修改ssh配置

如果需要通过ssh并使用root登录,就需要修改配置使ssh允许root登录

vim /etc/ssh/sshd_config

ssh配置文件

找到PermitRootLogin这一行,取消注释,并将后面的值改为yes

ssh新配置文件

设置root密码

这时候设置root密码很重要,如果不设置密码,就无法登录系统

设置密码

安装grub引导并生成配置

安装引导:

grub-install --target=i386-pc /dev/vda

安装引导

生成引导配置文件

grub-mkconfig -o /boot/grub/grub.cfg

生成引导配置文件

安装完成

到这里就已经安装完成了,接下来就可以重启进入新系统了

重启进入新系统

稍等片刻,出现这个内容就是启动成功了

启动成功

特别感谢

感谢STON提供服务器支持

结尾

这就是这篇文章的全部内容了,这块内容我研究了很久,如果大家有疑问可以在下方评论区讨论,感谢您耐心阅读