怎样才能让linux支持ntfs格式

怎样才能让linux支持ntfs格式,第1张

不能。你说的FAT32跟NTFS是windows文件系统(不是你说的分区)。而Linux目前使用比较多的文件系统为ext3、ext4、xfs等。
而你要在原有的windows系统上装Linux,需要一个完整的分区空间来给Linux,Linux在安装的时候会重做文件系统。

Linux内核默认不支持NTFS格式文件系统,只要是24以后的内核,使用默认配置在内核选项中添加NTFS支持(好像是File Systems--〉NTFS file system support ),使用生成的内核,即可支持NTFS系统的读取功能

你用的是什么版本的linux?如果是ubuntu804以上的版本,它会自动挂载ntfs分区的,自动挂载在/media下。当然,你也可以用mount命令手动挂载,只是在挂载前,你必须先用umount命令卸载,不卸载旧的,你是无法挂载新的。我估计你是没有先卸载,而试图直接挂载,所以导致了你挂载不上的。

通常linux上mount的ntfs格式的盘所有文件和属主和属组都是root,有些程序的运行会由于文件 *** 作权限问题导致失败

所以有必要改变ntfs上的文件的属主和属组,但通常chown,chgrp在ntfs上都不起作用

需要改变mount的参数才能让chown,chgrp有效

sudo mount /dev/sda2 -t ntfs-3g -o permissions /opt/a

用ntfs-3g类型替代ntfs类型, 同时加上 -o permissions 选项

1)用blkid命令获得磁盘的uuid

sudo blkid | grep /dev/sda2

2) 在/etc/fstab文件中添加一行,并保存

UUID=[命令1中显示的uuid]   /opt/a     ntfs-3g permissions     0       1

如果你是安装的mandrake和suse linux版本,那么就不用通过修改内核,就可以访问ntfs分区了
如果是安装的红帽子的话,那么必须通过修改内核来访问ntfs分区:
1、找到编译内核所需要的config文件。 在/usr/src/linux/configs目录下有若干编译内核所用的配置。选择我们想要的配置,将它复制到/usr/src/linux目录下,改名为config,命令如下:cp /usr/src/linux/configs/kernel-2216-i686config /usr/src/linux/config
2 、修改config文件,去掉不用的模块,加上自己想要的模块。 打开config,有许多XXXX=m的项,这些都是要被编译为模块的项,因为我们不希望编译这些模块,所以要把XXXX=m的项统统去掉。然后再加上我们想要的模块,将# CONFIG_NTFS_FS is not set 改为CONFIG_NTFS_FS=m 。
3、编译NTFS模块。 在/usr/src/linux目录下运行命令make modules来编译我们想要的NTFS模块。
4、安装NTFS模块。 编译后得到的ntfso在/usr/src/linux/fs/ntfs目录下,手动将它复制到正确的目录下。 cp /usr/src/linux/fs/ntfs/ntfso /lib/modules/2216-22/fs/
注意:千万不能运行命令make modules_install,否则将带来严重的后果,它会删除你系统中的所有模块,只安装刚刚编译的模块(ntfso)。
5、载入NTFS模块 运行命令depmod;modprobe ntfs
或者这样:
直接编写fstab文件
这是最简单的方法。直接编写fstab文件的好处还在于,linux会在启动时自动为你装载你在其中定义的windows分区,不用在每次使用都要输入:mount -t vfat /dev/hda1 /mnt/winc。使用su命令转为root权限,用vim或者其他编辑软件打开fstab(位于/etc/fstab),命令如下:vim /etc/fstab,内容示例如下:
/dev/hda8 / ext2 defaults 1 1
/dev/hda6 /boot ext2 defaults 1 2
none /dev/pts devpts mode=0620 0 0
/dev/hda9 /home ext2 defaults 1 2
/mnt/cdrom /mnt/cdrom supermount fs=iso9660,dev=/dev/cdrom 0 0
/mnt/floppy /mnt/floppy supermount fs=vfat,dev=/dev/fd0 0 0
/dev/hda1 /mnt/winc vfat user,exec,umask=0,codepage=936,iocharset=gb2312 0 0
/dev/hda5 /mnt/wind vfat user,exec,umask=0,codepage=936,iocharset=gb2312 0 0
none /proc proc defaults 0 0
/dev/hda7 /usr ext2 defaults 1 2
/dev/hda10 swap swap defaults 0 0
把/dev/hda1改为你的windows分区所在即可,如果windows有两个分区,一般就是/dev/hda1和/dev/hda3。如果你不清楚,按照我的fstab内容在你的fstab文件中加入那两行就行了,如果使用ntfs的,把其中的vfat改为ntfs即可。当然你首先要在/mnt目录下建立两个目录winc和wind,命令如下:mkdir /mnt/winc /mnt/wind。重新启动后看能不能访问你的windows分区,逐步试探更改/dev/hda(代表数字)直到能访问为止。

在挂在windows下的NTFS分区之前,现确定你的linux系统中已经安装了fuse和ntfs-3g这两个软件包的,可以是用源码包。简单的编译一下就OK了
在fedora下的:
rpm -qa | grep fuse ntfs-3g
或者看看你的系统中有没有加载这个fuse的模块:modprobe -l fuse
如果没有任何的信息显示(已经用源码包安装过的除外)
#cd fuse-<version>
#/configure
#make && make install

#cd ntfs-3g
#/configure
#make && make install
#modprobe -l fuse
# vi /etc/fstab //这一步的目的就是让windows下的ntfs分区在linux启动的时候自动挂载
格式如下:
要发挂载的分区 挂载点 文件系统 挂载方式 是否转储扫描
/dev/sda5 /win/d vfat defaults 0 0
/dev/sda6 /win/e ntfs-3g defaults 0 0
附:####################################################################
# fstab文件的作用
#######################################################################
文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过"mount /directoryname"命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。同时fsck、 mount、umount的等命令都利用该程序。
# fstab文件格式
下面是/etc/fatab文件的一个示例行:
fs_spec fs_file fs_type fs_options fs_dump fs_pass
/dev/hda1 / ext2 defaults 1 1
fs_spec - 该字段定义希望加载的文件系统所在的设备或远程文件系统,对于一般的本地块设备情况来说:IDE设备一般描述为/dev/hdaXN,X是IDE设备通道 (a, b, or c),N代表分区号;SCSI设备一描述为/dev/sdaXN。对于NFS情况,格式一般为<host>:<dir>,例如: `knuthaebnl:/'。对于procfs,使用`proc'来定义。
fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。
fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等。
fs_options - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用"defaults"就可以满足需要。其他常见的选项包括:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13387622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存