红联Linux门户
Linux帮助

用fstab在linux下自动挂载Win的FAT和NTFS分区

发布时间:2008-10-17 16:00:27来源:红联作者:compat
作者:felonwan

这是根据自己的电脑挂载NTFS分区,结合网上信息,在archLinux wiki上的编写的页面中的一段。

想更好的了解fstab的用法,请参考页面:

http://wiki.archlinux.org/index.php/Fstab_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)#.E7.94.A8fstab.E8.87.AA.E5.8A.A8.E6.8C.82.E8.BD.BDFAT32.E5.92.8CNTFS.E5.88.86.E5.8C.BA

下面请看具体步骤:

1.先在用fdisk -l(可能需要在root权限下)得到硬盘信息表,例如:

# Device Boot Start End Blocks Id System
/dev/sda1 * 1 2397 19253871 b W95 FAT32
/dev/sda2 2398 3144 6000277+ 83 Linux
/dev/sda3 3145 9729 52894012+ 5 Extended
/dev/sda5 3145 3152 64228+ 83 Linux
/dev/sda6 3153 3276 995998+ 82 Linux swap / Solaris
/dev/sda7 3277 7340 32644048+ 83 Linux
/dev/sda8 7341 9729 19189611 7 HPFS/NTFS

从上面知道,这台电脑上只有一个硬盘,其中分区sda1为fat32格式,sda8为NTFS格式,sda1为可以启动的,因而可能为window的系统所在盘。下面把系统盘以只读方式持载上去,非系统盘sda8以读写方式挂载上去(不能挂载在"/"及其以下的任何目录)。

2.用你喜欢的编辑器在终端中打开/etc/fstab,例如:

nano /etc/fstab

在文件末尾加入:

/dev/sda1 /home/username/WindowsC vfat defaults,iocharset=cp936,umask=022,nls=gb2312 0 0/dev/sda8 /home/username/WindowsD ntfs defaults,iocharset=utf8,umask=000,nls=utf8 0 0

保存,退出。

3.在终端中输入

mount -a

你就应该能在/home/username/WindowsC下找到你的系统分区sda1内容,在/home/username/WindowsD中找到sda8的内容(其中username指用户名)。

我的win分区都是ntfs的,对于ntfs分区,进行了测试:

只用nls=utf8,就没有中文乱码!

而只用iocharset=utf8,显示的时候还会有乱码!

WindowsC用umask=022只能进行读操作,用000之后能进行正常读写,WindowsD能进行正常的文件读写。

注意:我是把分区都挂在“/home”的子目录下了,如果挂在“/”及其子目录下,即使用了umask=000也不能写的,这是Linux系统对“文件系统”权限的问题。为了双重保险,你可以把win的系统分区--C盘挂在“/”及其子目录下,但是要想写文件的话,最好挂在/home下。

其中挂载fat32的项用nls是猜想的,网上都是用codepage和iocharset,我不知道用nls能不能行!(哈哈,有点造假的味道)
文章评论

共有 0 条评论