制作LiveUSB时遭遇“System policy prevents writing a disk image to this device”错误的解决咨询
制作LiveUSB时遭遇“System policy prevents writing a disk image to this device”错误的解决咨询
看起来你遇到的是Polkit(原PolicyKit)权限限制问题,而非单纯的sudo配置问题——毕竟你已经能通过sudo gparted正常运行工具,但图形化的LiveUSB制作工具(比如常见的Startup Disk Creator)依赖Polkit处理权限,和sudo的规则是分开的。
先梳理下你已经尝试的操作,让问题更清晰:
- 已将
myuser添加到/etc/sudoers,且sudo密码输入正确 - 对目标磁盘
/dev/sdc1尝试过挂载/卸载两种状态,甚至修改了设备所有者为myuser - 图形化GParted无法直接运行,但通过
sudo gparted可以正常使用
问题原因
图形化工具通常会调用Polkit来验证用户对系统资源的操作权限,它的权限规则独立于sudo配置。即使你在sudoers里拥有全权限,Polkit默认可能仍限制普通用户直接对块设备进行写入操作,这就是你看到“System policy prevents...”错误的原因。
解决方案
这里提供几个可行的解决办法,按推荐程度排序:
方案1:修改Polkit权限规则(推荐)
创建自定义Polkit规则,允许你的用户对磁盘镜像写入操作拥有权限:
- 打开终端,创建规则文件:
sudo nano /etc/polkit-1/rules.d/50-disk-image-write.rules
- 粘贴以下内容(记得把
myuser替换成你的实际用户名):
polkit.addRule(function(action, subject) { if (action.id.indexOf("org.freedesktop.UDisks2") == 0 && subject.user == "myuser") { return polkit.Result.YES; } });
- 保存退出(按
Ctrl+O回车确认,再按Ctrl+X退出),然后重启Polkit服务:
sudo systemctl restart polkit
之后重新打开LiveUSB制作工具,应该就能正常操作了。
方案2:用sudo直接启动图形化工具
如果不想修改Polkit规则,也可以直接在终端用sudo启动对应的LiveUSB制作工具,比如:
sudo startup-disk-creator
(如果你的工具不是这个,替换成实际的工具命令即可)
方案3:将用户加入特定权限组
部分发行版中,UDisks2的权限要求用户属于disk或storage组,你可以尝试把用户加入这些组:
sudo usermod -aG disk myuser sudo usermod -aG storage myuser
执行完成后注销并重新登录,再测试LiveUSB制作工具是否正常。
补充说明
你之前修改/dev/sdc1的所有者其实没必要,因为块设备的权限是动态管理的,重启或重新插拔设备后权限会重置,而且这也绕不开Polkit的权限限制。
备注:内容来源于stack exchange,提问作者blnks
相关产品推荐
相关产品推荐

