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盘了。