刚刚升级完的Ubuntu24.04系统,发现目录下所有图片,不光是 webp,连 JPG/PNG 图片也全都是紫色占位图标了,还有就是PDF文件都一样,就是无法显示预览图。
核心背景:Ubuntu 24.04 新增的安全机制
Ubuntu 24.04 引入了 kernel.apparmor_restrict_unprivileged_userns 这个内核开关,默认设为 1,也就是强制限制普通用户创建 “非特权用户命名空间”。
- 用户命名空间(User Namespaces) 是 Linux 的一项技术,它允许普通用户创建隔离的 “迷你环境”(沙箱),让程序在里面运行,和系统其他部分隔离开,提升安全性。
- 但这项技术也被恶意软件利用来提权,所以 Ubuntu 24.04 默认直接给它加上了全局限制,普通用户无法创建这种沙箱。
为什么这个限制会导致 Nautilus 无法生成缩略图?
Nautilus 生成缩略图时,依赖 Bubblewrap(bwrap) 工具,它正是用 “用户命名空间” 来创建临时沙箱,在隔离环境中调用 gdk-pixbuf-thumbnailer、webp-pixbuf-loader 等解码器生成缩略图。
当 kernel.apparmor_restrict_unprivileged_userns=1 时:
bwrap尝试创建沙箱失败- Nautilus 无法调用任何缩略图生成器
- 所有图片(JPG/PNG/WebP)都只能显示紫色占位图标,即使解码器和文件本身都是完好的
而 Ubuntu 22.04 里,这个限制开关不存在,或者默认是关闭的,所以 Nautilus 可以正常使用 bwrap 生成缩略图。
解决方法
方案一、添加命令参数实现全局关闭
先通过命令临时测试一下,是否可行再进一步操作
1.临时解除限制(重启后失效,先测试是否生效)
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
2. 清除失败的缩略图缓存(关键!强制让 Nautilus 重试生成)
rm -rf ~/.cache/thumbnails/fail/*
rm -rf ~/.cache/thumbnails/normal/* ~/.cache/thumbnails/large/*
3.重启 Nautilus
nautilus -q
4.测试一下缩略图是否恢复正常。如果生效,再设置永久生效:
直接通过写入参数到配置文件中让其全局生效。如果文件不存在可以手动创建
echo 'kernel.apparmor_restrict_unprivileged_userns=0' | sudo tee /etc/sysctl.d/99-allow-unprivileged-userns.conf
sudo sysctl -p /etc/sysctl.d/99-allow-unprivileged-userns.conf
即可生效
为什么 Ubuntu22.04 没问题?
因为:
- Ubuntu 22.04 没有 unprivileged_userns 这个 AppArmor 配置
- 22.04 允许程序自由使用 user namespace
- 所以缩略图正常
Ubuntu 24.04 为了防内核提权漏洞,强行加了这层限制,结果误伤了桌面功能。
为什么这个配置会让缩略图变紫色方块?

Nautilus 生成缩略图的流程:
- Nautilus 想生成缩略图
- 调用
bwrap沙箱 bwrap需要创建 user namespace- 被这个 AppArmor 配置拒绝了
- 缩略图生成失败 → 显示紫色图标
这就是你看到的现象。