简介
本人使用腾讯的轻量云服务器,但是发现选择轻量云的最低配置时,使用常用的发行版作为服务器时,系统服务较多会导致资源占用较大,而Archlinux可以高度自定义,只安装自己需要的组件,不需要的组件就不安装,尽可能的减小系统资源占用。并且在系统出现Kernel Panic的情况,可以保留所有数据修复系统,其他发行版可能就需要重装系统。
但是腾讯轻量云默认没有提供Archlinux的系统,所以我尝试自己安装Archlinux,并且记录完整的流程
要求
要求服务器平台必须支持VNC控制,例如腾讯云支持VNC控制,如图:
阿里的轻量云服务器的VNC控制的位置和腾讯云不同,阿里的VNC叫作“救援模式”,并且需要先设置VNC密码,由于本人现在没有阿里云的服务器,就不展开讲了。
如果是使用其他厂家的服务器,只要可以连接VNC控制服务器也可以进行这个操作
系统建议Ubuntu或Debian,在大部分的厂家都会提供这两个系统,我测试过多次使用CentOS在调整分区时会出现问题,所以建议使用这两个系统。
原理
修改硬盘分区,在原有硬盘的后方加上一个分区,用来存放Archlinux Live系统的文件,重启后通过grub引导进入Live系统进行安装
修改硬盘分区
首先需要检查现在的分区情况
从图中可以看出,现在这块硬盘的名称是vda,一般服务器的虚拟磁盘都是使用vda命名,如果有不一样请自行辨别;然后从Disklabel这一行可以看出当前分区表结构是dos,也就是MBR,那么就是使用传统BIOS引导;如果看到是gpt,那么就需要使用UEFI引导,接下来就需要调整分区,先将分区缩小,大约缩小1-2G就可以了;注意:这里使用parted调整分区大小,如果你输入了parted提示找不到指令,就需要先安装parted软件包
安装parted
这一步只有在提示找不到parted指令时需要操作
Ubuntu/Debian下的操作
1 | sudo apt update |
CentOS/REHL下的操作
1 | sudo yum install parted |
调整分区
图中划红线的部分是需要输入的,End后面输入的值根据方括号中的值计算,我这里提示[42.9GB],减小2G并且取整,就填入40GB
修改完成后输入quit退出parted
接下来使用fdisk创建一个新的分区
1 | fdisk /dev/vda |
进入fdisk后,输入n,然后多次按回车直到提示Created a new partition ...
创建完成后,输入w,按下回车,将更改写入磁盘。
写入完成后,不用格式化这个分区,在下一步我们写入一个镜像就可以了
获取Archlinux安装镜像
首先使用命令获取镜像
1 | wget https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/latest/archlinux-x86_64.iso -O archlinux.iso |

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

修改引导配置文件
写入完镜像后,我们需要使服务器能引导进入这个镜像,而腾讯云服务器的grub默认会进入当前的系统,并且很难进入grub终端,那么就需要修改grub配置文件使其不引导进当前系统
1 | vim /boot/grub/grub.cfg |
向下翻页,找到menuentry开头的部分
将下方的linux和initrd注释,这样就可以不自动引导
修改完成后,输入:wq!保存并退出,注意这个文件提示只读,所以需要加上!符号强制写入,完成后就可以输入reboot命令重启系统
使用VNC连接并引导
重启后进入服务器面板使用VNC连接服务器,稍等片刻后会出现grub菜单
按下C进入grub command模式,并输入指令:
1 | set root=(hd0,2) |

输入后没有报错就可以按下Esc,这时grub菜单中出现更多的选项
选择Archlinux并回车,系统将会进行引导
进入Live系统进行修改
稍等片刻后,就进入Live系统了
我觉得在VNC中操作比较麻烦,所以可以使用ssh连接,首先需要设置root密码
同时要设置允许ssh通过密码连接,编辑sshd配置文件
1 | vim /etc/ssh/sshd_config |
找到PasswordAuthentication no
将no修改为yes,并保存退出
修改完后,重启sshd服务
1 | systemctl restart sshd |
接下来就可以连接了,如果出现下面这个错误:
1 | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
就说明这个服务器的ssh密钥不在客户端的信任列表中,一般是服务器的ssh密钥改变时出现,只需要删除信任列表即可
Windows
1 | del .ssh\known_hosts |
Linux
1 | rm .ssh/known_hosts |
再次连接就可以进入了
为Archlinux系统分区
首先进入fdisk
1 | fdisk /dev/vda |

出现了红色的内容,意思是说当前硬盘正在使用,这个我们其实可以不用担心,因为我们正在用的就是后面的Live分区,而现在要操作的是前面部分的区域。
删除原系统分区
删除原系统的分区,删除前请仔细确认,当前存镜像的分区在Live系统中千万不能删除
创建新的分区
首先需要创建一个新的系统分区,分区大小为硬盘总大小-5GB,我将分区设为35GB
然后创建一个交换分区,将剩余空间都分配即可
创建完后,建议修改分区类型,后期如果要编辑就可以更好的辨认
操作完成后,将更改写入硬盘
格式化分区并挂载
格式化系统分区
1 | mkfs.ext4 /dev/vda1 |

挂载系统分区
1 | mount /dev/vda1 /mnt |
格式化交换分区
1 | mkswap /dev/vda2 |
启用交换分区
1 | swapon /dev/vda2 |
修改pacman源
安装需要通过pacman获取软件包,一般需要修改镜像源加快下载速度,编辑配置文件
1 | vim /etc/pacman.d/mirrorlist |
删除所有的镜像源,添加一个镜像源,保存并退出
1 | Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch |

修改完后,需要更新镜像源缓存
1 | pacman -Syy |

安装系统软件包
1 | pacstrap -K /mnt base linux linux-firmware |

生成文件系统表
这个操作非常重要,fstab用来自动挂载分区,不生成将会导致系统分区挂载异常
1 | genfstab -U /mnt >> /mnt/etc/fstab |
进入新系统
这时候需要进入新系统的目录中进行配置
1 | arch-chroot /mnt |
安装必要软件包
1 | pacman -S vim networkmanager dhclient openssh grub |
配置新系统基本信息
设置主机名
1 | vim /etc/hostname |
在其中写入主机名,这里可以自定义
设置语言生成配置
1 | vim /etc/locale.gen |
找到en_US.UTF-8并取消注释,修改完成后生成语言
1 | locale-gen |
设置系统语言
1 | vim /etc/locale.conf |
写入内容:
1 | LANG=en_US.UTF-8 |
启用服务
启用网络服务,使机器可以联网
1 | systemctl enable NetworkManager |
启用ssh服务器,使我们可以连接服务器
1 | systemctl enable sshd |

修改ssh配置
如果需要通过ssh并使用root登录,就需要修改配置使ssh允许root登录
1 | vim /etc/ssh/sshd_config |

找到PermitRootLogin这一行,取消注释,并将后面的值改为yes
设置root密码
这时候设置root密码很重要,如果不设置密码,就无法登录系统
安装grub引导并生成配置
安装引导:
1 | grub-install --target=i386-pc /dev/vda |

生成引导配置文件
1 | grub-mkconfig -o /boot/grub/grub.cfg |

安装完成
到这里就已经安装完成了,接下来就可以重启进入新系统了
稍等片刻,出现这个内容就是启动成功了
特别感谢
感谢STON提供服务器支持
结尾
这就是这篇文章的全部内容了,这块内容我研究了很久,如果大家有疑问可以在下方评论区讨论,感谢您耐心阅读









