【原创】解决minio启动报ERROR Unable to use the drive ** found backend type fs, expected xl or xl-single

服务器 0

前言

由于minio报了一个安全漏洞(MinIO verify 接口敏感信息泄露漏洞分析(CVE-2023-28432)_minio 漏洞_超酸柠檬的博客-CSDN博客),以至于公司需要升级minio版本,但是我发现使用最新版本的minio后minio无法正常启动了。由于之前就是单机部署,因此这次还是单机部署,结果却启动不起来了。网上找了一圈资料说是换老版本。我真是服了,既然老版本本来就有用我为什么不用老版本……

目前使用的minio版本为:

RELEASE.2023-03-24T21-41-23Z (commit-id=74040b457b50417b58eae7cb17c63428a0e2dd44)

目前(2023年3月30号)官网下载的Linux版本的minio无法启动(坑死我了),我从GitHub上下载的minio最新版本

https://github.com/minio/minio/

https://dl.min.io/server/minio/release/linux-amd64/minio

环境准备

准备好下载完成的minio,并上传到服务器上,我这里使用的是CentOS7.9,进入用户目录,创建一个minio文件夹,将需要的东西全部丢进这个文件夹里

然后创建一个data目录,用于存放minio的文件

使用:

chmod 755 minio

赋予minio可执行权限

使用:

./minio --version > version.log

可以查看minio的当前版本号

问题复现

直接执行:

/home/dct/minio/minio server --console-address "0.0.0.0:9099"  --address "0.0.0.0:9098" /home/dct/minio/data > minio.log

结果发现居然正常启动了​(默认用户名和密码都是minioadmin)

 这可不是我想要的结果啊!!我在服务器上明明启动报错了,报的是:

ERROR Unable to use the drive /home/dct/data/minio: Drive /home/dct/data/minio: found backend type fs, expected xl or xl-single - to migrate to a supported backend visit https://min.io/docs/minio/linux/operations/install-deploy-manage/migrate-fs-gateway.html: Invalid arguments specified

这我可不甘心啊,凭什么我刚装的测试服务器能正常启动,而正式服务器上却启动失败了!!

经过我几次控制变量法测试,发现原来是使用的旧版本的minio的data路径导致的!里面的是旧版本生成的一堆文件,然后导致报错了!

但是文件还是要的啊,不能用一个新的目录就敷衍了事了,看来还是得解决这个问题。

问题解决

其实答案就在报错信息里,请看:https://min.io/docs/minio/linux/operations/install-deploy-manage/migrate-fs-gateway.html

创建minio.service

按照官方解决方案说的,首先创建/etc/systemd/system/minio.service

vi /etc/systemd/system/minio.service

将网页上的那堆信息直接复制进去

注意看一下复制到vi编辑器的结果,别漏东西了

修改其中这些配置项:

AssertFileIsExecutable改为你下载的minio的路径,比如我这边是/home/dct/minio/minio

WorkingDirectory改为旧数据的目录,比如我这边是/home/dct/minio/old-data/minio

User和Group改为当前用户的信息,比如我这边是dct

ExecStart改为minio的启动命令,比如我这边是

/home/dct/minio/minio server --console-address "0.0.0.0:9099" --address "0.0.0.0:9098" /home/dct/minio/old-data/minio

 然后:wq保存这个文件

创建/etc/default/minio

vi /etc/default/minio

修改其中的MINIO_ROOT_USER和MINIO_ROOT_PASSWORD,改为你自己的用户名和密码

MINIO_VOLUMES改为你使用数据的目录,比如我这边是/home/dct

这里还发生了一个小插曲,minio的密码要求不能少于8个字符,而我不清楚,为了省事就写了一个6位的密码,结果后面minio.service无论如何都无法启动!!搞了我近2小时,和正式服务器比对配置文件比对了好久,结果通过

journalctl -u minio.service

ERROR Unable to validate credentials inherited from the shell environment: Invalid credentials

才发现是密码问题

然后用:wq保存

使用root用户执行

systemctl start minio.service

即可启动minio

 

 

如果启动失败,可以通过systemctl status minio.service和journalctl -u minio.service看一下报错信息,可能需要将MINIO_VOLUMES添加到环境变量后再次试试

也许您对下面的内容还感兴趣: