Linux系统的三种挂载方式
在服务器使用过程中,mount挂载几乎是最常用的一种操作了,今天就给大家介绍一下linux文件挂载相关介绍。
介绍:
mount是Linux下的一个命令,它可以将分区挂载或挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,当我们只要访问这个文件夹时,就相当于访问该分区了。
一、手动挂载
命令格式:
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:指定访问文件系统所用字符集
3、device 要挂接(mount)的设备。
4、dir设备在系统上的挂接点(mount point)。
挂接光盘镜像文件
---从光盘制作光盘镜像文件。将光盘放入光驱,执行下面的命令。
#cp /dev/cdrom /home/xiuxiu/mydisk.iso 或 #dd if=/dev/cdrom of=/home/xiuxiu/mydisk.iso
注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘镜像文件/home/xiuxiu/mydisk.iso
---将文件和目录制作成光盘镜像文件,执行下面的命令,genisoimage和mkisofs是同一个命令,-r或-rational-rock表示使用Rock Ridge Extensions,并开放所有的文件读取权限,针对 UNIX系统的 ISO-9660文件系统,-J或-joliet表示使用Joliet格式的目录或者文件名称,微软公司自定义的光盘文件系统 ,也是ISO-9660 的一种扩展,-V <光盘ID>或-volid <光盘ID>表示指定光盘的卷册集ID
mkisofs -r -J -V mydisk -o /home/xiuxiu/mydisk.iso /home/xiuxiu/mydir
注:这条命令将/home/xiuxiu/mydir目录下所有的目录和文件制作成光盘镜像文件/home/xiuxiu/mydisk.iso,光盘卷标为:mydisk
---光盘镜像文件的挂接(mount)
mkdir /mnt/vcdrom
注:建立一个目录用来作挂接点(mount point)
mount -o loop -t iso9660 /home/xiuxiu/mydisk.iso /mnt/vcdrom
注:使用/mnt/vcdrom就可以访问光盘镜像文件mydisk.iso里的所有文件了。
挂接移动硬盘
对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk –l或more /proc/partitions查看系统的硬盘和硬盘分区情况。接好移动硬盘后,再用fdisk –l或more。应该可以发现多了一个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、ext4格式。这样,在linux下使用下面的命令直接挂接即可。
mount /dev/sdc1 /mnt/usbhd1
挂接U盘
和USB接口的移动硬盘一样对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全一样。插入U盘之前,应先用fdisk –l 或more /proc/partitions查看系统的硬盘和硬盘分区情况。
mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb
挂接Windows文件共享
Windows网络共享的核心是SMB/CIFS,SMB使用点对点的通讯方式,一个客户端向一个服务器提出请求,服务器相应地回答。在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba软件包。现在流行的linux发行版绝大多数已经包含了samba软件包,如果安装linux系统时未安装samba请首先安装samba。当windows系统共享设置好以后,就可以在linux客户端挂接(mount)了,具体操作如下:
mkdir –p /mnt/samba
注:建立一个目录用来作挂接点(mount point)
mount -t smbfs -o username=administrator,password=pas123 //10.140.133.25/c$ /mnt/samba
注:administrator 和 pas123 是ip地址为10.140.133.25 windows计算机的一个用户名和密码,c$是这台计算机的一个磁盘共享。
如此就可以在linux系统上通过/mnt/samba来访问windows系统磁盘上的文件了。
挂接UNIX系统NFS文件共享
类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文件系统),下面我们就以SUN Solaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mount nfs网络共享。
在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。
linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享# mkdir –p /mnt/nfs
注:建立一个目录用来作挂接点(mount point)
mount -t nfs -o rw 10.140.133.10:/export/home/xiuxiu /mnt/nfs
注:这里假设10.140.133.10是NFS服务端的主机IP地址,当然这里也可以使用主机名,但必须在本机/etc/hosts文件里增加服务端ip定义。/export/home/sunky为服务端共享的目录。
如此就可以在linux客户端通过/mnt/nfs来访问其它linux系统或UNIX系统以NFS方式共享出来的文件了。
补充1:
SMB(Server Message Block,又称Common Internet File System(CIFS))是由微软开发的一种软件程序级的网络传输协议,主要用来使得一个网络上的机器共享计算机文件、打印机、串行端口和通讯等资源。它也提供认证的行程间通讯机能。它主要用在装有Microsoft Windows的机器上,在这样的机器上被称为Microsoft Windows Network。经过Unix服务器厂商重新开发后,它可以用于连接Unix服务器和Windows客户机,执行打印和文件共享等任务。
CIFS 的消息格式不同与NFS的固定长度格式, 大多数消息体都包含可变长的数据,这带来一定的协议复杂性。CIFS 消息一般在netbios或Tcp协议层上,分别使用不同的端口 139 或445, 目前倾向于使用445端口。CIFS的消息包括一个消息头(32字节)和消息体(1个或多个,可变长)。
Samba能够为选定的Unix目录(包括所有子目录)建立网络共享。该功能使得Windows用户可以像访问普通Windows下的文件夹那样来通过网络访问这些Unix目录。
补充2:
1、Solaris系统NFS服务端配置方法如下:
(1)修改 /etc/dfs/dfstab, 增加共享目录
share -F nfs -o rw /export/home/xiuxiu
(2)启动nfs服务
/etc/init.d/nfs.server start
(3)NFS服务启动以后,也可以使用下面的命令增加新的共享
share /export/home/xiuxiu1 # share /export/home/xiuxiu2
注:/export/home/xiuxiu1和/export/home/xiuxiu2是准备共享的目录
2、linux系统NFS服务端配置方法如下:
(1)修改 /etc/exports,增加共享目录
/export/home/xiuxiu 10.140.133.25(rw) /export/home/xiuxiu1 *(rw) /export/home/xiuxiu2 linux-client(rw)
注:/export/home/目录下的xiuxiu、xiuxiu1、xiuxiu2是准备共享的目录,10.140.133.25、*、
linux-client是被允许挂接此共享linux客户机的IP地址或主机名。如果要使用主机名linux-client必须在服务端主机/etc/hosts文件里增加linux-client主机ip定义。格式如下:10.140.133.25 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加载光驱:
(1)使用光驱前,要先mount一下:
mount /dev/cdrom /mnt/cdrom
然后您就可以进入/mnt/cdrom目录下读取光盘内容了。
(2)当您想退出光盘时,须使用umout命令,否则光驱就会一直处于死锁状态:
umount /mnt/cdrom
二、开机自动挂载(永久挂载)
在/etc/fstab添加挂载信息,可以使用命令 先获取UUID
通过blkid查看UUID
blkid
##可使用设备名,或UUID
vim /etc/fstab
三、自动挂载
实现原理:
先配置规则文件,配置子目录和挂载点。
然后配置监听目录,定义监听的父目录,指定规则文件的地址。
重启服务后,只要访问该目录,就会自动挂载上。
1.安装自动挂载的包
yum install autofs -y
启动服务并设置开机自启动
systemctl start autofs.service
systemctl enable autofs.service
配置规则文件
参考的模板:/etc/auto.misc
监听的文件格式没有限制 可以拷贝模板作为修改
cp /etc/auto.misc /etc/auto.aa(命名随意) 下面以自动挂载nfs为参考 编辑规则文件
vim /etc/auto.nfs 规则文件 监听哪个子目录
public -fstype=nfs serverb.lab.example.com:/shares/public
子目录 文件系统类型 共享目录地址
配置监听目录
编辑监听文件 vim /etc/auto.master 移动到最下行添加 /mnt /etc/auto.aa 要监听的目录的父目录,和规则文件地址 父目录 规则文件地址 持续监听的是/mnt ---> 根据规则文件:/etc/auto.aa
2.启动服务,关闭防火墙和SELINUX
systemctl restart autofs
vim /etc/auto.master
vim /etc/auto.httpd
实例:给网页实现自动挂载
1.编辑http配置文件
vim /etc/httpd/conf.d/vhosts.conf
编辑内容如下:
<VirtualHost 192.168.220.129:80>
DocumentRoot /public/test
ServerName 192.168.220.129
</VirtualHost>
<Directory /public/test>
AllowOverride none
Require all granted
Options +Indexes
</Directory>
2.开启服务创建资源文件,挂载(临时)
#mkdir -p /public/test
#echo this is a test > /public/test/index.html
#systemctl stop firewalld
#setenforce 0
#systemctl restart httpd
#mount /dev/sr0 /public/test
3.安装autofs,编辑配置文件
#yum install -y autofs
#systemctl restart autofs
#vim /etc/auto.master
#vim /etc/auto.httpd
#systemctl restart autofs
通过mount查看挂载情况
mount | grep /dev/sr0
自动挂载成功!!!
其次,提醒大家在挂载一些共享文件服务器时,一定要谨慎使用rm -rf指令,以免造成服务器数据丢失的情况,在使用挂载结束后一定要及时取消挂载,养成良好的工作习惯。(本人亲身经历过,很恐怖)
好了,今天的分享就到这类,欢迎点赞评论收藏转发,感谢!!