zijinyise
deepin
2021-07-29 23:46 大佬666
Reply Like 1 View the author
大佬666
大佬666
感谢抬举!![]()
Wiondws和Windwos是什么?是Windows吗?
Wiondws和Windwos是什么?是Windows吗?
是Windows,感谢指正,已修改。![]()
如果你没有自己编辑这个隐藏规则的话,在 80-udisks 下面也能找到一系列的隐藏规则
比如,NTFS 文件系统+ Recovery 卷标的u盘就会被隐藏...
发现被隐藏的时候可以用 udisksctl info -b /dev/sdX 这个命令来看看 HintIgnore 是不是 true
如果你没有自己编辑这个隐藏规则的话,在 80-udisks 下面也能找到一系列的隐藏规则
比如,NTFS 文件系统+ Recovery 卷标的u盘就会被隐藏...
发现被隐藏的时候可以用 udisksctl info -b /dev/sdX 这个命令来看看 HintIgnore 是不是 true
受教![]()
Popular Events
More
今天要用到U盘拷点东西,只听到叮咚一声,但没看到文件管理器中显示U盘。刚开始以为是显示慢,耐心等待一下,左等右等不出来。拔下重插时,系统正常提示设备已安全移除。
想到我的Deepin是最新版(7月23日)内测版,我第一反应是系统更新带来的Bug,所以热心地在内测帐中做了反馈。事已至此,按说等官方回复等下个版本解决‘Bug’就可以了。可偏偏我就不是那种轻易消停的人,于是开始了各种排查操作。以下是这次折腾过程,希望给各位提供点借鉴。
1、既然插、拔,系统都有反应,那说明系统是能认出U盘的,推测有很大可能是已经挂载了的,应该首先从‘显示’上下手找问题;
2、与文件管理器中各磁盘的显示有挂载相关的配置,我知道有/etc/fstab 和/etc/udev/rules.d ;
先看 /etc/fstab ,它是用来存放文件系统的静态信息的文件(既然是静态的,跟U盘经常插拔的场景不同,它的嫌疑比较小),是在启动时挂载相对固定的硬盘设备(文件系统)到常用目录的,也就是‘文件系统’(设备)与‘挂载点’的对应表。/etc/fstab在安装Deepin时,安装过程中让你指定挂载点的操作,比如让你分配swap、指定/home等挂载点的文件系统,这个过程最终生成的结果就存在这里。给个示意图看下这里面都存些啥:
再来看/etc/udev/rules.d ,百度说,udev主要是管理热插拔设备的管理器,那望文生义,rules.d,应该就是热插拔的某种规则...直接ls下看看这个文件夹下都有啥:各种以rules结尾的配置文件。看到‘*hide_parts*’几个字时,你是否和我一样有点小激动?直觉告诉我,这里可能会找到答案。
打开90-hide_parts.rules(文件名有可能会有细微差别,但‘hide_parts’这几个字应该是被包含的),看到以下文字:
这里面的配置,大意就是把类型为vfat的文件系统,都隐藏掉。这个结论,可以百度求证,而实际上确实如此。这个文件当时也是我编辑的,因为我装了Win+Deepin双系统。为了隐藏Win下的系统恢复等分区,写了这个规则,时间太久远了,我都忘记了。
3、至此,U盘不显示的原因基本找到了,我的U盘就是Fat32格式的(Fat32跟vfat什么关系?这里做下伏笔,下文有提到)。严谨起见,我把这个文件90-hide_parts.rules转移到别的目录备份一下,在/etc/udev/rules.d下删除。重启后,插入U盘果然可以认出来了。当然,也多出了一些以前隐藏掉的分区
4、原因找到了,现在是公布解决法。还得从/etc/udev/rules.d的规则入手。只是规则不能那么‘粗鲁’了:以前的规则是将文件系统为vfat的都隐了。百度得知,规则还可以直接指定UUID来隐藏分区。如何找到设备分区的uuid呢?终端执行blkid | grep vfat 。最终的规则里,仅把你想隐藏的系统分区(如 EFI system partition)给隐藏就可以了。我的规则如下:
5、其它知识点补充(上文伏笔)。Windows和Linux下的文件系统类型,有挺大的不同,这里不详细展开了,只说下跟本文相关的:Windows下的Fat32格式,在Linux中对应为vfat。
至此,真相已大白,冤枉了Deepin。针对这个问题,可能你有更好的解决办法,请不吝在本贴回复。另外,文中的方法也应该适用于因安装snap、uengine等工具而多出来的奇奇怪怪的分区。