卸载Snap/Snapd后清理残留Loop循环分区的方法及重装Snap的可行性咨询
卸载Snap/Snapd后清理残留Loop循环分区的方法及重装Snap的可行性咨询
嗨,我来帮你搞定这个问题!从你提供的lsblk输出来看,那些大小为0B的loop分区确实是卸载Snap后残留的无效设备,下面分两部分给你解决方案:
一、清理残留的Loop循环分区
这些loop设备其实已经没有对应的镜像文件了(因为你已经卸载了Snap包并清理了相关文件),只是内核还没自动移除它们,有几种方法可以彻底清理:
手动单个/批量移除
首先确认这些loop设备没有被挂载,执行命令:losetup -a如果输出里没有显示这些loop0-loop7对应的挂载点(比如
/snap/core20/xxx这类),就可以放心移除了:- 单个移除:比如移除loop0,执行
sudo losetup -d /dev/loop0,依次对loop0到loop7执行即可。 - 批量移除:用一条命令搞定所有,避免重复操作:
这里sudo for i in /dev/loop{0..7}; do losetup -d $i 2>/dev/null; done2>/dev/null是为了忽略那些已经被内核自动清理的设备带来的错误提示,不影响执行效果。
- 单个移除:比如移除loop0,执行
重启系统(最省心的方法)
如果不想手动敲命令,直接重启你的Ubuntu Server即可,系统重启后内核会自动清理这些无效的loop设备,重启后再用lsblk -a检查,应该就看不到这些0B的loop分区了。
另外补充一下你提到的卸载前最佳实践:下次如果要卸载Snap,记得先执行sudo snap remove --purge core lxd snapd(把所有已安装的Snap包都用--purge参数移除),再执行apt remove --purge snapd,这样能最大程度减少残留。
二、重装Snap的可行性
完全不用担心重装的难度!重装Snap非常简单,只需要几步:
- 先更新系统软件源:
sudo apt update - 重新安装snapd包:
sudo apt install snapd
安装完成后,snap服务会自动启动,你就可以像第一次使用一样,用sudo snap install <软件名>来安装需要的Snap应用了,和全新安装没有任何区别。
附你提供的相关命令输出参考:
卸载前的
lsblk -a输出:$ lsblk -a NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 63.5M 1 loop /snap/core20/2015 loop1 7:1 0 111.9M 1 loop /snap/lxd/24322 loop2 7:2 0 87M 1 loop /snap/lxd/27037 loop3 7:3 0 53.3M 1 loop /snap/snapd/19457 loop4 7:4 0 40.4M 1 loop /snap/snapd/20671 loop5 7:5 0 63.9M 1 loop /snap/core20/2182 loop6 7:6 0 0B 0 loop loop7 7:7 0 0B 0 loop sda 8:0 0 279.4G 0 disk ├─sda1 8:1 0 1M 0 part [...]
当前系统信息:
$ uname -a Linux ubuntu 5.15.0-83-generic #92-Ubuntu SMP Mon Aug 14 09:30:42 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
备注:内容来源于stack exchange,提问作者S.PUYGRENIER
相关产品推荐
相关产品推荐

