在默认的情况下,SuSE 9.3会自动挂载移动设备,包括U盘、相机等等。但是,默认的设置不能够正常的显示移动设备(比如U盘)里的中文文件名。这和 hal 的策略有关。
现在我把suse 9.3和ubuntu 的默认存储设备策略亮出来。(安装我的经验,ubuntu下挂载U盘没有乱码的问题)所以,如果你有兴趣的话,不妨来挑战一下,分析一个明白:究竟怎样的策略才是最合适的。
这就要搜索资料,仔细阅读,比较分析和进行实验。不是很难,但也不容易,还是有点挑战性的。
SuSE 9.3- <?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
- <deviceinfo version="0.2">
- <!-- Default policies merged onto computer root object -->
- <device>
- <match key="info.udi" string="/org/freedesktop/Hal/devices/computer">
- <merge key="storage.policy.default.mount_root" type="string">/media</merge>
- <merge key="storage.policy.default.use_managed_keyword" type="bool">true</merge>
- <merge key="storage.policy.default.managed_keyword.primary" type="string">managed</merge>
- <merge key="storage.policy.default.managed_keyword.secondary" type="string">kudzu</merge>
- <merge key="storage.policy.default.mount_option.noauto" type="bool">true</merge>
- <merge key="storage.policy.default.mount_option.pamconsole" type="bool">true</merge>
- <merge key="storage.policy.default.mount_option.exec" type="bool">true</merge>
- </match>
- </device>
- <device>
- <!-- Whitelist bus types of storage devices we care about -->
- <match key="info.category" string="storage">
- <match key="storage.bus" string="usb">
- <merge key="storage.policy.should_mount" type="bool">true</merge>
- </match>
- <match key="storage.bus" string="ide">
- <merge key="storage.policy.should_mount" type="bool">true</merge>
- </match>
- <match key="storage.bus" string="ieee1394">
- <merge key="storage.policy.should_mount" type="bool">true</merge>
- </match>
- <match key="storage.bus" string="sata">
- <merge key="storage.policy.should_mount" type="bool">true</merge>
- <!-- temporary disable polling on SATA devices to avoid a kernel crash -->
- <merge key="storage.media_check_enabled" type="bool">false</merge>
- </match>
- <match key="storage.bus" string="platform">
- <merge key="storage.policy.should_mount" type="bool">true</merge>
- </match>
- </match>
- <!-- Also add SCSI optical drives -->
- <match key="storage.bus" string="scsi">
- <match key="storage.drive_type" string="cdrom">
- <merge key="storage.policy.should_mount" type="bool">true</merge>
- </match>
- </match>
- <!-- Handle drives with non-partitioned media -->
- <match key="storage.no_partitions_hint" bool="true">
- <!-- optical drives -->
- <match key="storage.drive_type" string="cdrom">
- <merge key="storage.policy.should_mount" type="bool">true</merge>
- <merge key="storage.policy.mount_filesystem" type="string">auto</merge>
- <merge key="storage.policy.desired_mount_point" type="string">cdrom</merge>
- <match key="storage.cdrom.cdr" bool="true">
- <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
- </match>
- <match key="storage.cdrom.cdrw" bool="true">
- <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
- </match>
- <match key="storage.cdrom.dvdplusr" bool="true">
- <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
- </match>
- <match key="storage.cdrom.dvdplusrw" bool="true">
- <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
- </match>
- <match key="storage.cdrom.dvdram" bool="true">
- <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
- </match>
- <match key="storage.cdrom.dvdr" bool="true">
- <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
- </match>
- <match key="storage.cdrom.dvdrw" bool="true">
- <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
- </match>
- <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true">
- <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
- </match>
- </match>
- <!-- floppy drives -->
- <match key="storage.drive_type" string="floppy">
- <merge key="storage.policy.mount_filesystem" type="string">auto</merge>
- <merge key="storage.policy.desired_mount_point" type="string">floppy</merge>
- <merge key="storage.policy.should_mount" type="bool">true</merge>
- <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true">
- <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
- </match>
- </match>
- <!-- zip drives -->
- <match key="storage.drive_type" string="zip">
- <merge key="storage.policy.mount_filesystem" type="string">auto</merge>
- <merge key="storage.policy.desired_mount_point" type="string">zip</merge>
- <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true">
- <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
- </match>
- </match>
- <!-- jaz drives -->
- <match key="storage.drive_type" string="jaz">
- <merge key="storage.policy.mount_filesystem" type="string">auto</merge>
- <merge key="storage.policy.desired_mount_point" type="string">jaz</merge>
- <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true">
- <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
- </match>
- </match>
- </match>
- <!-- Normal volumes; use volume label, uuid or drive_type -->
- <match key="block.is_volume" bool="true">
- <match key="volume.fsusage" string="filesystem">
- <match key="volume.is_disc" bool="true">
- <merge key="volume.policy.should_mount" type="bool">true</merge>
- <merge key="volume.policy.mount_filesystem" type="copy_property">volume.fstype</merge>
- <!-- Fallback is '<storage.bus>', appended with 'disk', e.g. usbdisk, idedisk, scsidisk etc. -->
- <merge key="volume.policy.desired_mount_point" type="copy_property">@block.storage_device:storage.bus</merge>
- <append key="volume.policy.desired_mount_point" type="string">disk</append>
- <!-- Best: If available use filesystem label -->
- <match key="volume.label" empty="false">
- <!-- unless it's a path (e.g. /boot, /, /home etc) -->
- <match key="volume.label" is_absolute_path="false">
- <!-- and only if the label is ascii -->
- <match key="volume.label" is_ascii="true">
- <merge key="volume.policy.desired_mount_point" type="copy_property">volume.label</merge>
- </match>
- </match>
- </match>
- </match>
- <!-- skip for drives with the no partitions hint (they are handled above) -->
- <match key="@block.storage_device:storage.no_partitions_hint" bool="false">
- <merge key="volume.policy.should_mount" type="bool">true</merge>
- <merge key="volume.policy.mount_filesystem" type="copy_property">volume.fstype</merge>
-
- <!-- Fallback is '<storage.bus>', appended with 'disk', e.g. usbdisk,
- idedisk, scsidisk etc. -->
- <merge key="volume.policy.desired_mount_point" type="copy_property">@block.storage_device:storage.bus</merge>
- <append key="volume.policy.desired_mount_point" type="string">disk</append>
- <!-- zip drives -->
- <match key="storage.drive_type" string="zip">
- <merge key="storage.policy.desired_mount_point" type="string">zip</merge>
- </match>
-
- <!-- Best: If available use filesystem label -->
- <match key="volume.label" empty="false">
- <!-- unless it's a path (e.g. /boot, /, /home etc) -->
- <match key="volume.label" is_absolute_path="false">
- <!-- and only if the label is ascii -->
- <match key="volume.label" is_ascii="true">
- <merge key="volume.policy.desired_mount_point" type="copy_property">volume.label</merge>
- </match>
- </match>
- </match>
-
- <!-- Should never mount Apple Bootstrap partitions (it would be
- a security hole) - should use the bootable flag from the
- Mac partition table instead -->
- <match key="volume.fstype" string="hfs">
- <match key="volume.label" string="bootstrap">
- <merge key="volume.policy.should_mount" type="bool">false</merge>
- </match>
- </match>
-
- <!-- Use selinux mount options for hotpluggable and removable
- volumes -->
- <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true">
- <match key="@block.storage_device:storage.hotpluggable" bool="true">
- <merge key="volume.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
- </match>
- <match key="@block.storage_device:storage.removable" bool="true">
- <merge key="volume.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
- </match>
- </match>
- <!-- Use noatime and sync options for all hotpluggable or removable
- volumes smaller than 2GB -->
- <match key="volume.size" compare_lt="2147483648">
- <match key="@block.storage_device:storage.hotpluggable" bool="true">
- <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
- <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
- </match>
- <match key="@block.storage_device:storage.removable" bool="true">
- <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
- <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
- </match>
- </match>
- <!-- Use UTF-8 charset for vfat -->
- <match key="volume.fstype" string="vfat">
- <merge key="volume.policy.mount_option.iocharset=utf8" type="bool">true</merge>
- </match>
-
- <!-- whitelist of partition table id's, if from a msdos partition table -->
- <match key="volume.partition.msdos_part_table_type" exists="true">
- <!-- Default to no mount and punch holes -->
- <merge key="volume.policy.should_mount" type="bool">false</merge>
- <!-- Linux -->
- <match key="volume.partition.msdos_part_table_type" int="0x83">
- <merge key="volume.policy.should_mount" type="bool">true</merge>
- </match>
- <!-- FAT12 -->
- <match key="volume.partition.msdos_part_table_type" int="0x01">
- <merge key="volume.policy.should_mount" type="bool">true</merge>
- </match>
- <!-- FAT16 <32M -->
- <match key="volume.partition.msdos_part_table_type" int="0x04">
- <merge key="volume.policy.should_mount" type="bool">true</merge>
- </match>
- <!-- FAT16 -->
- <match key="volume.partition.msdos_part_table_type" int="0x06">
- <merge key="volume.policy.should_mount" type="bool">true</merge>
- </match>
- <!-- HPFS/NTFS -->
- <match key="volume.partition.msdos_part_table_type" int="0x07">
- <merge key="volume.policy.should_mount" type="bool">true</merge>
- </match>
- <!-- W95 FAT32 -->
- <match key="volume.partition.msdos_part_table_type" int="0x0b">
- <merge key="volume.policy.should_mount" type="bool">true</merge>
- </match>
- <!-- W95 FAT32 (LBA) -->
- <match key="volume.partition.msdos_part_table_type" int="0x0c">
- <merge key="volume.policy.should_mount" type="bool">true</merge>
- </match>
- <!-- W95 FAT16 (LBA) -->
- <match key="volume.partition.msdos_part_table_type" int="0x0e">
- <merge key="volume.policy.should_mount" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
-
- </device>
- <!-- Dont want to mount non-hotpluggable fixed disks since ideraid
- detection isnt complete as hald wrongly detects e.g. partitions
- from some IDE RAID controllers -->
- <device>
- <match key="storage.hotpluggable" bool="false">
- <match key="storage.removable" bool="false">
- <merge key="storage.policy.should_mount" type="bool">false</merge>
- </match>
- </match>
- </device>
- </deviceinfo>
复制代码
Ubuntu |