linux的mount(挂载)命令详解
linux是⼀个优秀的开放源码的操作系统,可以运⾏在⼤到巨型⼩到掌上型各类计算机系统上,随着 linux系统的⽇渐成熟和稳定以及它开放源代码特有的优越性,linux在全世界得到了越来越⼴泛的应⽤。现在许多企业的计算机系统都是由UNIX系 统、Linux系统和Windows系统组成的混合系统,不同系统之间经常需要进⾏数据交换。下⾯我根据⾃⼰的实际⼯作经验介绍⼀下如何在linux系统 下挂接(mount)光盘镜像⽂件、移动硬盘、U盘以及Windows⽹络共享和UNIX NFS⽹络共享。
挂接命令(mount)
⾸先,介绍⼀下挂接(mount)命令的使⽤⽅法,mount命令参数⾮常多,这⾥主要讲⼀下今天我们要⽤到的。
命令格式:
mount [-t vfstype] [-o options] device dir
其中:
1.-t vfstype 指定⽂件系统的类型,通常不必指定。mount 会⾃动选择正确的类型。常⽤类型有:
光盘或光盘镜像:iso9660
DOS fat16⽂件系统:msdos
Windows 9x fat32⽂件系统:vfat
Windows NT ntfs⽂件系统:ntfs
Mount Windows⽂件⽹络共享:smbfs
UNIX(LINUX) ⽂件⽹络共享:nfs
2.-o options 主要⽤来描述设备或档案的挂接⽅式。常⽤的参数有:
loop:⽤来把⼀个⽂件当成硬盘分区挂接上系统
ro:采⽤只读⽅式挂接设备
rw:采⽤读写⽅式挂接设备
iocharset:指定访问⽂件系统所⽤字符集
linux怎么读取光盘文件
3.device 要挂接(mount)的设备。
4.dir设备在系统上的挂接点(mount point)。
挂接光盘镜像⽂件
由于近年来磁盘技术的巨⼤进步,新的电脑系统都配备了⼤容量的磁盘系统,在Windows下许多⼈都习惯把软件和资料做成光盘镜像⽂件通过虚拟光驱来使⽤。这样做有许多好处:⼀、减轻了光驱的磨损;⼆、现在硬盘容量巨⼤存放⼏⼗个光盘镜像⽂件不成问题,随⽤随调⼗分⽅便;三、硬盘的读取速度要远远⾼于光盘的读取速度,CPU占⽤率⼤⼤降低。其实linux系统下制作和使⽤光盘镜像⽐Windows系统更⽅便,不必借⽤任何第三⽅软件包。
1、从光盘制作光盘镜像⽂件。将光盘放⼊光驱,执⾏下⾯的命令。
#cp /dev/cdrom /home/sunky/mydisk.iso 或
#dd if=/dev/cdrom of=/home/sunky/mydisk.iso
注:执⾏上⾯的任何⼀条命令都可将当前光驱⾥的光盘制作成光盘镜像⽂件/home/sunky/mydisk.iso
2、将⽂件和⽬录制作成光盘镜像⽂件,执⾏下⾯的命令。
#mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
注:这条命令将/home/sunky/mydir⽬录下所有的⽬录和⽂件制作成光盘镜像⽂件/home/sunky/mydisk.iso,光盘卷标为:mydisk
3、光盘镜像⽂件的挂接(mount)
#mkdir /mnt/vcdrom
注:建⽴⼀个⽬录⽤来作挂接点(mount point)
#mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
注:使⽤/mnt/vcdrom就可以访问盘镜像⽂件mydisk.iso⾥的所有⽂件了。
挂接移动硬盘
对linux系统⽽⾔,USB接⼝的移动硬盘是当作SCSI设备对待的。插⼊移动硬盘之前,应先⽤fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
[root at pldyrouter /]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
在这⾥可以清楚地看到系统有⼀块SCSI硬盘/dev/sda和它的四个磁盘分区/dev/sda1 -- /dev/sda4, /dev/sda5是分区/dev/sda4的逻辑分区。接好移动硬盘后,再⽤fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况
[root at pldyrouter /]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
Disk /dev/sdc: 40.0 GB, 40007761920 bytes
255 heads, 63 sectors/track, 4864 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 510 4096543+ 7 HPFS/NTFS
/dev/sdc2 511 4864 34973505 f Win95 Ext'd (LBA)
/dev/sdc5 511 4864 34973473+ b Win95 FAT32
⼤家应该可以发现多了⼀个SCSI硬盘/dev/sdc和它的两个磁盘分区/dev/sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分区的逻辑分区。我们可以使⽤下⾯的命令挂接/dev/sdc1和/dev/sdc5。
#mkdir -p /mnt/usbhd1
#mkdir -p /mnt/usbhd2
注:建⽴⽬录⽤来作挂接点(mount point)
#mount -t ntfs /dev/sdc1 /mnt/usbhd1
#mount -t vfat /dev/sdc5 /mnt/usbhd2
注:对ntfs格式的磁盘分区应使⽤-t ntfs 参数,对fat32格式的磁盘分区应使⽤-t vfat参数。若汉字⽂件名显⽰为乱码或不显⽰,可以使⽤下⾯的命令格式。
#mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1
#mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2
linux系统下使⽤fdisk分区命令和mkfs⽂件系统创建命令可以将移动硬盘的分区制作成linux系统所特有的ext2、ext3格式。这样,在linux 下使⽤就更⽅便了。使⽤下⾯的命令直接挂接即可。
#mount /dev/sdc1 /mnt/usbhd1
挂接U盘
和USB接⼝的移动硬盘⼀样对linux系统⽽⾔U盘也是当作SCSI设备对待的。使⽤⽅法和移动硬盘完全⼀样。插⼊U盘之前,应先⽤fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
[root at pldyrouter root]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
插⼊U盘后,再⽤fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
[root at pldyrouter root]# fdisk -l
Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
255 heads, 63 sectors/track, 8924 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 4 32098+ de Dell Utility
/dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
/dev/sda3 2555 7904 42973875 83 Linux
/dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
/dev/sda5 7905 8924 8193118+ 82 Linux swap
Disk /dev/sdd: 131 MB, 131072000 bytes
9 heads, 32 sectors/track, 888 cylinders
Units = cylinders of 288 * 512 = 147456 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 * 1 889 127983+ b Win95 FAT32
Partition 1 has different physical/logical endings:
phys=(1000, 8, 32) logical=(888, 7, 31)
系统多了⼀个SCSI硬盘/dev/sdd和⼀个磁盘分区/dev/sdd1,/dev/sdd1就是我们要挂接的U盘。
#mkdir -p /mnt/usb
注:建⽴⼀个⽬录⽤来作挂接点(mount point)
#mount -t vfat /dev/sdd1 /mnt/usb
注:现在可以通过/mnt/usb来访问U盘了, 若汉字⽂件名显⽰为乱码或不显⽰,可以使⽤下⾯的命令。
#mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb
挂接Windows⽂件共享
Windows⽹络共享的核⼼是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使⽤samba 软件包。现在流⾏的linux发⾏版绝⼤多数已经包含了samba软件包,如果安装linux系统时未安装samba请⾸先安装samba。当然也可以到 ⽹站下载......新的版本是3.0.10版。
当windows系统共享设置好以后,就可以在linux客户端挂接(mount)了,具体操作如下:
# mkdir –p /mnt/samba
注:建⽴⼀个⽬录⽤来作挂接点(mount point)
# mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba
注:administrator 和 pldy123 是ip地址为10.140.133.23 windows计算机的⼀个⽤户名和密码,c$是这台计算机的⼀个磁盘共享
如此就可以在linux系统上通过/mnt/samba来访问windows系统磁盘上的⽂件了。以上操作在redhat as server 3、redflag server 4.1、suse server 9以及windows NT 4.0、windows 2000、windows xp、windows 2003环境下测试通过。
挂接UNIX系统NFS⽂件共享
类似于windows的⽹络共享,UNIX(Linux)系统也有⾃⼰的⽹络共享,那就是NFS(⽹络⽂件系统),下⾯我们就以SUN Solaris2.8和REDHAT as server 3 为例简单介绍⼀下在linux下如何mount nfs⽹络共享。
在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。
1、Solaris系统NFS服务端配置⽅法如下:
(1)修改 /etc/dfs/dfstab, 增加共享⽬录
share -F nfs -o rw /export/home/sunky
(2)启动nfs服务
# /etc/init.d/nfs.server start
(3)NFS服务启动以后,也可以使⽤下⾯的命令增加新的共享
# share /export/home/sunky1
# share /export/home/sunky2
注:/export/home/sunky和/export/home/sunky1是准备共享的⽬录
2、linux系统NFS服务端配置⽅法如下:
(1)修改 /etc/exports,增加共享⽬录
/export/home/sunky 10.140.133.23(rw)
/export/home/sunky1 *(rw)
/export/home/sunky2 linux-client(rw)
注:/export/home/⽬录下的sunky、sunky1、sunky2是准备共享的⽬录,10.140.133.23、*、 linux-client是被允许挂接此共享linux客户机的IP地址或主机名。如果要使⽤主机名linux-client必须在服务端主机 /etc/hosts⽂件⾥增加linux-client主机ip定义。格式如下:
10.140.133.23 linux-client
(2)启动与停⽌NFS服务
/etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)
/etc/rc.d/init.d/nfs start 启动NFS服务
/etc/rc.d/init.d/nfs stop 停⽌NFS服务
注:若修改/etc/export⽂件增加新的共享,应先停⽌NFS服务,再启动NFS服务⽅能使新增加的共享起作⽤。使⽤命令exportfs -rv也可以达到同样的效果。
3、linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享
# mkdir –p /mnt/nfs
注:建⽴⼀个⽬录⽤来作挂接点(mount point)
#mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs
注:这⾥我们假设10.140.133.9是NFS服务端的主机IP地址,当然这⾥也可以使⽤主机名,但必须在本机/etc/hosts⽂件⾥增加服务端ip定义。/export/home/sunky为服务端共享的⽬录。
如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS⽅式共享出来的⽂件了。
以上操作在 redhat as server 3、redflag server4.1、suse server 9以及Solaris 7、Solaris 8、Solaris 9 for x86&sparc环境下测试通过。
权限问题:
假設 server 端的使⽤者 jack, user id 為 1818, gid 為 1818, client 端也有⼀個使⽤者 jack,但是 uid 及 gid 是 1818。client 端的 jack 希望能完全讀寫 server 端的 /home/jack 這個⽬錄。server 端的 /etc/exports 是
這樣寫的:
/home/jack *(rw,all_squash,anonuid=1818,anongid=1818)
這個的設定檔的意思是,所有 client 端的使⽤者存取 server 端 /home/jack 這
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论