OpenSUSE NTFS 全读写教程

Jump to: navigation, search

作者: Thruth

简述

本文档说明如何用测试版的 ntfs-3g 加载 NTFS 格式分区,完全实现高速读写。ntfs-3g 还是测试版本,尽管经过众多测试都没出过问题,若出现问题还是后果自负。

需求

确定你安装了如下包,如果没有安装上。

gcc

make

fuse

fuse-devel

可以去车间版下载 fuse/fuse-devel 包,要求版本高于 2.6.0。

下载安装

一般用户请在这里下载对应你系统版本的 fuse 和 ntfs-3g 包并安装上。

如果你希望自己编译安装最新的 ntfs-3g 首先,下载最新 ntfs-3g 驱动:

http://www.ntfs-3g.org

在文件所载目录进终端:

tar xvf 文件名.tgz
./configure
如果出现错误则按照提示解决,没有错误提示则:
make
su
输入密码后
make install

使用

单次调用

假设你的 NTFS 格式的 C 盘为 /dev/hda1(如果已经挂在了就umount掉它)

modprobe fuse
ntfs-3g /dev/hda1 /windows/C/ -o silent,umask=0,locale=zh_CN.utf8

开机直接加载 NTFS 分区

如果你想开机直接从fstab加载用这个ntfs-3g驱动挂载你的 NTFS 硬盘分区:

1.让 kernel 启动时调用 fuse 模块

root权限编辑/etc/sysconfig/kernel文件 (或者使用YaST里面sysconfig编辑器):

找到 MODULES_LOADED_ON_BOOT 这一行,在后面引号里面加入 fuse

如果你没修改过这里,默认文件内容是 MODULES_LOADED_ON_BOOT=""

改为MODULES_LOADED_ON_BOOT="fuse"

2.修改 fstab

root 权限编辑 /etc/fstab 文件,假设你的 NTFS 格式的 C 盘为 /dev/hda1,则那一行应该为:

/dev/hda1            /windows/C           ntfs-3g    defaults,locale=zh_CN.utf8 0 0

读写 NTFS 移动硬盘

插上NTFS 移动硬盘会自动监测到

首先用mount命令显示一下它的位置

比如会显出来 /dev/sda1 被挂在 /media/usbdisk

此时卸载磁盘,如这里是

#umount /media/usbdisk

若有多个分区,则可能是 /media/usbdisk-1 之类

不要拔下硬盘,重新以 ntfs-3g 驱动挂载:

#modprobe fuse
#ntfs-3g /dev/sda1 /media/usbdisk/ -o silent,umask=0,locale=zh_CN.utf8,nonempty

此时可以进入 /media/usbdisk 之类目录读写

自动挂载

如果想自动挂上可以用udev rules 运blkid先把你想自动挂载的 UUID 写下来 在/etc/udev/rules.d/60-persistent-storage.rules内加上

ENV{ID_FS_UUID}=="你的UUID", RUN+="ntfs-3g /dev/disk/by-uuid/你的UUID /mnt/NTFS挂点  -o silent,umask=0,locale=zh_CN.utf8,nonempty"

已知问题

openSUSE 10.2 自带的内核不支持最新的fuse,有些高级功能无法实现。但正常读写操作均不受影响。如有需求,请自行编译 2.6.20 版本以上内核。