LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 2612|回复: 17

为什么U盘挂上去的卷标是乱码

[复制链接]
发表于 2005-6-1 13:00:45 | 显示全部楼层 |阅读模式
U盘插上之后,UBUNTU可以识别并在桌面建立图标,但名称是乱码,该怎么设置呢
发表于 2005-6-1 13:36:25 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-1 13:44:24 | 显示全部楼层
看了一下,了解了大概,本机已经是UTF-8,但是不敢操作,代码太多了,不知道修改哪个地方。
  1. <?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->

  2. <deviceinfo version="0.2">

  3.   <!-- Default policies merged onto computer root object  -->
  4.   <device>
  5.     <match key="info.udi" string="/org/freedesktop/Hal/devices/computer">
  6.       <merge key="storage.policy.default.mount_root" type="string">/media</merge>
  7.       <merge key="storage.policy.default.use_managed_keyword" type="bool">false</merge>
  8.       <merge key="storage.policy.default.managed_keyword.primary" type="string">comment=fstabsync</merge>
  9.       <merge key="storage.policy.default.managed_keyword.secondary" type="string">managed</merge>
  10.       <merge key="storage.policy.default.mount_option.noauto" type="bool">true</merge>
  11.       <merge key="storage.policy.default.mount_option.user" type="bool">true</merge>
  12.       <merge key="storage.policy.default.mount_option.exec" type="bool">true</merge>
  13.     </match>
  14.   </device>

  15.   <!-- non-root hald cannot read harddrive partitions; workaround for correct fsusage -->
  16.   <device>
  17.     <match key="info.category" string="volume">
  18.       <match key="block.is_volume" bool="true">
  19.         <match key="volume.fsusage" string="">
  20.           <merge key="volume.fsusage" type="string">filesystem</merge>
  21.         </match>
  22.       </match>
  23.     </match>
  24.   </device>

  25.   <device>
  26.     <!-- Whitelist bus types of storage devices we care about  -->
  27.     <match key="info.category" string="storage">
  28.       <match key="storage.bus" string="usb">
  29.         <merge key="storage.policy.should_mount" type="bool">true</merge>      
  30.       </match>
  31.       <match key="storage.bus" string="ide">
  32.         <merge key="storage.policy.should_mount" type="bool">true</merge>
  33.       </match>
  34.       <match key="storage.bus" string="ieee1394">
  35.         <merge key="storage.policy.should_mount" type="bool">true</merge>
  36.       </match>
  37.       <match key="storage.bus" string="sata">
  38.         <merge key="storage.policy.should_mount" type="bool">true</merge>
  39.       </match>
  40.       <match key="storage.bus" string="platform">
  41.         <merge key="storage.policy.should_mount" type="bool">true</merge>
  42.       </match>
  43.     </match>
  44.     <!-- Also add SCSI optical drives -->
  45.     <match key="storage.bus" string="scsi">
  46.       <match key="storage.drive_type" string="cdrom">
  47.         <merge key="storage.policy.should_mount" type="bool">true</merge>
  48.       </match>
  49.     </match>

  50.     <!-- Handle drives with non-partitioned media  -->
  51.     <match key="storage.no_partitions_hint" bool="true">
  52.       <!-- optical drives -->
  53.       <match key="storage.drive_type" string="cdrom">
  54.         <merge key="storage.policy.mount_filesystem" type="string">auto</merge>
  55.         <merge key="storage.policy.desired_mount_point" type="string">cdrom</merge>
  56.         <match key="storage.cdrom.cdr" bool="true">
  57.           <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
  58.         </match>
  59.         <match key="storage.cdrom.cdrw" bool="true">
  60.           <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
  61.         </match>
  62.         <match key="storage.cdrom.dvdplusr" bool="true">
  63.           <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
  64.         </match>
  65.         <match key="storage.cdrom.dvdplusrw" bool="true">
  66.           <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
  67.         </match>
  68.         <match key="storage.cdrom.dvdram" bool="true">
  69.           <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
  70.         </match>
  71.         <match key="storage.cdrom.dvdr" bool="true">
  72.           <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
  73.         </match>
  74.         <match key="storage.cdrom.dvdrw" bool="true">
  75.           <merge key="storage.policy.desired_mount_point" type="string">cdrecorder</merge>
  76.         </match>
  77.         <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true">
  78.           <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
  79.         </match>
  80.       </match>

  81.       <!-- floppy drives -->
  82.       <match key="storage.drive_type" string="floppy">
  83.         <merge key="storage.policy.mount_filesystem" type="string">auto</merge>
  84.         <merge key="storage.policy.desired_mount_point" type="string">floppy</merge>
  85.         <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true">
  86.           <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
  87.         </match>
  88.       </match>

  89.       <!-- zip drives -->
  90.       <match key="storage.drive_type" string="zip">
  91.         <merge key="storage.policy.mount_filesystem" type="string">auto</merge>
  92.         <merge key="storage.policy.desired_mount_point" type="string">zip</merge>
  93.         <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true">
  94.           <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
  95.         </match>
  96.       </match>

  97.       <!-- jaz drives -->
  98.       <match key="storage.drive_type" string="jaz">
  99.         <merge key="storage.policy.mount_filesystem" type="string">auto</merge>
  100.         <merge key="storage.policy.desired_mount_point" type="string">jaz</merge>
  101.         <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true">
  102.           <merge key="storage.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
  103.         </match>
  104.       </match>
  105.     </match>

  106.     <!-- Normal volumes; use volume label, uuid or drive_type -->
  107.     <match key="block.is_volume" bool="true">
  108.       <match key="volume.fsusage" string="filesystem">
  109.         <!-- skip for drives with the no partitions hint (they are handled above) -->
  110.         <match key="@block.storage_device:storage.no_partitions_hint" bool="true">
  111.           <merge key="volume.policy.desired_mount_point" type="copy_property">@block.storage_device:storage.policy.desired_mount_point</merge>
  112.         </match>
  113.         <match key="@block.storage_device:storage.no_partitions_hint" bool="false">

  114.           <merge key="volume.policy.should_mount" type="bool">true</merge>
  115.           <merge key="volume.policy.mount_filesystem" type="copy_property">volume.fstype</merge>
  116.           
  117.           <!-- Fallback is '<storage.bus>', appended with 'disk', e.g. usbdisk,
  118.                idedisk, scsidisk etc. -->
  119.           <merge key="volume.policy.desired_mount_point" type="copy_property">@block.storage_device:storage.bus</merge>
  120.           <append key="volume.policy.desired_mount_point" type="string">disk</append>

  121.          <!-- zip drives -->
  122.          <match key="storage.drive_type" string="zip">
  123.            <merge key="storage.policy.desired_mount_point" type="string">zip</merge>
  124.          </match>
  125.           
  126.           <!-- Best: If available use filesystem label -->
  127.           <match key="volume.label" empty="false">
  128.             <!-- unless it's a path (e.g. /boot, /, /home etc) -->
  129.             <match key="volume.label" is_absolute_path="false">
  130.               <!-- and only if the label is ascii -->
  131.               <match key="volume.label" is_ascii="true">
  132.                 <merge key="volume.policy.desired_mount_point" type="copy_property">volume.label</merge>
  133.               </match>
  134.             </match>
  135.           </match>
  136.           
  137.           <!-- Should never mount Apple Bootstrap partitions (it would be
  138.                a security hole) - should use the bootable flag from the
  139.                Mac partition table instead -->
  140.           <match key="volume.fstype" string="hfs">
  141.             <match key="volume.label" string="bootstrap">
  142.               <merge key="volume.policy.should_mount" type="bool">false</merge>
  143.             </match>
  144.           </match>
  145.           
  146.           <!-- Use selinux mount options for hotpluggable and removable
  147.                volumes -->
  148.           <match key="/org/freedesktop/Hal/devices/computer:linux.is_selinux_enabled" bool="true">
  149.             <match key="@block.storage_device:storage.hotpluggable" bool="true">
  150.               <merge key="volume.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
  151.             </match>
  152.             <match key="@block.storage_device:storage.removable" bool="true">
  153.               <merge key="volume.policy.mount_option.fscontext=system_u:object_r:removable_t" type="bool">true</merge>
  154.             </match>
  155.           </match>

  156.           <!-- Use noatime and sync options for all hotpluggable or removable
  157.                volumes smaller than 2GB -->
  158.           <match key="volume.size" compare_lt="2147483648">
  159.             <match key="@block.storage_device:storage.hotpluggable" bool="true">
  160.               <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
  161.               <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
  162.             </match>
  163.             <match key="@block.storage_device:storage.removable" bool="true">
  164.               <merge key="volume.policy.mount_option.sync" type="bool">true</merge>
  165.               <merge key="volume.policy.mount_option.noatime" type="bool">true</merge>
  166.             </match>
  167.           </match>

  168.           <!-- Use UTF-8 charset for vfat -->
  169.           <match key="volume.fstype" string="vfat">
  170.             <merge key="volume.policy.mount_option.iocharset=utf8" type="bool">true</merge>
  171.           </match>

  172.     <match key="volume.size" compare_ge="2147483648">
  173.       <match key="@block.storage_device:storage.hotpluggable" bool="true">
  174.         <merge key="volume.policy.mount_option.sync" type="bool">false</merge>
  175.         <merge key="volume.policy.mount_option.noatime" type="bool">false</merge>
  176.       </match>
  177.       <match key="@block.storage_device:storage.removable" bool="true">
  178.         <merge key="volume.policy.mount_option.sync" type="bool">false</merge>
  179.         <merge key="volume.policy.mount_option.noatime" type="bool">false</merge>
  180.       </match>
  181.     </match>
  182.           <!-- whitelist of partition table id's, if from a msdos partition table -->
  183.           <match key="volume.partition.msdos_part_table_type" exists="true">
  184.             <!-- Default to no mount and punch holes -->
  185.             <merge key="volume.policy.should_mount" type="bool">false</merge>
  186.             <!-- Linux -->
  187.             <match key="volume.partition.msdos_part_table_type" int="0x83">
  188.               <merge key="volume.policy.should_mount" type="bool">true</merge>
  189.             </match>
  190.             <!-- FAT12 -->
  191.             <match key="volume.partition.msdos_part_table_type" int="0x01">
  192.               <merge key="volume.policy.should_mount" type="bool">true</merge>
  193.             </match>
  194.             <!-- FAT16 <32M -->
  195.             <match key="volume.partition.msdos_part_table_type" int="0x04">
  196.               <merge key="volume.policy.should_mount" type="bool">true</merge>
  197.             </match>
  198.             <!-- FAT16 -->
  199.             <match key="volume.partition.msdos_part_table_type" int="0x06">
  200.               <merge key="volume.policy.should_mount" type="bool">true</merge>
  201.             </match>
  202.             <!-- HPFS/NTFS -->
  203.             <match key="volume.partition.msdos_part_table_type" int="0x07">
  204.               <merge key="volume.policy.should_mount" type="bool">true</merge>
  205.             </match>
  206.             <!-- W95 FAT32 -->
  207.             <match key="volume.partition.msdos_part_table_type" int="0x0b">
  208.               <merge key="volume.policy.should_mount" type="bool">true</merge>
  209.             </match>
  210.             <!-- W95 FAT32 (LBA) -->
  211.             <match key="volume.partition.msdos_part_table_type" int="0x0c">
  212.               <merge key="volume.policy.should_mount" type="bool">true</merge>
  213.             </match>
  214.             <!-- W95 FAT16 (LBA) -->
  215.             <match key="volume.partition.msdos_part_table_type" int="0x0e">
  216.               <merge key="volume.policy.should_mount" type="bool">true</merge>
  217.             </match>
  218.           </match>          
  219.         </match>
  220.       </match>
  221.     </match>
  222.    
  223.   </device>

  224.   <!-- Dont want to mount non-hotpluggable fixed disks since ideraid
  225.        detection isnt complete as hald wrongly detects e.g. partitions
  226.        from some IDE RAID controllers -->
  227.   <device>
  228.     <match key="storage.hotpluggable" bool="false">
  229.       <match key="storage.removable" bool="false">
  230.         <merge key="storage.policy.should_mount" type="bool">false</merge>
  231.       </match>
  232.     </match>
  233.   </device>

  234. </deviceinfo>
复制代码
回复 支持 反对

使用道具 举报

发表于 2005-6-1 16:39:06 | 显示全部楼层
1.
请确保你的 locale 是 UTF-8
比如 zh_CN.UTF-8

2.
如果你修改了 /etc/fstab , 请 在 /etc/fstab 里去掉关于 U 盘的行
回复 支持 反对

使用道具 举报

发表于 2005-6-2 00:21:38 | 显示全部楼层
适合zh_CN.GB*的hal策略:
  1. [fundawang@localhost ~]$ cat /usr/share/hal/fdi/30osvendor/locale-policy.fdi
  2. <?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->

  3. <deviceinfo version="0.2">

  4.   <device>
  5.     <match key="block.is_volume" bool="true">
  6.       <match key="volume.fsusage" string="filesystem">

  7.         <match key="volume.fstype" string="auto">
  8.                 <merge key="volume.policy.mount_option.iocharset=gb2312" type="bool">true</merge>
  9.                 <merge key="volume.policy.mount_option.codepage=936" type="bool">true</merge>
  10.         </match>
  11.         <match key="volume.fstype" string="vfat">
  12.                 <merge key="volume.policy.mount_option.iocharset=gb2312" type="bool">true</merge>
  13.                 <merge key="volume.policy.mount_option.codepage=936" type="bool">true</merge>
  14.         </match>
  15.         <match key="volume.fstype" string="msdos">
  16.                 <merge key="volume.policy.mount_option.iocharset=gb2312" type="bool">true</merge>
  17.                 <merge key="volume.policy.mount_option.codepage=936" type="bool">true</merge>
  18.         </match>
  19.         <match key="volume.fstype" string="ntfs">
  20.                 <merge key="volume.policy.mount_option.iocharset=gb2312" type="bool">true</merge>
  21.                 <merge key="volume.policy.mount_option.utf8" type="bool">true</merge>
  22.         </match>

  23.       </match>
  24.     </match>

  25.     <match key="storage.drive_type" string="cdrom">
  26.                 <merge key="storage.policy.mount_option.iocharset=gb2312" type="bool">true</merge>
  27.                 <merge key="storage.policy.mount_option.codepage=936" type="bool">true</merge>
  28.                 <merge key="storage.policy.mount_option.utf8" type="bool">true</merge>
  29.     </match>
  30.   </device>

  31. </deviceinfo>
复制代码
非常遗憾的通知大家,除了Mandriva,我还没有见过别的发行版能够同时解决ansi和utf-8下U盘都不乱码的。
回复 支持 反对

使用道具 举报

发表于 2005-6-2 01:02:12 | 显示全部楼层
还是使用 UTF-8 罢
回复 支持 反对

使用道具 举报

发表于 2005-6-2 10:10:58 | 显示全部楼层
感觉只为了一个热插拔的问题就要换locale,非常没有必要。你们应该将这个问题反映到上游去,让reconfigure locales的时候自动写入这个配置文件。
回复 支持 反对

使用道具 举报

发表于 2005-6-2 10:22:11 | 显示全部楼层
卷标乱码。。。
locale 直接用 utf-8 还是不够的。

那个啥非常遗憾的通知就算了,我的 debian U盘里面的内容就不是乱码。
我用的 locale 还是 gbk 呢
回复 支持 反对

使用道具 举报

发表于 2005-6-2 11:50:32 | 显示全部楼层
不是换 Locale

很多发行版的默认 locale 都已经是 UTF-8 了
回复 支持 反对

使用道具 举报

发表于 2005-6-2 13:03:56 | 显示全部楼层
Post by dlz_cn
卷标乱码。。。
locale 直接用 utf-8 还是不够的。

那个啥非常遗憾的通知就算了,我的 debian U盘里面的内容就不是乱码。
我用的 locale 还是 gbk 呢

你用的是hal 吗?你没有说清楚。

我觉得 fundawang 说的还是不错的。
与其大家在下面搞那么多的设置、tip、注意等等,还不如提到上游去解决,弄个default。
mandriva还是相当能听取用户意见的版本,所以在许多方面也考虑的比较周全。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表