长话短说,我正在使用奥布纳姆备份我的系统。
这是我的做法:
- 拍摄LVM快照
/
,,,,/usr
/boot
/var
/home
将快照挂载在
/bck-snapshots
,/bck-snapshots/usr
,/bck-snapshots/boot
,/bck-snapshots/var
上/bck-snapshots/home
运行快照备份:
obnam backup \ /bck-snapshots \ /bck-snapshots/usr \ /bck-snapshots/boot \ /bck-snapshots/var \ /bck-snapshots/home \
备份完成后,卸载步骤 2 中挂载的快照文件系统。
删除快照
问题
在备份期间,系统更新已完成,安装了新内核并执行了所有 grub2 更新。现在,当我尝试删除根快照(步骤 5.)时,我收到以下信息:
设备映射器:删除 ioctl 失败:设备或资源繁忙
因为快照根设备正忙且被另一个进程使用:
$ sudo lsof /dev/dm-6 # This is the root snapshot device.
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
grub-moun 9160 root 3r BLK 252,6 0t36339712 5295479 /dev/dm-6
问题
我猜想要删除快照,我必须停止
grub-mount
使用该设备。如何安全地做到这一点?我认为备份快照已添加到 grub 中,作为启动时显示的 grub 菜单中显示的可行选项。如果我删除相应的快照会怎样?
有什么方法可以阻止 grub 添加在 /bck-snapshots 上找到的根快照?
我必须重新启动系统才能使更新生效,但首先我必须知道这些问题的答案。
答案1
看起来像grub-mount正在尝试编辑只读文件系统并且已挂起。
发送信号要求kill
它放弃应该是安全的(发送15
,如果需要,几秒钟后发送2
,如果需要,几秒钟后发送1
,如果它仍在运行,使用-9
并报告给维护者)(如果 pid 编号发生变化,再次从 15 开始)
它可能会以非零值退出,这可能会影响等待它的脚本,但您唯一能做的就是提交错误报告并要求维护人员让它跳过只读文件系统。
请注意,有些相关错误他们正在努力。
答案2
只需杀死剩余的 grub-mount 进程即可。我也遇到过这种情况,并且杀死它没有明显的负面影响,因为相关的 update-grub 进程已经放弃了它 - 您可以通过查看剩余的 grub-mount 进程不再有父进程来轻松验证这一点。