LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: babylon1120

为什么我的windows各盘挂载到linux上以后,中文都显示问号阿?

[复制链接]
发表于 2007-3-30 10:41:07 | 显示全部楼层
Post by 小小芋头
能给我解释下第一、二条命令里的各个参数的意思吗?

这几条都是在fstab中的。
1.
/dev/hda1(分区) /mnt/c(挂载点) ntfs(挂载类型) ro(只读),users,gid=users,(users组有权限,不加这条的话,非root用户是加锁的)umask=0002(权限),nls=utf8(编码) 0 0
2.
这是安装了ntfs-3g的情形
回复 支持 反对

使用道具 举报

发表于 2007-3-30 11:06:04 | 显示全部楼层
Post by clxer
别再看看,别再试试,用我的现成的吧。三种情况,足够满足需要了。

/dev/hda1            /mnt/c               ntfs    ro,users,gid=users,umask=0002,nls=utf8 0 0
/dev/hda9            /mnt/d               ntfs-3g    silent,umask=0,locale=zh_CN.utf8 0 0
/dev/hda10           /mnt/e               vfat       users,gid=users,umask=0002,utf8=true,codepage=936 0 0
第一个,用来以只读方式挂载NTFS文件系统的/dev/hda1 到 /mnt/c 这个目录。ro表示read-only只读。users,gid=users表示允许users普通用户组的用户卸载/挂载这个设备。可以尝试以普通用户身份umount /dev/hda1 然后 mount /dev/hda1 ;再试一下其它的Linux的文件系统看看普通用户是否有权卸载,普通用户无法卸载是因为没有默认的挂载选项中没有给普通用户这样的权限。umask=0002是掩码值。nls=utf8是指的以utf8字符集编码方式挂载这个设备。

第二个,是用来以读写方式挂载NTFS文件系统的磁盘分区。这种挂载的方式,SuSE系列的初始安装默认是不支持的。需要安装能读写NTFS的包。silent如果不知道可以在dict.cn查一下它的意思。后面的umask=0同上是掩码。locale=zh_CN.utf8 是表示以这种字符集编码方式挂载这个磁盘分区,或者说这个设备。

第三个,/dev/hda10 表示要挂载的设备;/mnt/e 表示要挂载到的目录;vfat是指明以vfat的文件系统类型( fstype ),来挂载这个设备;最后面一的段users,gid=users,也是允许普通用户组的用户卸载/挂载 这个设备的;umask=0002是掩码,utf8=true,codepage=936这两个也是用来表示挂载时使用的字符集编码的。不懂的单词可以到 dict.cn 查一下是什么意思。

/etc/fstab 文件的最后面的两个数字也是有讲究的。 前面的第一位数字不太清楚大概是说是否备份这个分区;后面的数字如果是1或者是2都是表示开机需要自检的,根分区是第一个被挂载的设备,所以它的最后一位数字标为1 。
/etc/fstab 文件中的挂载选项有错误是可能会导致系统启动失败或者启动不正常的。

像 proc sysfs debugfs devpts 这样的都是指的虚拟的文件系统。
想要详细了解,可以看一下mount的man帮助。

最后帖一下我的 /etc/fstab 文件:

/dev/hda3            /                    reiserfs   acl,user_xattr        1 1
/dev/hda9            swap                 swap       defaults              0 0
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
usbfs                /proc/bus/usb        usbfs      noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/hda11           /home                ext3       defaults              1 2
/dev/hda1            /media/hda1          ntfs       ro,users,gid=users,umask=0002,nls=utf8 0 0
/dev/hda3                /media/hda3         reiserfs    defaults              1 2
/dev/hda5            /media/hda5          ntfs       ro,users,gid=users,umask=0002,nls=utf8 0 0
/dev/hda6            /media/hda6          ntfs       ro,users,gid=users,umask=0002,nls=utf8 0 0
/dev/hda7            /media/hda7          ntfs       ro,users,gid=users,umask=0002,nls=utf8 0 0
/dev/hda8            /media/hda8       vfat    users,gid=users,umask=0002,utf8=true,codepage=936 0 0
/dev/hda10           /media/hda10         reiserfs   defaults              1 2
/dev/hda13           /media/hda13         xfs        defaults              1 2
/dev/sda1            /media/sda1          xfs        defaults              1 2
/dev/sda2            /media/sda2          reiserfs   defaults              1 2
/dev/sda3            /media/sda3          reiserfs   acl,user_xattr           1 2
/dev/sda5            /media/sda5          reiserfs   defaults              1 2
/dev/sda6            /media/sda6          ntfs       ro,users,gid=users,umask=0002,nls=utf8 0 0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-3-31 13:29:51 | 显示全部楼层
我的u盘,移动硬盘以及windows的各个分区都是直接挂载上去的,自动识别的,都没有用到命令,这该怎么解决不能显示中文的问题啊?
回复 支持 反对

使用道具 举报

发表于 2007-3-31 14:03:03 | 显示全部楼层
你打开fstab然后修改一下不就可以了,系统自己挂载更省事啊,不用打那么多字。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-1 10:03:16 | 显示全部楼层
已经把问题解决了,谢谢啦
回复 支持 反对

使用道具 举报

发表于 2007-7-20 23:00:30 | 显示全部楼层
我也遇到了这个问题,按照论坛里的方法修改还是没有解决。
我装的是mandriva 2007 spring one i586版的,后来装了locales-zh-2.4-4mdv2007.1.i586.rpm以及kde-i18n-zh_CN.GB2312-3.5.6-2mdv2007.1.noarch.rpm还有kde-i18n-zh_TW.Big5-3.5.6-1mdv2007.1.noarch.rpm三个包,可以正常显示中文了。
但挂载windows下的各盘后,中文都显示为问号。以下是我的fstab:

/dev/hda8 / ext3 defaults 1 1
/dev/hda10 /home ext3 defaults 1 2
/dev/hdd /media/cdrom auto umask=0022,users,iocharset=utf8,noauto,ro,exec 0 0
none /media/floppy supermount dev=/dev/fd0,fs=auto,--,umask=0022,iocharset=utf8,sync 0 0
/dev/hda1 /mnt/disk/win_c vfat defaults,iocharset=utf8 0 0
/dev/hda5 /mnt/disk/win_d vfat defaults,iocharset=utf8 0 0
/dev/hda6 /mnt/disk/win_e vfat defaults,iocharset=utf8 0 0
/dev/hda7 /mnt/disk/win_f vfat defaults,iocharset=utf8 0 0
none /proc proc defaults 0 0
/dev/hda9 swap swap defaults 0 0
其中,我将iocharset分别改为gb2312,gbk,以及cp936均不成功

以下是我的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=

请大家帮我看下问题出在哪里,谢谢了!
回复 支持 反对

使用道具 举报

发表于 2007-7-20 23:16:56 | 显示全部楼层
你并没有按我的fstab改啊。
回复 支持 反对

使用道具 举报

发表于 2007-7-21 04:33:04 | 显示全部楼层
/dev/hda3            /                    reiserfs   acl,user_xattr        1 1
/dev/hda1            /windows/C           vfat       users,gid=users,umask=0002,utf8=true,codepage=936 0 0
/dev/hda5            /windows/D           ntfs-3g    defaults,locale=zh_CN.utf8 0 0
/dev/hda6            /windows/E           ntfs-3g    defaults,locale=zh_CN.utf8 0 0

参照我的改
vfat codepage 是 936
回复 支持 反对

使用道具 举报

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

本版积分规则

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