vps2arch!

有些 vps 服务商是不提供 Arch 系统的,但是你仍然可以通过 vps2arch 脚本将你的系统切换到 Archlinux

这个项目托管在 gitlab : https://gitlab.com/drizzt/vps2arch/

准备

读项目介绍

This script is used to convert a VPS, running another linux distro, to Arch Linux. It should be only used if your VPS provider doesn't provide you an Arch Linux image.

读项目免责

I'm not responsible for any damage in your system and/or any violation of the agreement between you and your vps provider. Use at your own risk!

准备系统

你需要有一个干净的系统,既然都要把系统重新安装成 Arch 了,提前重置一下系统不为过吧。

推荐重置为 CentOS 或者 Debain 这个脚本在 Ubuntu 18 上也许有一些问题。

开干

使用 SSH 链接到你的 VPS,在开始之前你可以修改一下 root 密码,因为 vps2arch 会将新系统的密码设置为你运行脚本之前的 root 密码

passwd root

你需要输入两次新密码,并且输入密码没有回显

接下来就是重点了,以 root 身份执行以下命令

# 下载 vps2arch 脚本
# wget https://tinyurl.com/vps2arch 也会被重定向到以下 url
wget https://gitlab.com/drizzt/vps2arch/-/raw/master/vps2arch
# 赋予执行权限
chmod +x vps2arch
# 启动脚本!
./vps2arch
# 当你从脚本默认的源下载速度较慢的时候,可以使用 -m 参数指定源,例如
# ./vps2arch -m https://mirrors.neusoft.edu.cn/archlinux/

深呼吸,不出意外的话,等待几分钟你会得到这样的提示

When you are finished with your post-installation, you'll need to reboot the VM the rough way:
        # sync ; reboot -f

Then you'll be able to connect to your VM using SSH and to login using your old root password (or "vps2arch" if you didn't have a root password).

按照提示执行 sync ; reoot -f 重启你的 VPS。

这时候你的 SSH 链接会断掉,在 VPS 重启的这几分钟里,你需要去 ~/.ssh/konwn_host 里删除掉刚刚运行 vps2arch 脚本的主机所在的行,因为换了新系统了你的电脑已经不再认识远程主机了,不这么做的话你在下次链接的时候会得到一个错误。稍等一会 ssh root@yourip 输入之前的 root 密码

Welcome to ArchLinux!

之后的配置

现在你已经得到一个崭新的 ArchLinux 系统了,接下来是在正常使用之前的一些建议,以下建议多来源于 ArchWiki .

时间设置

# 使用 ntp
timedatectl set-ntp true
# 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

设置中文

这时候你的系统还是不支持中文的,输入中文将会乱码,我们需要进行一下操作。

编辑 /etc/locale.gen 取消一下行的注释(你可能需要一个编辑器,如 vim,请自行安装)

en_GB.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
zh_TW.UTF-8 UTF-8

执行 locale-gen

创建 /etc/locale.conf 并编辑 LANG 这一 变量,比如:

LANG=en_GB.UTF-8

添加 ArchLinuxCN 源

编辑 /etc/pacman.conf ,在文件末尾添加

[archlinuxcn]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch

之后执行

pacman -Syy
pacman -S archlinuxcn-keyring

添加用户

一直使用 root 用户是不太安全的!我们来添加一个新的用户

接下来的命令中,新的用户名以 sihuan 为例,自行替换

useradd -m -G wheel sihuan

useradd 是 archlinux 系统添加用户的命令

-m 参数代表自动创建用户的家目录,这个例子里是 /home/sihuan

-G 参数意味着用户要加入一些个的附加组,这儿即 wheel

设置新用户密码

passwd sihuan

然后输入两次密码就好了

设置 sudo

首先安装 sudo

pacman -S sudo

编辑配置文件,我认为你已经安装了 vim

export EDITOR=vim
visudo

找到下面一行,取消掉注释

%wheel ALL=(ALL) ALL

配置新用户的 shell

建议大家都自己整一个 dotfiles ,具体可以看 fc 老师翻译的 这篇文章

以下就以我自己的为例,如果有时间我会详细的解释以下我的 dotfiles 包含了什么

切换到新的用户,并来到自己的家目录

su sihuan
cd

输入密码

接下来的操作就是在 sihuan 这个用户里进行的啦

# 安装需要的软件包
sudo pacman -S git stow zsh zsh-theme-powerlevel10k powerline-fonts awesome-terminal-fonts paru powerline ranger exa zsh-autosuggestions zsh-syntax-highlighting zsh-history-substring-search
# 克隆 dotfiles 仓库
git clone https://github.com/Si-Huan/dotfiles
# 切换 shell 到 zsh
chsh -s /bin/zsh
# 删除已有的 ~/.bashrc
rm ~/.bashrc
# 使 zsh 配置生效
cd dotfiles
stow zsh

这时候远程主机上的配置就完成了!再次使用 sihuan 这个用户登陆,你就会得到一个很 OK 的 shell 体验。

免密登录和 SSH 主机别名

ssh-keygen
ssh-copy-id sihuan@hostip

Edit ~/.ssh/config add:

Host hostname
    HostName hostip
    User sihuan

Then you can login your host with:

ssh hostname

And you will no longer be asked for a password.

EOF