1. 程式人生 > >Redhat Linux AS4中行動硬碟自動載入後中文內容為亂碼?

Redhat Linux AS4中行動硬碟自動載入後中文內容為亂碼?

2006-07-29

這個挺傷腦筋, 因為大容量的東西通過網路傳輸比較慢,而在Linux下卻不知裡面是什麼。 先確定locale:

># locale

LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=

通過查資料,原來RH Linux AS4是通過HAL(硬體抽象層)來管理行動硬碟自動載入的。在目錄 /usr/share/hal/fdi/ 裡面有HAL載入的配置檔案。並且衝突時後載入的配置檔案會覆蓋前面載入的。該目錄下有這些內容:

># ll
total 72
drwxr-xr-x  2 root root 4096 Dec 22  2005 10generic
drwxr-xr-x  2 root root 4096 Jul 29 13:58 20freedesktop
drwxr-xr-x  2 root root 4096 Dec 22  2005 30osvendor
drwxr-xr-x  2 root root 4096 Dec 22  2005 40oem
drwxr-xr-x  2 root root 4096 Dec 22  2005 50user
drwxr-xr-x  2 root root 4096 Jul 29 14:01 90defaultpolicy
drwxr-xr-x  2 root root 4096 Jul 29 14:05 95userpolicy
-rw-r--r--  1 root root  603 Dec 22  2005 fdi.dtd
-rw-r--r--  1 root root 1631 Dec 22  2005 fdi.rng

根據數字來看,95userpolicy比 90defaultpolicy後加載。但該目錄下什麼都沒有。因此編輯一個policy檔案,放在95目錄下:

vi storage-policy.fdi

填入:

<deviceinfo version="0.2">
  <device>
    <match bool="true" key="block.is_volume">
      <match string="filesystem" key="volume.fsusage">
        <match string="vfat" key="volume.fstype">
          <merge type="bool" key="volume.policy.mount_option.fmask=111">true</merge>
          <merge type="bool" key="volume.policy.mount_option.dmask=0">true</merge>
          <merge type="bool" key="volume.policy.mount_option.users">true</merge>
          <merge type="bool" key="volume.policy.mount_option.utf8">true</merge>
        </match>
      </match>
    </match>
  </device>
</deviceinfo>

儲存。

重啟HAL:

># /etc/init.d/haldemon restart

再插入U盤或行動硬碟,就可以看到中文了。

如非註明轉載, 均為原創. 本站遵循知識共享CC協議,轉載請註明來源