lcpcsky 发表于 2006-5-18 15:20:38

Linux与Windows利用ext3共享数据

这里讨论的方法主要解决以下问题:
        1、通常只能以fat区共享数据(NTFS写不安全)
        2、但在Linux下访问fat区,不能有全为大写的文件名,导致程序开发时需要的诸如AUTHORS、README、NEWS等文件变成不规范的小写形式,更严重的是CVS目录变成了cvs!
        3、但在Linux下访问fat区,无法建立符号链,导致程序开发时autoconf、automake无法执行
        4、但在Linux下访问fat区,由于没有“x”标志,所有文件都统统具有了执行标志;

        所以考虑用Linux下的文件系统作为共享区,在Windows下装对应的驱动。ReiserFS的Windows驱动不成熟,几乎每次都导致WindowsXP蓝屏,所以不得不用ext3,找了一个比较稳重的Windows驱动:Ext2IFS,最新版本是1.10b,这样就能把ext3区挂载成为某个盘(比如:D:\)来访问。
        新的问题又出现了,Windows默认代码页是GB2312(cp936),而ext3不进行文件名底层转码,也就是说Linux端也必须使用zh_CN.GB2312环境,否则总有一边的中文文件名会是乱码,经过百般尝试,无解。
        现在不得已只能把Linux环境设置为zh_CN.GB2312,放弃标准的UTF-8,设置的方法是编辑/etc/locale.gen,将zh_CN GB2312置于文件最后(没有就加上),再运行locale-gen,登录XWindow的时候选择“中文(中国)”即可。
        需要注意的问题是,GTK从2.x的某个版本开始默认的底层编码就变成了UTF-8,导致不能正确处理GB2312的文件名,不过设置两个环境变量即可,可编辑/etc/environment文件,在末尾加入如下两行:
                G_FILENAME_ENCODING=@locale
                G_BROKEN_FILENAMES=1
        第一行就不必解释了,地球人一看就知道,加入第二行的原因是,GTK的程序创建中文名文件时不管三七二十一,都使用UTF-8,而不是环境设置的GB2312,所以只能强制它不这样做了!

        这样Linux与Windows的数据沟通就畅通无阻了,美中不足的是不得不又退回了GB2312的时代,如果您有好的解决办法,请不吝赐教,谢谢!

源发表于:http://www.lcsky.org/?main=BBS/flashbbsv1.1/topic.php?tid=475

xiaocai 发表于 2006-5-18 16:00:34

一般情况下,我是用PDF来传输文字,与图像的,
另外如果有大量的则是打包
在利用相应系统下的解包软件,就可以了.一般情况下我有一个专用的分区,用来存放,LINUX中用到的文件,

在WINDOWS也可以对这个分区进行读写,

WINDOWS 与 LINUX 都能共同读写的分区有很多种了.推荐使用最常用的.格式还是UTF-8

woolzey 发表于 2006-5-19 00:22:20

cp936是GBK,不是GB2312。

不过Windows下可以写ext3分区吗?

hillwood 发表于 2006-5-19 21:15:31

当然可以,像访问win分区一样。

woolzey 发表于 2006-5-20 03:30:51

ext2ifs是把ext3当作ext2来处理的吧,读肯定没问题,但是写的时候应该不会处理日志,这样对待ext3分区会有问题吗?

当然可以,像访问win分区一样。

xiaocai 发表于 2006-5-20 08:38:35

因当没问题,楼主是准备在这方面 进行一下研究吧,楼主的心得在下记得了。不过我在FC5下对挂载的NTFS分区没出现问题。蛮好用的。
楼主现在是写一个在LINUX客户端运行的文件浏览器吗,它可以跨分区写读文件。并且别的什么,不然不会要析的这么细哦!支持啊,
不过普通 用户看你这个没什么用啊,比如我。
页: [1]
查看完整版本: Linux与Windows利用ext3共享数据