Scaleway修改默认磁盘大小

背景

   Swaleway创建STARDUST1-S型机器时,最低只能选择10G硬盘,对于部分使用场景而言,10G的硬盘空间太大,造成了不少的浪费。

解决方案

实例启动后,按照以下步骤操作

一、新增磁盘并从救援模式进入系统

  1. 从控制台关机(注意,不能从ssh关机,ssh关机在后,无法在控制台移除磁盘);
  2. 关机后在volumes页面新增vps所在区域的磁盘,磁盘的类型选择Local storage;
  3. 创建好磁盘后,添加到对应的实例上;
  4. 进入相应的实例,Attached volumes部分,将默认的10G硬盘删除;
  5. 进入Advanced settings,选择Boot mode为Use rescue image,保存;
  6. 从控制台开机,可以在网页上的Console查看开机进度,此次开机耗时可能比较久,大概需要5分钟甚至更多;
  7. 开机成功后,可以使用ssh连接上服务器,还是使用原先的账户和密钥登录即可;

二、安装Alpine操作系统

  1. 根据参考链接[1],注意,

    1) 最新的Alpine版本可以从官网下载,选择VIRTUAL版本即可
    2) 安装系统的磁盘需要修改,例如在Scaleway中,磁盘的路径为/dev/vda

  2. 在setup-alpine过程中,默认会调用setup-disk,但是默认会创建三个分区,分别是boot分区,swap分区以及系统分区。对于小硬盘来说,如果使用默认配置,boot分区和swap分区会占用掉太多空间,最终系统分区的大小只会有700多M,为了最大限度使用磁盘空间,需要手动执行setup-disk。setup-alpine执行到选择磁盘安装位置时,先不选择磁盘,配置存放位置选择默认即可;

    1) 根据参考链接[2],可以通过设置环境变量BOOT_SIZE来指定boot分区的大小
    2) 查看setup-disk –help可知,根据传入-s参数的值可以设置swap分区的大小

  3. 执行export BOOT_SIZE=40; setup-disk -s 0,进行安装系统操作

    1) 如果出现错误

    1
    2
    3
    4
    5
    ERROR: unable to select packages:
    dosfstools (no such package):
    required by: world[dosfstools]
    grub-efi (no such package):
    required by: world[grub-efi]

    说明对应的安装包无法成功安装,可以使用命令echo 'nameserver 2a01:4f8:c2c:123f::1' >> /etc/resolv.conf修改dns为dns64,之后运行apk update,再重新执行即可。如果/dev/vda已被挂载,需要先umount对应的分区。

  4. 安装完成后,可以挂在系统分区,将ssh公钥写入到authorized_keys文件(注意.ssh目录的权限以及authorized_keys文件的权限,.ssh目录文件权限为700,authorized_keys的权限为600),重启后即可使用原先的私钥登录

  5. 从控制台关机机器,之后进入Scaleway实例控制台,选择Advanced settings页,修改Boot mode为Use Local Boot,保存,之后启动机器。如无意外的话,可以成功进入Alpine系统,也可以通过ssh连接。

三、Alpine其他使用方式记录

  1. 添加社区repositories,取消/etc/apk/repositories中community的注释即可(安装docker需要社区repositories)
  2. 使用命令rc-update add docker default可以添加docker自启动,rc-status可以查看自启动状态
  3. 使用命令modprobe tun可以启动tun功能,使用echo 'tun' >> /etc/modules添加到开机自启动
  4. 服务自启动,需要手动编写rc-service启动脚本

参考链接