这是根据自己的电脑挂载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能不能行!(哈哈,有点造假的味道)