服务器 频道

RH9.0 Linux下文件系统的挂载

  【IT168 服务器学院】Linux的文件系统的组织和MS Windows中的是不相同的,Linux中没有如Windows系统中的驱动盘符(如C:,A:,F:)的概念,而是按层次结构组织,从根(/)开始,向下依次为目录和子目录。要在Linux下挂载其它的文件系统,以要挂载U盘为例,可以先用fdisk命令查看在硬盘上当前设置了哪些分区,在我的机器上显示:

    [root@localhost root]# fdisk -l

  Disk /dev/sda: 525 MB, 525901824 bytes
  16 heads, 63 sectors/track, 1019 cylinders
  Units = cylinders of 1008 * 512 = 516096 bytes

  Device Boot    Start       End    Blocks   Id
  System
  /dev/sda1   *         1      1019    513544+   6
  FAT16

  Disk /dev/hdc: 40.0 GB, 40020664320 bytes
  255 heads, 63 sectors/track, 4865 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot    Start       End    Blocks   Id
  System
  /dev/hdc1   *         1      1020   8193118+   b
  Win95 FAT32
  /dev/hdc2          1021      4864  30876930    f
  Win95 Ext''d (LBA)
  /dev/hdc5          1021      2295  10241406    b
  Win95 FAT32
  /dev/hdc6          2296      3590  10402056    7
  HPFS/NTFS
  /dev/hdc7          3591      3603    104391   83
  Linux
  /dev/hdc8          3604      4798   9598806   83
  Linux
  /dev/hdc9          4799      4863    522081   82
  Linux swap
                     (fig_1)

  上面粗体字表示的是我的U盘分区在/dev/sda1上,所以要挂载U盘,输入命令
  # mount /dev/sda1 /mnt/
  当然,为了一眼就能分别同时在/mnt/下已经挂载的多个文件系统,可以用mkdir命令在/mnt/下建几个目录,如#mkdir /mnt/usb
  该命令在系统安装后没有修改过/etc/fstab文件的话,是只允许根用户才能使用该命令来进行挂载的,但是任何合法的用户都可以用 mount(不使用选项) 查看哪个有效磁盘分区被实际挂载和装载的位置。
  [root@localhost root]# mount
  /dev/hdc8 on / type ext3 (rw)
  none on /proc type proc (rw)
  usbdevfs on /proc/bus/usb type usbdevfs (rw)
  /dev/hdc7 on /boot type ext3 (rw)
  none on /dev/pts type devpts (rw,gid=5,mode=620)
  none on /dev/shm type tmpfs (rw)
  /dev/sda1 on /mnt/usb type vfat (rw)
   
  挂载上去的文件系统应该在不用时用umount 命令卸载:
  [root@localhost root]# umount /dev/sda1 /mnt/
  可能会得到返回信息:Device is busy,这表明卸载请求被拒,可能的是原因是一个进程打开了在此设备上的一个文件,或者有一个使用此设备目录的shell打开作为当前目录。解决方法是停止此进程或将目录改为此设备之外的目录,再重新umount。
     
  此外,从图1(fig_1)中可看到有Windows分区,如表中有下划线的/dev/hdc5,这是我的电脑中Windows下的D盘,那么是否可以在Linux下访问这个分区呢?我是这样做的:# mkdir /mnt/win ------打算将该盘挂载到此位置;
  # mount /dev/hdc5 /mnt/win -------将D盘挂载过去。
  执行上面的命令行后,我打开/mnt/win目录,已经可以看到D盘中存储的文件了,不过在D盘下用中文命名的文件其名字显示的都是???,同时有几个英文命名的文件也是显示??的。我想可能是Linux和Windows两者对文件系统类型不是很相互支持,或者是我装的Linux对中文的支持不是很到位吧。
   
  Linux中对软盘,光盘的挂载是可以直接用# mount /mnt/floppy 或 /mnt/cdrom的,那么能不能对U盘什么的也这样直接用呢。打开/etc/fstab文件(fstab是定义可以挂载哪些文件的文件):
  /etc/fstab文件内容
  LABEL=/         /         ext3  defaults        1 1
  LABEL=/boot     /boot     ext3  defaults        1 2
  none            /dev/pts  devpts gid=5,mode=620  0 0
  none            /proc     proc  defaults        0 0
  none            /dev/shm  tmpfs defaults        0 0
  /dev/hdc9       swap       swap  defaults        0 0
  /dev/cdrom      /mnt/cdrom  udf,iso9660 noauto,owner,kudzu,ro 0 0
  /dev/fd0       /mnt/floppy  auto  noauto,owner,kudzu 0 0

  此文件的每个字段的内容分别为:
  字段1:设备名表示文件系统。在此字段上放置none表示此文件系统与特殊设备没有关联。而使用LABLE,则指定全局统一标识符(UUID)或卷标代替设备名。这一方法的优点是,由于分区是通过卷标来标识的,所以,可将一个卷标移动到不同的设备名而不用修改fstab文件。
  字段2:文件系统的挂载点。
  字段3:文件系统类型。
  字段4:mount命令选项。noauto选项禁止被标识的文件系统在启动时挂载。ro说明挂载一个只读文件系统。多个选项用逗号隔开。
  字段5:表示文件是否需要转储,1表示文件需要转储,2表示不必要。
  字段6:表示文件系统是否要使用fsck命令检查。1表要需要,2表示不需要。
   
  可在/etc/fstab 文件中创建磁盘或分区选项。如加上
   /dev/sda1   /mnt/usb auto owner,user 0 0
  这样,就可以直接用# mount /mnt/usb 挂载U盘了。同时,在字段4中加上了user选项,表明不需要根用户的身份也能用此命令挂载U盘了。
  

0
相关文章