继续为了主节点建设学习Linux系统。linux系统与Windows系统不同,如果在命令行模式下,磁盘管理并不像windows那样直观,文件系统格式与windows不同。如果想要在Linux系统中使用硬盘的话,需要对硬盘分区、格式化、挂载等,下面就一起学习一下。
【查看磁盘或者目录的容量 df 和 du】
df 查看已挂载磁盘的总容量、使用容量、剩余容量等,可以不加任何参数,默认是按k为单位显示的
df常用参数有 –i -h -k –m等
-i 使用inodes 显示结果
-h 使用合适的单位显示,例如G
-k -m 分别为使用K,M为单位显示
du 用来查看某个目录所占空间大小
语法:du [-abckmsh] [文件或者目录名] 常用的参数有:
-a:全部文件与目录大小都列出来。如果不加任何选项和参数只列出目录(包含子目录)大小。
-b:列出的值以bytes为单位输出,默认是以Kbytes
-c:最后加总
-k:以KB为单位输出
-m:以MB为单位输出
-s:只列出总和
-h:系统自动调节单位,例如文件太小可能就几K,那么就以K为单位显示,如果大到几G,则就以G为单位显示。笔者习惯用 du –sh filename 这样的形式。
【磁盘的分区和格式化】
作为一个linux系统管理员,对于磁盘的操作必须要熟练。所以请你认真学习该部分内容。
fdisk linux下的硬盘分区工具
语法: fdisk [-l ] [设备名称]
-l :后边不跟设备名会直接列出系统中所有的磁盘设备以及分区表,加上设备名会列出该设备的分区表。
如果不加-l 则进入另一个模式,在该模式下,可以对磁盘进行分区操作。
刚进入该模式下,会有一个提示Command (m for help): 此时按m则会打印出帮助列表,如果你英文好,我想你不难理解这些字母的功能。笔者常用的有p, n,d, w, q.
P:打印当前磁盘的分区情况。
n:重新建立一个新的分区。
w:保存操作。
q:退出。
d:删除一个分区
mkfs.ext2 / mkfs.ext3 /mke2fs 格式化linux硬盘分区
当用man查询这三个命令的帮助文档时,你会发现我们看到了同一个帮助文档,这说明三个命令是一样的。常用的选项有:
-b:分区时设定每个数据区块占用空间大小,目前支持1024, 2048 以及4096 bytes每个块。
-i:设定inode大小
-N:设定inode数量,有时使用默认的inode数不够用,所以要自定设定inode数量。
-c:在格式化前先检测一下磁盘是否有问题,加上这个选项后会非常慢
-L:预设该分区的标签label
-j:建立ext3格式的分区,如果使用mkfs.ext3 就不用加这个选项了
不加任何选项,直接格式化/dev/hdb1
上例中更改了block size为4096 默认是1024,而inode大小设定为4096。
e2label 用来查看或者修改分区的标签(label)
这个命令很简单,后边直接跟分区编号,即可查看该分区的label,当想要修改标签名时,分区编号后边跟想要的标签名即可。
fsck 检查硬盘有没有坏道
语法: fsck [-Aar] [分区]
-A :加该参数时,后不需要跟分区名作为参数。它会自动检查/etc/fstab 文件下的所有分区(开机过程中就会执行一次该操作);
-a :自动修复检查到有问题的分区;
-r :当检查到有坏道的分区时会让用户决定是否修复。
当你使用fsck检查磁盘有无坏道时,会提示用户“跑这个任务可能会导致某些挂载的文件系统损坏”,所以这个命令不要轻易运行。否则真的遇到问题,系统甚至都不能启动了。
【挂载/卸载磁盘】
在上面的内容中讲到了磁盘的分区和格式化,那么格式化完了后,如何去用它呢?这就涉及到了挂载这块磁盘。格式化后的磁盘其实是一个块设备文件,类型为b,也许你会想,既然这个块文件就是那个分区,那么直接在那个文件中写数据不就写到了那个分区中么?当然不行。
在挂载某个分区前需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某一个分区挂载到了这个挂载点(目录)下,那么再往这个目录写数据使,则都会写到该分区中。这就需要你注意一下,在挂载该分区前,挂载点(目录)下必须是个空目录。其实目录不为空并不影响所挂载分区的使用,但是一旦挂载上了,那么该目录下以前的东西就不能看到了。只有卸载掉该分区后才能看到。
mount 挂载设备
挂载设备,语法 mount /dev/hda1 /test
/etc/fstab 这个文件是系统启动时,需要挂载的各个分区。第一列就是分区的label;第二列是挂载点;第三列是分区的格式;第四列则是mount的一些挂载参数,等下会详细介绍一下有哪些参数,一般情况下,直接写defaults即可;第五列的数字表示是否被dump备份,是的话这里就是1,否则就是0;第六列是开机时是否自检磁盘,就是刚才讲过的那个fsck检测。1,2都表示 检测,0表示不检测,在Redhat中,这个1,2还有个说法,/ 分区必须设为1,而且整个fstab中只允许出现一个1,这里有一个优先级的说法。1比2优先级高,所以先检测1,然后再检测2,如果有多个分区需要开机检测那么都设置成2吧,1检测完后会同时去检测2。
blkid 这个命令是用来显示磁盘分区uuid的,uuid其实就是一大串字符,在linux系统中每一个分区都会有唯一的一个uuid。说到这,聪明的你想到了吧,没有错,我们就用这唯一的uuid来挂载磁盘分区。
看到了吧,其实是很好用的。那么怎么让它也开机启动?很简单,把刚才敲的mount 磁盘的命令直接写到 /etc/rc.d/rc.local 文件即可。对了,笔者到现在还没有给你讲过这个rc.local文件的作用。简单点说,系统启动完后会执行这个文件中的命令。所以只要你想开机后运行什么命令统统写入到这个文件下面吧。
umount 卸载设备
现在你学会了如何挂载一个设备,那么如何去卸载一个设备呢,这就要用到umount了,这个命令也简单的很,后边可以跟挂载点,也可以跟分区名(/dev/hdb1)
有时也许你会遇到比较难卸载的设备,就像在windows下无法删除U盘一样,教你一个特管用的方法就是 umount -l /dev/hdb1 ,这个-l选项有强制卸载的意思。