linux usb光驱挂载报错

最近解了一个问题,就是Linux光驱自动挂载报错

通过执行上图中的

mount-t "iso9660" -o"uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500""/dev/sr0" /mnt

发现,确实没有办法挂载。

但是通过实践发现,如果把iocharset=utf8去掉就可以挂载了。

系统中挂载光驱是

/usr/lib/udisks2/udisksd这个进程实现的,然后找到对应的src.rpm包,在src/udisklinuxfilesystem.c中可以知道系统默认的就是utf8这种编码方式,如果修改可能会造成一些隐患。

通过在我x86_64机器上挂载usb光驱发现,他是可以通过utf8方式挂载的(中间由于自己粗心,挂载时把utf8写成了uft8,导致严重的判断失误,真是不应该)。

此时就想到了可能是内核上面的一些配置选项没有打开导致的

通过在menuconfig里搜索iocharset,utf8等一些于配置相关的参数,发现在

Filesystems->Native language support中有一些相关的配置。

通过不断尝试,最终可以发现NLSUTF-8这个参数编译进内核就可以让光驱正常挂载了。

总结:

遇到问题多观察,复现现象要多分析,多尝试,找到问题的关键点。

你可能感兴趣的:(Linux)