[实例]用fstab在Linux下自动挂载Win的FAT和NTFS分区


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

讲解下关于fstab的用法

下面请看具体步骤:

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能不能行!(哈哈,有点造假的味道)

相关内容