Linux下手动设置Windows磁盘挂载点

我的笔记本是同时装了Linux系统和Windows系统。Linux系统启动后,Windows磁盘就会自动挂载在/media目录下,而且挂载点的名称又长又难记。例如,windows系统C盘挂载后名称变为FE6C0C5C6C0C1257。如果windows系统总共有好几个盘,那么挂载后,就是一堆字符串,很难分辨到底各自对应哪个盘。于是,我决定手动修改磁盘挂载点。

首先,执行命令“sudo fdisk -l”,显示系统存在的各个磁盘分区信息如下所示:

Device Boot Start End Blocks Id System

/dev/sda1 * 1 2150 17269843 7 HPFS/NTFS

/dev/sda2 2151 14593 99948367 5 Extended

/dev/sda5 2151 4802 21302158+ 7 HPFS/NTFS

/dev/sda6 7414 14593 57673318+ 7 HPFS/NTFS

/dev/sda7 4803 5051 1998848 82 Linux swap / Solaris

/dev/sda8 5052 7413 18971648 83 Linux

由于我的windows系统总共有3个盘:C盘,D盘,E盘,且都是NTFS格式,所以“/dev/sda1”应该对应C盘,“/dev/sda5”应该对应D盘,“/dev/sda6”应该对应E盘。C盘是windows操作系统,一般不需要访问。只需要重新挂载D盘和E盘即可。于是我使用mkdir命令在"/home/cary"(cary为我的用户名)目录下创建了programFiles和myDocuments两个目录分别作为D盘和E盘的挂载点(实际上这两个目录的名字是可以随意命名的)。

执行“sudo gedit /etc/fstab”打开fstab文件。参照文件中提示的格式,在文件最后添加下面两行语句:

/dev/sda5 /home/cary/programFiles ntfs defaults,user,rw 0 0

/dev/sda6 /home/cary/myDocuments ntfs defaults,user,rw 0 0

保存该文件后,先执行"sudo umount -a"命令卸载各磁盘,再执行“sudo mount -a”重新挂载所有磁盘。则D盘和E盘就都挂载在指定路径下了。通过“~/programFiles”和“~/myDocuments”两个路径就能访问。

下面对fstab文件作简单介绍。

文件/etc/fstab存放的是系统中的文件系统信息。当正确的设置了该文件,则可以通过mount /directoryname命令来加载一个文件系统,每种文件系统都对应一个独立的行,每行中的字段都有空格或tab键分开。

fstab文件格式示例如下:

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。

fs_file - 该字段描述希望的文件系统加载的目录点,对于swap设备,该字段为none;对于加载目录名包含空格的情况,用40来表示空格。

fs_type - 定义了该设备上的文件系统,一般常见的文件类型为ext2 (Linux设备的常用文件类型)、vfat(Windows系统的fat32格式)、NTFS、iso9600等。

fs_options - 指定加载该设备的文件系统是需要使用的特定参数选项,多个参数是由逗号分隔开来。对于大多数系统使用defaults就可以满足需要。其他常见的选项包括:rw 以读写模式加载该文件系统;user 允许普通用户加载该文件系统。

fs_dump - 该选项被dump命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0

fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统/对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0