分类
Linux

在 Azure 上使用 Arch Linux

众所周知,Azure 没有像 Vultr 一样上传 ISO 的功能(取而代之的是上传 VHD),也没有像 Vultr 一样,可以直接选择 Arch Linux 进行安装的功能。这给在 Azure 上安装 Arch 带来了不小的麻烦,不过我们仍然可以用 vps2arch 安装。

众所周知,Azure 没有像 Vultr 一样上传 ISO 的功能(取而代之的是上传 VHD),也没有像 Vultr 一样,可以直接选择 Arch Linux 进行安装的功能。这给在 Azure 上安装 Arch 带来了不小的麻烦,不过我们仍然可以用 vps2arch 安装。

注意!

这不是任何产品的官方文档、帮助或使用说明,仅代表博主个人的经验总结,难免会有疏漏和错误之处。请务必结合官方文档进行阅读,以作补充。

目前我测试过的配置是 Ubuntu 16.04 LTS 镜像 + Gen1(Gen2 UEFI 尚未测试)。Ubuntu 18 会出错(由于已经有 16.04 可用,就不深究了,而且操作一次很麻烦)。同时,内存太低会卡死,512M 内存就不要使用了,或者保证可用内存足够。具体多少我也不太清楚。

注意!

安装 Arch 会删除 VPS 上的 所有内容

注意!

安装 Arch 的过程不能由于任何原因中断,否则系统会 残废

如果你做好了准备,那么就开始吧。

首先,切换到 Root 账户,并设置密码。因为 vps2arch 会在安装结束后要求重启(sync; reboot -f),并且在安装后 无法使用 sudo,所以最好先切换到 Root。同时,务必设置密码,因为 vps2arch 会更改密码到现在的密码(默认值是 vps2arch)。为了保持目前的密码,应该设置一个密码。(Ubuntu 镜像默认是没有 Root 密码的)

其次,执行 vps2arch。按照 vps2arch 官方教程,执行一下命令:

curl -vLO http://tinyurl.com/vps2arch
chmod +x vps2arch
./vps2arch

等待几分钟,会提示转换成功。

重启。这时,再根据官方教程重启:

sync; reboot -f

请注意,SSH 连接会卡住。按下 Enter + ~. 强制退出。(来源

安装后配置

【别人装的 Arch 能用么?】是 Arch Linux CN “广为流传”的一句话。脚本装的 Arch 确实会有一些我们看不到的更改,不过这个脚本的更改似乎不算多,我们可以手工配置。首先,了解一下该脚本做了和没做的事情(对比 Installation guide):

  • 仅保留 Root 账户,密码是安装前的密码(默认 vps2arch
  • 使用 systemd-networkd 等(这里记不清)管理网路
  • 没有设置 Hosts
  • 没有设置 Hostname
  • 没有设置时区
  • 没有设置语言
  • 使用 Grub 进行引导
  • 安装默认内核
  • 安装并启用 sshd,允许 Root 登录。

根据上面的清单,可以很快进行手工 Post installation 配置,这里以我的为例:

passwd # 更改 Root 密码
hostnamectl set-hostname XXX # 更改主机名
pacman -S vim sudo # 安装 vim 和 sudo
vim /etc/hosts # 修改 Hosts
useradd -G wheel -m sysadmin # 建立管理员账户
EDITOR=/usr/bin/vim visudo # 允许 wheel 组使用 sudo
vim /etc/ssh/sshd_config # 禁止 Root 登录
systemctl reboot # 重启

其他配置,如 SSH 密钥,请自行查阅 Arch Wiki 以了解如何配置。至此,基本 Arch Linux 安装告一段落。