我的系统在发行版升级后出现了一个奇怪的缺陷(OpenSuSE 12.3 -> 13.2)。我有各种 USB 设备,我想将它们安装到不同的顶级目录:备份驱动器安装到 /backup,我的 USB 记忆棒安装到 /usb,SD 卡适配器安装到 /SD。过去,只需在 /etc/fstab 中命名设备 ID 和顶级目录即可正常工作:
/dev/disk/by-id/scsi-1TOSHIBA_TransMemory-part1 /usb vfat noauto,user,exec 0 0
/dev/disk/by-id/ata-ST2000LM003_HN-M201RAD_S34RJ9AFA36173-part1 /backup ext4 noauto,user,exec 0 0
/dev/disk/by-id/usb-Generic-_SD_MMC_MS_PRO_20120926571200000-0:0-part1 /SD exfat noauto,user,exec
现在,随着新内核(3.16.7)等的出现,确切的 /dev/disk/by-id 标识符已更改,因此我对它们进行了调整,但安装仍然失败。事实证明,我无法再将这些设备安装到其首选安装点,即使我提供真实名称(例如,/dev/sdc1 等)也是如此。手动挂载它们,即使以 root 身份,也不会给出任何输出并返回 0,就像正常挂载一样,但它不会用磁盘的内容填充挂载点,事实上,该mount
命令声称该设备在挂载后并未挂载。全部。
但是,我能如果我选择挂载点 /mnt,或者奇怪的是,选择 /mnt 的子目录,则可以成功挂载任何这些设备。这让人放心 - 它证明不存在硬件或驱动程序问题 - 但我真的很想将我的外围设备安装到它们的助记名称,特别是有时我想同时安装其中两个。
到底为什么系统会关心在哪里我挂载某些东西,只要挂载点存在,可访问,并且尚未挂载?所有三个顶级目录在旧内核(3.7.10)下都可以正常工作,但现在却不能了。我是否会遇到一些我从未听说过的新安全管理器或过滤器规则?
答案1
我有!
它是应用装甲,SuSe Linux 现在默认激活。它应该在传统的基于权限的安全模型之上添加功能驱动的安全性,并且在其默认配置中,它不允许除非常具体描述的安装之外的所有安装,其中/mnt
。一旦我摆脱了 AppArmor,我的坐骑就可以正常工作了。
答案2
我无法回答您的根本问题,但我可以为您提供解决方法。
- 在 下创建一组子目录
/mnt
,每个设备一个。 - 将每个“真实”目录和首选目录替换
/usb
为以下相关目录的符号链接/mnt
/etc/fstab
进行相应修复。
并不理想,但它会让您在寻找真正的解决方案时恢复正常运行