QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1481|回复: 13

mount后进入目录不能显示内容怎么办?

[复制链接]
发表于 2005-9-21 09:13:09 | 显示全部楼层 |阅读模式
我的系统是fc3,前一阵mount后都可以正常使用,最近没怎么用,一上来就出问题.
#mount /dev/hdb5 /mnt/win
#cd /mnt/win
这些都运行正常,可是ls之后什么反应都没了,这是什么问题?
#ls
发表于 2005-9-21 09:33:07 | 显示全部楼层
加上-t vfat 呢?
回复

使用道具 举报

发表于 2005-9-21 11:05:29 | 显示全部楼层
如果没有人为更改文字编码,这样就行
mount -o iocharset=utf8 /dev/hdb5 /mnt/win
回复

使用道具 举报

 楼主| 发表于 2005-9-22 09:36:32 | 显示全部楼层
谢谢两位,我试了,两种方法都不行.其实我的系统在mount忧盘后可以正常工作,就是mount WINDOWS的系统盘后不能显示内容
回复

使用道具 举报

发表于 2005-9-22 10:37:45 | 显示全部楼层
ntfs?
安装补丁先
回复

使用道具 举报

发表于 2005-9-22 13:19:11 | 显示全部楼层
能mount得上,应该不是ntfs补丁的问题,没有打的话,是mount不上的(至少我自己的经验是这样),除非补丁有问题
-o iocharset=gb2312 或utf8这两个都试试
中文字体或locale都没有问题吗?
回复

使用道具 举报

 楼主| 发表于 2005-9-22 14:53:52 | 显示全部楼层

mount -t vfat /dev/hdb5 /mnt/win -o iocharset=utf8,codepage=936
不行,原来我就经常这样都可以,现在只有挂载忧盘可以,就是挂载不上windows的盘.我的windows2000系统不是ntfs,是fat32
回复

使用道具 举报

发表于 2005-9-22 14:55:39 | 显示全部楼层
iocharset=cp936试试
回复

使用道具 举报

发表于 2005-9-22 15:19:56 | 显示全部楼层
iocharset=gb2312,codepage=936 呢?
回复

使用道具 举报

发表于 2005-9-22 15:32:56 | 显示全部楼层
[quote:b1f14fef92="SEPTEM"]iocharset=gb2312,codepage=936 呢?[/quote]定义两次,罗嗦了。
回复

使用道具 举报

发表于 2005-9-23 11:38:15 | 显示全部楼层
把/etc/fstab贴出来看看
回复

使用道具 举报

发表于 2005-9-23 17:24:11 | 显示全部楼层
哪位提供补丁的下载地址阿?感谢中.......
回复

使用道具 举报

发表于 2005-9-23 17:36:47 | 显示全部楼层
精华贴里有,搜索一下吧
回复

使用道具 举报

 楼主| 发表于 2005-9-24 08:53:51 | 显示全部楼层
# This file is edited by fstab-sync - see 'man fstab-sync' for details
LABEL=/                 /                       ext3    defaults        1 1
LABEL=/boot1            /boot                   ext3    defaults        1 2
none                    /dev/pts                devpts  gid=5,mode=620  0 0
none                    /dev/shm                tmpfs   defaults        0 0
none                    /proc                   proc    defaults        0 0
none                    /sys                    sysfs   defaults        0 0
LABEL=SWAP-hdb9         swap                    swap    defaults        0 0
/dev/hdc                /media/cdrom            auto    pamconsole,fscontext=system_ubject_r:removable_t,ro,exec,noauto,managed 0 0
/dev/fd0                /media/floppy           auto    pamconsole,fscontext=system_ubject_r:removable_t,exec,noauto,managed 0 0
~
我没有改过,不过刚装上fc3的时候装载不上忧盘,我按照一篇文章上说的内容修改过,如下:
由于 fc3 内核默认 fat32 文件系统字符编码是 ascii,如果优盘的文件名包含中文,那么在转换时会出问题,应用程序就会失去响应。具体的表现有多种,比如桌面假死,关机时提示无法卸载分区等等

解决的办法是在挂载时,根据语言环境 locale 的值,使用挂载参数。如果是 UTF-8 那么就用 mount -o utf8,如果是 GB* 那么就用 mount -o iocharset=cp936。但是这样繁琐地手动挂载就失掉了 FC3 的好处。正确的解决办法,是添加自己的配置文件,我的是这样


代码:
[yuan@jackycom ~/Desktop]$ cat /usr/share/hal/fdi/95userpolicy/storage-policy.fdi
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->

<deviceinfo version="0.2">
  <device>
    <match key="@block.storage_device:storage.removable" bool="true">
      <merge key="volume.policy.mount_option.fmask=111" type="bool">true</merge>
      <merge key="volume.policy.mount_option.dmask=0" type="bool">true</merge>
      <merge key="volume.policy.mount_option.users" type="bool">true</merge>
      <merge key="volume.policy.mount_option.utf8" type="bool">true</merge>
   </match>
    <match key="@block.storage_device:storage.hotpluggable" bool="true">
      <merge key="volume.policy.mount_option.fmask=111" type="bool">true</merge>
      <merge key="volume.policy.mount_option.dmask=0" type="bool">true</merge>
      <merge key="volume.policy.mount_option.users" type="bool">true</merge>
      <merge key="volume.policy.mount_option.utf8" type="bool">true</merge>
   </match>
  </device>
</deviceinfo>
原理正如上面所说,hal 在收到优盘插入的通知时,将读取这些 storage policy 配置文件。在改写 /etc/fstab 时,将用到配置文件中的数据,将这些 mount_option 全部加入 fstab 中去。


如何测试效果
测试效果的办法简单得很,但是不要急着插入优盘,而是应当先运行

代码:
service haldaemon restart


然后插入优盘。几秒钟之后,桌面上会出现优盘图标。看看你的 fstab,如果多了这样一行

代码:
/dev/sda1               /media/YUAN             vfat    pamconsole,utf8,users,dmask=0,fmask=111,noatime,sync,fscontext=system_ubject_r:removable_t,exec,noauto,managed 0 0


那么说明没什么问题。也许你的系统中 selinux 已经被关闭了,所以参数没有这么长。访问优盘,应该不会再出错了。


可能的问题
如果你的语言环境是 gb2312,那么要把上面的配置文件稍微修改一下,把两次出现的 utf8 修改为 iocharset=cp936
小心配置文件中的拼写错误
如果仍然会挂起或死机,那么可能 haldaemon 没有重启动,甚至可能被关闭了。运行

代码:
chkconfig haldaemon on
chkconfig messagebus on
service messagebus restart
service haldaemon restart
命令的可重复性
不要手动修改 /etc/fstab,所有修改都会被丢弃掉,应该只修改 hal 的配置文件
因为我们只新建了一个配置文件,然后重启了一个服务,因此可重复性应该很好。配置文件中的选项如果发生冲突,据说将使用读取时靠后的一个,也就是说 95userpolicy 将比 90defaultpolicy 后读取?


与其他方案的兼容性
autofs 修改的是 /etc/auto.misc 和 /etc/auto.master,不会有冲突
手动挂载,或手动修改 /etc/fstab, 在重启后都将失效,因为 haldaemon 将接管 fstab 文件,除非在 fstab 中加入选项 unmanaged (?)


如何回退到最初的状态
因为只添加了一个配置文件,因此只要将它删除就可以了。另外最好执行一次

代码:
service haldaemon restart
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-17 14:17 , Processed in 0.144518 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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