Ubuntu 6.06 LTS 上挂载fat32分区和ext2分区的一些测试

这篇日记记录在Ubuntu 6.06 LTS 上挂载fat32分区和ext2分区,测试系统umask值和mount fat32分区中的umask、dmask、fmask等参数的用法,并测试在 gnome nautilus 中创建目录、文件和在控制台下创建目录、文件的情况。

一、在Ubuntu 6.06 LTS 挂载Windows XP SP2下的fat32分区:

Ubuntu下是使用的 zh_CN.UTF-8 的locale,使用下面的命令挂载fat32分区:

sudo mount -t vfat -o iocharset=utf8,umask=022,gid=1000,uid=1000 /dev/hda1 /media/xp

这样,可以正确显示windows下中文目录(文件)名,在 Ubuntu 下创建的中文目录(文件)名在windows下也可以正常显示。奇怪的是,就算是登录gnome时选择了zh_CN.GB18030 的locale,挂载这个分区选择iocharset=utf8在nautilus中创建目录和文件才正确(能正常创建并在两个系统中显示中文名;但这时在gnome终端用命令行中不能创建中文名目录和文件),改成iocharset=gb2312 在gnome nautilus中创建目录和文件反而不行(在nautilus中不能创建目录,可以创建文件但中文名在windows下为乱码;但这时在gnome终端的命令行下可以正常创建中文名目录和文件,并且在windows系统下也能正确显示中文名)。而在原来使用的 Redhat linux 9.0 中,因为它使用的是GB18030的locale,这时,iocharset=gb2312才行,见:解决redhat linux9.0下挂载windows分区中的中文文件(夹)名乱码
。另外,两种locale下不设置iocharset参数也不能正常显示中文目录(文件)名。gid和uid是我登录用的帐号的组id和用户id,这样,fat32下面的东西的组和用户都成了我的登录帐号的了。如果,你又指定了 dmask 和 fmask ,那么,前面的umask针对目录和常规文件的屏蔽码就不起作用了。另,据说,dmask和fmask是后来才有的,早期的mount 命令是没有的。

二、挂载的fat32分区和ext2分区在创建文本文件时的权限上是不同的

比如,上面的umask 为022,在控制台下在fat32分区上创建的新目录和新文本文件和原来的旧目录和旧文本文件的权限都是755;而如果系统的umask值是022(/etc/profile中设定的)ext2分区以默认的参数挂载,在/etc/fstab中是:

/dev/hda10 /home ext2 defaults 0 2

,这时,在控制台下创建的目录的权限是755,而新创建的文本文件的权限却是644了,默认没有可执行权限。

三、在控制台下用命令和在如gedit等程序中创建的目录和文件的权限使用了系统umask值,而在图形界面的nautilus中用菜单或鼠标右键创建的目录和文件的权限则基本上不会理会系统umask的值(除了我测试过的在挂载fat32分区时创建目录)。

如,我用umask 020 改变了系统umask 的值,在控制台下在前面的ext2分区中创建的目录和文件是根据新的umask值来确定权限的,而在图形界面的nautilus中用菜单创建的目录或文件的权限却与没有改umask值前一样,即保持目录为:755,文本文件的权限为600。

而且,在用前面命令挂载的fat32分区上,在nautilus中用菜单创建的目录跟命令中使用的umask参数(如:设置 -o umask=021,或 umask=066)一致,而用菜单创建的文件的权限却一直都是600。

我在网上查了一下资料,gnome 的 nautilus 程序忽略系统umask的值好像是它的一个bug,见:idea #200: Umask and Permissions in Nautilusnautilus umask bug permissions problem on networkBug 327249 nautilus ignores umask。不过,这个问题的中文资料竟然没有搜索到。还有,也不知道这个问题现在解决没有?

上面的内容基本上就是一个linux下mount命令相关的,还有就是跟natilus有关,linux下的mount命令非常的强大,也非常的复杂,因为,linux几乎可以识别和挂载世界上所有的文件格式,每一种文件格式就有相关的挂载参数。所以,我觉得,作为一般的 linux用户,掌握一些最基本的参数就行了,到时要用到时,再去man mount,或者上网 google。

附一篇讲解 fstab 文件非常详细的文章:学会理解并编辑fstab