几天前我搭建在HostHatch的Nextcloud服务突然无法访问了。心想HostHatch此前已经连续稳定运行数年,故障大概率是我自己的设置问题或是服务器被入侵了,立马慌了。随即ssh登录服务器查看状况,结果ssh无法登录。又到控制台想通过VNC登录了解情况,结果系统卡在GRUB无法正常引导。进入GRUB救援模式,修改GRUB启动分区,加载基本模块等一通操作下来还是白忙活。ls查看设备状态,硬盘还是能读出来的。索性懒得折腾了,重装系统吧,反正本地还有备份不怕丢数据。
CentOS8目前已不受官方支持,而我又不想用Stream版的,考虑再三还是用Rocky Linux吧。
由于这次故障来的太突然,而且故障的原因又不明,卡在GRUB估计与我上次安装系统使用了自定义ISO有关。所以这次舍弃了之前通过挂载ISO的方式直接装Rocky Linux,而是先通过官方的Image重装CentOS8,再从CentOS8迁移到Rocky Linux。
从CenOS8迁移到Rocky Linux
重装完CentOS8后首先修复存储库
sed -i -r \
-e 's!^mirrorlist=!#mirrorlist=!' \
-e 's!^#?baseurl=http://(mirror|vault).centos.org/\$contentdir/\$releasever/!baseurl=https://dl.rockylinux.org/vault/centos/8.5.2111/!i' \
/etc/yum.repos.d/CentOS-*.repo
下载官方推荐的的迁移脚本文件
curl https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh -o migrate2rocky.sh
赋予脚本文件可执行权限
chmod u+x migrate2rocky.sh
执行迁移脚本
./migrate2rocky.sh -r
等待一段时间迁移成功会有提示信息,需要重启系统,然后查看系统是否迁移成功
hostnamectl
Rocky Linux下Nextcloud的部署

添加EPEL存储库
yum install epel-release
安装snapd
yum install snapd
启用管理主snap通信的systemd单元
systemctl enable --now snapd.socket
启用经典/var/lib/snapd/snap快照支持
ln -s /var/lib/snapd/snap /snap
重启系统,然后安装Nextcloud
snap install nextcloud
更改Nextcloud的HTTP端口
snap set nextcloud ports.http=**
调整PHP内存限制
snap set nextcloud php.memory-limit=512M
默认情况下用户的同步数据会放在/var/snap/nextcloud/common/文件夹下,如果需要更改数据存放路径,需要修改php配置
vi /var/snap/nextcloud/current/nextcloud/config/config.php
找到’datadirectory’ => ‘将后面的路径修改为你需要的路径
然后在路径根目录下新建一个名为“.ocdata”的空白文件,Nextcloud方可将新指定的文件夹识别为数据存放位置。
浏览器输入IP地址和服务端口登录Nextcloud,按照提示设置管理员账户和密码就大功告成了
总结了一下,这次宕机的可能原因有二:
1.我使用的自定义ISO他们在故障修复的过程中没有充分的考虑到,导致不兼容
2.上次因为要禁用IPv6而替换了GRUB引导文件,与新的宿主机不兼容,导致引导错误
总之,没有这次他们的节点故障,也就不会出现引导失败的问题。