删除 PVE 中已失效的存储

当把硬盘从 PVE 主机直接拆除而没提前从 PVE 面板中删除,会在存储面板显示错误图标,这时手动删除存储会直接报 not a valid block device 的错。

删除存储报错

很多人觉得 PVE 复杂的原因主要就是因为 PVE 有很多操作需要用命令去完成,就比如上面这个删除失效存储的情况,可以简单地提示个强制删除就能解决问题,而 PVE 却产生了一个不明所以的错误提示。

其实此时要想正常完成删除动作,只需要执行几条命令就行,但这个错误提示让人没有头绪,我还是在官方论坛找到的解决方法。

PVE Mount

在 PVE 中,支持了四种存储类型:LVM、LVM Thin、Directory 和 ZFS。我最常用的还是 Directory,虽然基于文件的存储会带来一些性能的损失,但真的简单实用。Directory 类型是万能的,所有东西都可以在 Directory 中创建。

Directory 使用的 systemd 管理的挂载点,配置文件都存储在 /etc/systemd/system 目录, 我们打开一个配置文件看看:

1
2
3
4
5
6
7
8
9
10
11
12
root@svc:/etc/systemd/system# cat mnt-pve-storage.mount 
[Install]
WantedBy=multi-user.target

[Mount]
Options=defaults
Type=xfs
What=/dev/disk/by-uuid/0c389bee-ddd9-4010-800f-99dfdb6104d7
Where=/mnt/pve/storage

[Unit]
Description=Mount storage 'storage' under /mnt/pve

真的非常简单,以后有挂载需要可以参考这种方式,不用再搞 fstab 那一套了。

删除存储

既然知道是使用 systemd 进行管理,那是不是可以使用 systemctl 来进行操作?没错,是这样的。

我们使用 systemctl 停用挂载并禁用自动启动后,就可以删除掉配置文件了,命令如下:

1
2
3
systemctl stop mnt-pve-<name>.mount
systemctl disable mnt-pve-<name>.mount
rm /etc/systemd/system/mnt-pve-<name>.mount

执行完后,Directory 列表就不存在个这个目录了。

执行命令后的 Directory 列表

此时如果左边的存储列表还存在该存储,只要去 Storage 页面删除掉对应的存储就行。

引用

  1. How i can remove directory-entry from gui?
  2. systemd.mount 中文手册
作者

Jakes Lee

发布于

2023-09-25

更新于

2023-10-12

许可协议

评论