1、磁盘管理工具及命令总结和显示
【查看磁盘或者目录的容量 df 和 du】
df 查看已挂载磁盘的总容量、使用容量、剩余容量等,可以不加任何参数,默认是按k为单位显示的
df常用参数有 –i -h -k –m等
-i 使用inodes 显示结果
-h 使用合适的单位显示,例如G
-k -m 分别为使用K,M为单位显示
Filesystem 表示扇区,也就是你划分磁盘时所分的区;
1K-blocks/1M-blocks表示以1K/1M为单位;Used 和 Available 分别是已使用和剩余;
Use% 就是已经使用的百分比;
Mounted on 则表示该分区(扇区)所挂载的地方。
du 用来查看某个目录所占空间大小
语法:du [-abckmsh] [文件或者目录名] 常用的参数有:
-a:全部文件与目录大小都列出来。如果不加任何选项和参数只列出目录(包含子目录)大小。
-b:列出的值以bytes为单位输出,默认是以Kbytes
-c:最后加总
-k:以KB为单位输出
-m:以MB为单位输出
-s:只列出总和
-h:系统自动调节单位,例如文件太小可能就几K,那么就以K为单位显示,如果大到几G,则就以G为单位显示。
【磁盘的分区和格式化】
fdisk linux下的硬盘分区工具
语法: fdisk [-l ] [设备名称]
-l :后边不跟设备名会直接列出系统中所有的磁盘设备以及分区表,加上设备名会列出该设备的分区表。
如果不加-l 则进入另一个模式,在该模式下,可以对磁盘进行分区操作。
刚进入该模式下,会有一个提示Command (m for help): 此时按m则会打印出帮助列表,常用的有p, n,d, w, q.
P:打印当前磁盘的分区情况。
n:重新建立一个新的分区。
w:保存操作。
q:退出。
d:删除一个分区
因为我的linux系统是安装在虚拟机上的,所以我可以增加一块新的磁盘。然后我会把新的磁盘分成多个分区。
当再次fdisk -l 查看时发现多了一个/dev/hdb 设备,并提示该设备没有可用的分区表。那么下面就来分一下这个/dev/hdb.
首先用p查看一下,并没有任何分区信息。
用n创建一个新的分区,会提示要建立e (extended 扩展分区)或者p (primary partition主分区),当建了4个主分区后如果你还想建分区则会报错
在linux中最多只能创建4个主分区,如果你想多创建几个分区就必须在创建完第三个分区后,创建第四个分区时选择扩展分区。
先删除第四个主分区,然后建立一个扩展分区
在建立扩展分区时,会问你要分多少给这个扩展分区,直接回车就把所有空间都分给了这个扩展分区。这个扩展分区/dev/hdb4并不能往里写数据,它只是一个空壳子,需要我们继续在这个空壳中继续创建分区。
然后按w保存,该模式自动退出,如果你不想保存分区信息直接按q即可退出。
下面我们把刚分好的分区删除,重新建立分区。删除就是直接按d然后选择合适的数字。删除完所有分区后,这块磁盘就恢复如初了。
第一个分区,我们就建立成扩展分区。并且分给它200M。
当再次新建分区时,发生了变化,不再是p或者e了,而是p或者l(逻辑分区)。
mkfs.ext2-4/mke2fs 格式化linux硬盘分区
-t :{ext2|ext3|ext4}分区类型
-b:分区时设定每个数据区块占用空间大小,目前支持1024, 2048 以及4096 bytes每个块。
-m: 预留磁盘空间占据多大百分比的空间为后期管理使用.
-c:在格式化前先检测一下磁盘是否有问题,加上这个选项后会非常慢
-L:预设该分区的标签label
-j:建立ext3格式的分区,如果使用mkfs.ext3 就不用加这个选项了
不加任何选项,直接格式化/dev/hdb1
上例中更改了block size为4096 默认是1024,而inode大小设定为4096。
下面的例子分区时自定义分区的label(标签)名。
e2label 用来查看或者修改分区的标签(label)
这个命令很简单,后边直接跟分区编号,即可查看该分区的label,当想要修改标签名时,分区编号后边跟想要的标签名即可。
fsck 检查硬盘有没有坏道
语法: fsck [-arf] [分区]
-a :自动修复检查到有问题的分区;
-r :当检查到有坏道的分区时会让用户决定是否修复。
-f :强制检测磁盘
当你使用fsck检查磁盘有无坏道时,会提示用户“跑这个任务可能会导致某些挂载的文件系统损坏”,所以这个命令不要轻易运行。否则真的遇到问题,系统甚至都不能启动了。
【挂载/卸载磁盘】
在上面的内容中讲到了磁盘的分区和格式化,那么格式化完了后,如何去用它呢?这就涉及到了挂载这块磁盘。格式化后的磁盘其实是一个块设备文件,类型为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检测。1,2都表示检测,0表示不检测,在Redhat中,这个1,2还有个说法,/ 分区必须设为1,而且整个fstab中只允许出现一个1,这里有一个优先级的说法。1比2优先级高,所以先检测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 :启动群组磁盘配额模式;
如果运行了mout -a 这个命令,则会把/etc/fstab中出现的所有磁盘分区挂载上。所以当你在/etc/fstab文件中增加一行后,你完全可以直接运行mount -a 来挂载你增加的那行,这样就不用重启啦。
你可以使用mount -o 选项来重新挂载一个分区,并同时指定你想要的选项(即上边介绍fstab第六列中那些)
使用了ro选项,则不能新建文件了。
再重新挂载一次就恢复正常了,如果不加任何其他选项,则就是defaults。
blkid 这个命令是用来显示磁盘分区uuid的,uuid其实就是一大串字符,在linux系统中每一个分区都会有唯一的一个uuid。我们可以用这唯一的uuid来挂载磁盘分区。
这个命令只是用来显示uuid,没有其他用途所以不做详细介绍,当然你也可以在命令后边跟某一个分区,只显示该分区的uuid。
看到了吧,其实是很好用的。那么怎么让它也开机启动?很简单,把刚才敲的mount 磁盘的命令直接写到 /etc/rc.d/rc.local 文件即可。 /etc/rc.d/rc.local 文件系统启动完后会执行这个文件中的命令。所以只要你想开机后运行什么命令统统写入到这个文件下面吧。
mount 还有一个比较常用的选项就是-t ,后边指定文件系统的类型。
umount 卸载设备
后边可以跟挂载点,也可以跟分区名(/dev/hdb1)
umount -l /dev/hdb1 ,-l选项表示强制卸载的意思
【建立一个swap文件】
基本的思路就是:建立swapfile 格式化为swap格式 启用该虚拟磁盘
利用dd 来创建一个419M的文件/tmp/newdisk出来,其中if代表从哪个文件读,/dev/zero是linux下特有的一个0生成器,of表示输出到哪个文件,bs即块大小,count则定义有多少个块。
mkswap 这个命令是专门格式化swap格式的分区的,这个命令用的时候一定要看清楚了,否则把其他分区给格式化错了就只有哭了。
free 是用来查看系统内存以及虚拟内存使用情况的,-m选项是以M的形式查看。可以看到当前系统的。而swapon 是启用我们新建的swap文件,启用后再用free查看发现多了400M。
我们还可以用swapoff 关闭启用的swap文件。
2、创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录
执行过程见附件文档creat-10g-filesystem.txt