挂载/卸载磁盘

在上面的内容中讲到了磁盘的分区和格式化,那么格式化完了后,如何去用它呢?这就涉及到了挂载这块磁盘格式化后的磁盘其实是一个块设备文件,类型为b,也许你会想,既然这个块文件就是那个分区,那么直接在那个文件中写数据不就写到了那个分区中么?当然不行

在挂载某个分区前需要先建立一个挂载点,这个挂载点是以目录的形式出现的一旦把某一个分区挂载到了这个挂载点(目录)下,那么再往这个目录写数据使,则都会写到该分区中这就需要你注意一下,在挂载该分区前,挂载点(目录)下必须是个空目录其实目录不为空并不影响所挂载分区的使用,但是一旦挂载上了,那么该目录下以前的东西就不能看到了只有卸载掉该分区后才能看到
mount 挂载设备





先建立/test1 /test2 目录,然后在/test1目录下建立一个1.txt文件





/dev/hdb1分区挂载到/test1目录,然后再查看/test1目录发下,1.txt不存在了此时往/test1目录下写数据,则会写到/dev/hdb1分区中在讲mount-a选项时,我们有必要先了解一下这个文件 /etc/fstab





这个文件是系统启动时,需要挂载的各个分区第一列就是分区的label;第二列是挂载点;第三列是分区的格式;第四列则是mount的一些挂载参数,等下会详细介绍一下有哪些参数,一般情况下,直接写defaults即可;第五列的数字表示是否被dump备份,是的话这里就是1,否则就是0;第六列是开机时是否自检磁盘,就是刚才讲过的那个fsck检测。12都表示检测,0表示不检测,在Redhat中,这个12还有个说法,/ 分区必须设为1,而且整个fstab中只允许出现一个1,这里有一个优先级的说法。12优先级高,所以先检测1,然后再检测2,如果有多个分区需要开机检测那么都设置成2吧,1检测完了后会同时去检测2。下面该说说第四列中常用到的参数了
async/sync async表示和磁盘和内存不同步,系统每隔一段时间把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中数据;
auto/noauto :开机自动挂载/不自动挂载;
default:按照大多数永久文件系统的缺省值设置挂载定义,它包含了rw, suid, dev, exec, auto, nouser,async
ro:按只读权限挂载

rw:按可读可写权限挂载

exec/noexec :允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,那就无法使用系统了,连mount命令都无法使用了,这时只有重新做系统了;
user/nouser :允许/不允许root外的其他用户挂载分区,为了安全考虑,请用nouser
suid/nosuid :允许/不允许分区有suid属性,一般设置nosuid
usrquota :启动使用者磁盘配额模式,磁盘配额相关内容在后续章节会做介绍;
grquota :启动群组磁盘配额模式;

学完这个/etc/fstab后,我们就可以自己修改这个文件,增加一行来挂载新增分区例如,笔者增加了这样一行
/dev/hdb1 /test1 ext3 defaults 0 0
那么系统再重启时就会挂载这个分区了

讲完了/etc/fstab 我们继续回来讲这个mountmout -a 如果运行了这个命令,则会把/etc/fstab中出现的所有磁盘分区挂载上所以当你在/etc/fstab文件中增加一行后,你完全可以直接运行mount -a 来挂载你增加的那行,这样就不用重启啦
你可以使用mount -o 选项来重新挂载一个分区,并同时指定你想要的选项(即上边介绍fstab第六列中那些)





看到了吧,使用了ro选项,则不能新建文件了





再重新挂载一次就恢复正常了,如果不加任何其他选项,则就是defaults。
笔者在日常的运维工作中遇到过这样的情况,一台服务器上新装了亮块磁盘,磁盘a(在服务器上显示为sdc)和磁盘b(在服务器上显示为sdd),有一次把这两块磁盘都拔掉了,然后再重新插上,重启机器,结果磁盘编号调换了,a变成了sddb变成了sdc(这是因为把磁盘插错了插槽),问题来了通过上边的学习,你挂载磁盘是通过/dev/hdb1 这样的分区名字来挂载的,如果先前加入到了/etc/fstab 中,结果系统启动后则会挂载错分区那么怎么样避免这样的情况发生?
blkid
这个命令是用来显示磁盘分区uuid的,uuid其实就是一大串字符,在linux系统中每一个分区都会有唯一的一个uuid。说到这,聪明的你想到了吧,没有错,我们就用这唯一的uuid来挂载磁盘分区





这个命令笔者只是用来显示uuid,没有其他用途所以不做详细介绍,当然你也可以在命令后边跟某一个分区,只显示该分区的uuid。





看到了吧,其实是很好用的那么怎么让它也开机启动?很简单,把刚才敲的mount 磁盘的命令直接写到 /etc/rc.d/rc.local 文件即可对了,笔者到现在还没有给你讲过这个rc.local文件的作用简单点说,系统启动完后会执行这个文件中的命令所以只要你想开机后运行什么命令统统写入到这个文件下面吧





其实这个文件就是一个shell 脚本,以后笔者会单独用一章来介绍它行开头的”#”是注释的意思,代表这行在这个脚本中不生效你想让系统开机后运行什么命令,就把什么命令写到这里面来就比如刚才笔者挂载的那条命令你可以这样实现:





mount 还有一个比较常用的选项就是-t ,后边指定文件系统的类型,比如挂载软盘时就需要指定 vfat,而挂载光盘时就需要指定iso9660,但在笔者多年来的经验,目前的系统都是智能识别所要挂载分区的系统格式类别的也就是说,用不着你去指定,它会自动判断的






umount 卸载设备

现在你学会了如何挂载一个设备,那么如何去卸载一个设备呢,这就要用到umount了,这个命令也简单的很,后边可以跟挂载点,也可以跟分区名(/dev/hdb1)



有时也许你会遇到比较难卸载的设备,就像在windows下无法删除U盘一样,教你一个特管用的方法就是 umount -l /dev/hdb1 ,这个-l选项有强制卸载的意思,你一定要记住哦,非常有用的

添加新评论 »