存放pup_xxx.sfs、pup_save.2fs等文件的分区是在启动阶段被挂载的(可以在/mnt/home中看到)。默认情况下,如果该分区是FAT格式,那么这个分区上的中文文件名将均显示为?????,chinese_pack中的pmount补丁对此也无能为力。如果遇到了这样的情况,可以试试这个补丁。
需要先解开原来的initrd.gz,方法如下
需要先解开原来的initrd.gz,方法如下
$ mkdir initrd $ cd initrd $ zcat ../initrd.gz | sudo cpio -id补丁为
--- ../old_initrd/init 2008-05-18 23:01:02.000000000 -0400 +++ init 2008-05-18 17:46:34.000000000 -0400 @@ -62,9 +62,7 @@ } mntfunc() { - if [ "`echo "$*" | grep 'ntfs'`" = "" ];then - mount $@ - else + if [ "`echo "$*" | grep 'ntfs'`" != "" ];then #screen out -o and -t options... MNTPRMS="`echo -n "$*" | tr '\t' ' ' | tr -s ' ' | tr ' ' '\n' | grep '^/' | tr '\n' ' '`" #v4.00 new ntfs-3g version... @@ -81,6 +79,14 @@ else ntfs-3g $MNTPRMS -o umask=0,no_def_opts,noatime,rw,force 2>/dev/null fi + elif [ "`echo "$*" | grep 'vfat'`" != "" ];then + MNTPRMS="`echo -n "$*" | tr '\t' ' ' | tr -s ' ' | tr ' ' '\n' | grep '^/' | tr '\n' ' '`" + #echo "*=$*" >/dev/console + #echo "MNTPRMS=$MNTPRMS" >/dev/console + #sleep 10 + mount $MNTPRMS -o noatime,utf8 + else + mount $@ fi return $? }打完补丁以后重新制作initrd.gz包
$ find ./ | cpio -H newc -o | gzip -9 >../initrd.gz
- 16218 次点击
为什么不行啊?
改了改 /usr/local/bin/drive_all 总算成功了。很高兴!
有没有解决的办法?
mntfunc() {
if [ "`echo "$*" | grep 'ntfs'`" = "" ];then
mount $@
else
#screen out -o and -t options...
MNTPRMS="`echo -n "$*" | tr '\t' ' ' | tr -s ' ' | tr ' ' '\n' | grep '^/' | tr '\n' ' '`"
#v4.00 new ntfs-3g version...
#ntfs-3g $MNTPRMS -o force,silent,umask=0,no_def_opts,allow_other 2>/dev/null #default is rw,noatime
ntfs-3g $MNTPRMS -o umask=0,no_def_opts,noatime,rw,utf8 2>/dev/null #default is rw
ntfsRETVAL=$?
[ $ntfsRETVAL -eq 0 ] && return 0
if [ $ntfsRETVAL -eq 14 ];then
#ntfs-3g $MNTPRMS -o umask=0,no_def_opts,noatime,rw,remove_hiberfile 2>/dev/null
echo -e "\\033[1;31m" >/dev/console #31=red
echo -n "ERROR: Windows NTFS hibernated partition, cannot mount" > /dev/console
echo -e "\\033[0;39m" >/dev/console
return 14
else
ntfs-3g $MNTPRMS -o umask=0,no_def_opts,noatime,rw,utf8,force 2>/dev/null
fi
fi
return $?
}
如法泡制,发现仍然不能正常显示安装盘的中文名,其他盘的正常。
搜索“ntfs-3g $MNTPRMS -o umask=0,no_def_opts,noatime,rw,force”
在最后加上参数
并且还要升级ntfs.3g文件 或者重新编译
mntfunc() {
if [ "`echo "$*" | grep 'ntfs'`" != "" ];then
#screen out -o and -t options...
MNTPRMS="`echo -n "$*" | tr '\t' ' ' | tr -s ' ' | tr ' ' '\n' | grep '^/' | tr '\n' ' '`"
#v4.00 new ntfs-3g version...
#ntfs-3g $MNTPRMS -o force,silent,umask=0,no_def_opts,allow_other 2>/dev/null #default is rw,noatime
ntfs-3g $MNTPRMS -o umask=0,no_def_opts,noatime,rw 2>/dev/null #default is rw
ntfsRETVAL=$?
[ $ntfsRETVAL -eq 0 ] && return 0
if [ $ntfsRETVAL -eq 14 ];then
#ntfs-3g $MNTPRMS -o umask=0,no_def_opts,noatime,rw,remove_hiberfile 2>/dev/null
echo -e "\\033[1;31m" >/dev/console #31=red
echo -n "ERROR: Windows NTFS hibernated partition, cannot mount" > /dev/console
echo -e "\\033[0;39m" >/dev/console
return 14
else
ntfs-3g $MNTPRMS -o umask=0,no_def_opts,noatime,rw,force 2>/dev/null
fi
elif [ "`echo "$*" | grep 'vfat'`" != "" ];then
MNTPRMS="`echo -n "$*" | tr '\t' ' ' | tr -s ' ' | tr ' ' '\n' | grep '^/' | tr '\n' ' '`"
mount $MNTPRMS -o noatime,utf8,quiet
else
mount $@
fi
return $?
}
之前我没成功可能是因为我没有升级ntfs-3g.
另外,还有问题,就是这个系统的vi编辑器好像没法连续搜索字符串,我以前在RHEL,FC,甚至以前的老的UNIX系统上用vi都可以直接按n键就可以重复查找,但在这儿的vi不行,只能搜索一次,好难用哦,主要是不习惯。
还有这个puppy系统提供两种终端程序,Rxvt不支持右键拷贝,不知道怎样才能复制文本,另一种sakura就好多了,至少可以支持右键拷贝。sakura若在日语里就是“樱花”的意思啊,有可能是日本人开发的,要么就是日本留学生开发的。
我猜的 :)
发表新评论