LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1950|回复: 13

自动识别windows分区并自动挂载,并对ntfs可读写

[复制链接]
发表于 2006-10-31 12:03:40 | 显示全部楼层 |阅读模式
Loving Archlinux,是时候来点贡献罗。

注意我是用sudo 来获得root 权限

首先安装ntfs-3g(依赖fuse)使用community源


[php]sudo pamcn -S ntfs-3g[/php]


自动识别windows分区并自动挂载

首先在 /etc/fstab 清空或注释掉你的windows分区挂载

然后

sudo 你的编辑器  autowinfs

输入以下内容:

#!/bin/sh
#
# autowinfs - auto mount windows filesystem
#
# Copyright (c) 2005 Jiahua Huang
#
# Depends: fuse-utils ntfs-3g

export LANG=zh_CN.UTF-8

do_mount(){

## for ntfs-3g
modprobe fuse

## umount other
umount /media/*

## make mountpoint
mkdir -p /windows/
rmdir /windows/* 1> /dev/null 2>&1
chmod 777 /windows

## mount vfat parts
fdisk -l | grep 'FAT' | cut -d' ' -f1 | cut -d/ -f3 | while read WDISKS
do
  mkdir "/windows/$WDISKS"
  echo mount /dev/$WDISKS /windows/$WDISKS -t vfat -o user,utf8,umask=0
  mount /dev/$WDISKS /windows/$WDISKS -t vfat -o user,utf8,umask=0
done

## mount ntfs parts
fdisk -l  | grep 'NTFS' | cut -d' ' -f1 | cut -d/ -f3 | while read WDISKS
do
  mkdir "/windows/$WDISKS"
  echo  ntfs-3g /dev/$WDISKS /windows/$WDISKS -o umask=0,show_sys_files,silent
  ntfs-3g /dev/$WDISKS /windows/$WDISKS -o umask=0,show_sys_files,silent
done


}

##
do_mount >/var/log/autowinfs.log 2>&1 &


保存退出
再运行命令:
[php]
sudo chmod +x autowinfs
sudo ./autowinfs
[/php]

windows 下的所有分区就自动挂在/windows/下
如果不能挂载,在/var/log/autowinfs.log 查看问题所在

让autowinfs开机时自动启动
[php]
sudo cp autowinfs /etc/rc.d/
sudo vi /etc/rc.conf
[/php]
在DAEMONS里添加 autowinfs


附件含有autowinfs脚本

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2006-10-31 22:30:48 | 显示全部楼层
干什么非要弄自动挂载?
楼主能不能介绍如何写入ntfs就行了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-31 23:42:57 | 显示全部楼层
Post by blance
干什么非要弄自动挂载?
楼主能不能介绍如何写入ntfs就行了
用ntfs-3g 挂载 ntfs分区,就可以直接对分区读写,
命令:ntfs-3g /dev/你的ntfs分区 /你的目的目录 -o 选项
回复 支持 反对

使用道具 举报

发表于 2006-11-1 01:03:41 | 显示全部楼层
如何写入fstab呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-1 01:26:40 | 显示全部楼层
如果你用我的autowinfs脚本,那么它会自动写入到fstab

如果你要手动写的话可以这样写
/dev/你的ntfs分区 /你的目的目录 ntfs-3g  auto,user,nls=utf8,umask=0   0 0

手动写的话,我没测试过,按文档说明应该是这样写的。请试一下,有问题请反馈。
回复 支持 反对

使用道具 举报

发表于 2006-11-1 14:35:46 | 显示全部楼层
[php]
[root@ccnu-blance autowinfs]# makepkg
==> ERROR: install scriptlet (vmware.install) does not exist.
[/php]
???
回复 支持 反对

使用道具 举报

发表于 2006-11-1 14:40:06 | 显示全部楼层
[php]
[root@ccnu-blance autowinfs]# pacman -Ss ntfs
extra/ntfsprogs 1.13.1-1
    NTFS Resizing Tool
community/ntfs-3g 20070920-1
    Third generation Linux NTFS driver
[root@ccnu-blance autowinfs]# pacman -S ntfs-3g

Targets: fuse-2.5.3-1 ntfs-3g-20070920-1

Total Package Size:   0.3 MB

Proceed with upgrade? [Y/n] y

:: Retrieving packages from extra...
fuse-2.5.3-1             [################] 100%      82K    17.7K/s  00:00:04

:: Retrieving packages from community...
ntfs-3g-20070920-1       [################] 100%     249K    36.6K/s  00:00:06

checking package integrity... done.
loading package data... done.
checking for file conflicts... done.
installing fuse... done.
==> You must load the fuse kernel module to use FUSE.
-> Run 'modprobe fuse' to load the module now.
-> Add fuse to $MODULES in /etc/rc.conf to load on every boot.
==> You will need a /dev/fuse device node to use FUSE.
-> If you use udev, run 'udevstart' to re-populate /dev.
-> For a static /dev, run: mknod /dev/fuse -m 0666 c 10 229
installing ntfs-3g... done.
[root@ccnu-blance autowinfs]# nano /etc/rc.conf

[/php]
源里面原来有的啊?楼主也不知道?
而且还要加入fuse模块
回复 支持 反对

使用道具 举报

发表于 2006-11-1 15:03:20 | 显示全部楼层
已加入fuse模块,/etc/rc.conf
[php]
MODULES=(fglrx fuse)
# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"
[/php]
ntfs也有权限问题,所以楼主把user写错了,群组应该是users
其次,挂载分区目录可以看到,目录里面的文件都没有了?/etc/fatab
[php]
。。。
/dev/sda7 /mnt/sda7 ntfs ,umask=0,iocharset=cp936,utf8 0 0
。。。
/dev/sdb7 /mnt/sdb7 vfat ,umask=0,iocharset=cp936,utf8 0 0
/dev/sdb8 /mnt/sdb8 ntfs-3g auto,users,umask=0,nls=utf8 0 0
。。。
[/php]
可以肯定的是挂载命令的问题了,sdb8下users用户已经可以用mkdir命令创建文件了,就是在x下不能用鼠标创建,为何?
开机过程在mount地方也有提示Volume的问题,难道卷标也要加入fstab?不懂~~~(我的ntfs分区在windows下是有卷标的)

PS:以前的ntfs挂载读取没有任何问题的~~~好像是中文支持的问题,中文文件都不见了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-1 17:11:17 | 显示全部楼层
我没有community源,不知道blance兄用的是什么源?

试下手动挂载

ntfs-3g /dev/sdb8 /mnt/sdb8  -o umask=0,show_sys_files,silent

提示Volume的问题不是卷标问题,应该是user,没有users这个选项,应该去掉auto选项

我用脚本挂载,没有任何问题,中文名也能显示,也可以创建文件。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-1 17:21:25 | 显示全部楼层
Post by blance
[php]
[root@ccnu-blance autowinfs]# makepkg
==> ERROR: install scriptlet (vmware.install) does not exist.
[/php]
???



不好意思文件弄错,已经重新上传了,为什么我的firefox 不能下载linuxsir论坛的附件呢?
回复 支持 反对

使用道具 举报

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

本版积分规则

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