1、磁盘管理工具及命令总结和显示

查看磁盘或者目录的容量 df  du

df 查看已挂载磁盘的总容量使用容量剩余容量等,可以不加任何参数,默认是按k为单位显示的

磁盘管理工具及命令总结_空间

df常用参数有 –i -h -k –m

-i  使用inodes 显示结果

磁盘管理工具及命令总结_管理工具_02

-h  使用合适的单位显示,例如G

磁盘管理工具及命令总结_空间_03

-k -m 分别为使用KM为单位显示

磁盘管理工具及命令总结_空间_04

Filesystem 表示扇区,也就是你划分磁盘时所分的区;

1K-blocks/1M-blocks表示以1K/1M为单位;Used  Available 分别是已使用和剩余;

Use% 就是已经使用的百分比

Mounted on 则表示该分区(扇区)所挂载的地方

du  用来查看某个目录所占空间大小

语法:du [-abckmsh] [文件或者目录名]  常用的参数有:

-a:全部文件与目录大小都列出来如果不加任何选项和参数只列出目录(包含子目录)大小

磁盘管理工具及命令总结_管理工具_05

-b:列出的值以bytes为单位输出,默认是以Kbytes

磁盘管理工具及命令总结_百分比_06

-c:最后加总

磁盘管理工具及命令总结_空间_07

-k:以KB为单位输出

-m:以MB为单位输出

-s:只列出总和

-h:系统自动调节单位,例如文件太小可能就几K,那么就以K为单位显示,如果大到几G,则就以G为单位显示

磁盘管理工具及命令总结_百分比_08

磁盘的分区和格式化

fdisk linux下的硬盘分区工具

语法: fdisk [-l ] [设备名称]

-l :后边不跟设备名会直接列出系统中所有的磁盘设备以及分区表,加上设备名会列出该设备的分区表

磁盘管理工具及命令总结_管理工具_09

磁盘管理工具及命令总结_管理工具_10

如果不加-l 则进入另一个模式,在该模式下,可以对磁盘进行分区操作

磁盘管理工具及命令总结_百分比_11

刚进入该模式下,会有一个提示Command (m for help): 此时按m则会打印出帮助列表,常用的有p, n,d, w, q. 

P:打印当前磁盘的分区情况

磁盘管理工具及命令总结_百分比_12

n:重新建立一个新的分区

w:保存操作

q:退出

d:删除一个分区

因为我的linux系统是安装在虚拟机上的,所以我可以增加一块新的磁盘然后我会把新的磁盘分成多个分区

磁盘管理工具及命令总结_空间_13

当再次fdisk -l 查看时发现多了一个/dev/hdb 设备,并提示该设备没有可用的分区表那么下面就来分一下这个/dev/hdb.

磁盘管理工具及命令总结_管理工具_14

首先用p查看一下,并没有任何分区信息

磁盘管理工具及命令总结_空间_15

n创建一个新的分区,会提示要建立extended 扩展分区)或者primary partition主分区),当建了4个主分区后如果你还想建分区则会报错

磁盘管理工具及命令总结_管理工具_16

linux中最多只能创建4个主分区,如果你想多创建几个分区就必须在创建完第三个分区后,创建第四个分区时选择扩展分区

磁盘管理工具及命令总结_管理工具_17

先删除第四个主分区,然后建立一个扩展分区

磁盘管理工具及命令总结_百分比_18

在建立扩展分区时,会问你要分多少给这个扩展分区,直接回车就把所有空间都分给了这个扩展分区这个扩展分区/dev/hdb4并不能往里写数据,它只是一个空壳子,需要我们继续在这个空壳中继续创建分区

磁盘管理工具及命令总结_空间_19

磁盘管理工具及命令总结_管理工具_20

然后按w保存,该模式自动退出,如果你不想保存分区信息直接按q即可退出

磁盘管理工具及命令总结_空间_21

下面我们把刚分好的分区删除,重新建立分区。删除就是直接按d然后选择合适的数字删除完所有分区后,这块磁盘就恢复如初了

磁盘管理工具及命令总结_空间_22

磁盘管理工具及命令总结_空间_23

第一个分区,我们就建立成扩展分区并且分给它200M。

磁盘管理工具及命令总结_空间_24

当再次新建分区时,发生了变化,不再是p或者e了,而是p或者l(逻辑分区)。

磁盘管理工具及命令总结_空间_25

mkfs.ext2-4/mke2fs 格式化linux硬盘分区

-t :{ext2|ext3|ext4}分区类型

-b:分区时设定每个数据区块占用空间大小,目前支持1024, 2048 以及4096 bytes每个块

-m: 预留磁盘空间占据多大百分比的空间为后期管理使用.

-c:在格式化前先检测一下磁盘是否有问题,加上这个选项后会非常慢

-L:预设该分区的标签label

-j:建立ext3格式的分区,如果使用mkfs.ext3 就不用加这个选项了

磁盘管理工具及命令总结_管理工具_26

不加任何选项,直接格式化/dev/hdb1 

磁盘管理工具及命令总结_管理工具_27

上例中更改了block size4096 默认是1024,而inode大小设定为4096。

下面的例子分区时自定义分区的label(标签)名

磁盘管理工具及命令总结_空间_28

e2label  用来查看或者修改分区的标签(label

这个命令很简单,后边直接跟分区编号,即可查看该分区的label,当想要修改标签名时,分区编号后边跟想要的标签名即可

磁盘管理工具及命令总结_百分比_29

fsck 检查硬盘有没有坏道

语法: fsck [-arf] [分区]

-a :自动修复检查到有问题的分区;

-r 当检查到有坏道的分区时会让用户决定是否修复

-f 强制检测磁盘

磁盘管理工具及命令总结_百分比_30

当你使用fsck检查磁盘有无坏道时,会提示用户跑这个任务可能会导致某些挂载的文件系统损坏,所以这个命令不要轻易运行否则真的遇到问题,系统甚至都不能启动了

磁盘管理工具及命令总结_管理工具_31

挂载/卸载磁盘

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

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

mount 挂载设备

磁盘管理工具及命令总结_百分比_32

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

磁盘管理工具及命令总结_百分比_33

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

磁盘管理工具及命令总结_空间_34

这个文件是系统启动时,需要挂载的各个分区第一列就是分区的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 :启动群组磁盘配额模式;

如果运行了mout -a 这个命令,则会把/etc/fstab中出现的所有磁盘分区挂载上所以当你在/etc/fstab文件中增加一行后,你完全可以直接运行mount -a 来挂载你增加的那行,这样就不用重启啦

你可以使用mount -o 选项来重新挂载一个分区,并同时指定你想要的选项(即上边介绍fstab第六列中那些)

磁盘管理工具及命令总结_管理工具_35

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

磁盘管理工具及命令总结_空间_36

再重新挂载一次就恢复正常了,如果不加任何其他选项,则就是defaults。

blkid 这个命令是用来显示磁盘分区uuid的,uuid其实就是一大串字符,在linux系统中每一个分区都会有唯一的一个uuid。我们可以用这唯一的uuid来挂载磁盘分区

磁盘管理工具及命令总结_空间_37

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

磁盘管理工具及命令总结_空间_38

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

磁盘管理工具及命令总结_空间_39

mount 还有一个比较常用的选项就是-t ,后边指定文件系统的类型。

磁盘管理工具及命令总结_百分比_40

umount  卸载设备

后边可以跟挂载点,也可以跟分区名(/dev/hdb1) 

磁盘管理工具及命令总结_空间_41

umount -l /dev/hdb1 -l选项表示强制卸载的意思

建立一个swap文件

基本的思路就是:建立swapfile  格式化为swap格式  启用该虚拟磁盘

磁盘管理工具及命令总结_百分比_42

利用dd 来创建一个419M的文件/tmp/newdisk出来,其中if代表从哪个文件读,/dev/zerolinux下特有的一个0生成器,of表示输出到哪个文件,bs即块大小,count则定义有多少个块

磁盘管理工具及命令总结_百分比_43

mkswap 这个命令是专门格式化swap格式的分区的,这个命令用的时候一定要看清楚了,否则把其他分区给格式化错了就只有哭了

磁盘管理工具及命令总结_百分比_44

free 是用来查看系统内存以及虚拟内存使用情况的,-m选项是以M的形式查看可以看到当前系统的swapon 是启用我们新建的swap文件,启用后再用free查看发现多了400M。

磁盘管理工具及命令总结_空间_45

我们还可以用swapoff 关闭启用的swap文件

2、创建一个10G的文件系统,类型为ext4,要求开机可自动挂载至/mydata目录

执行过程见附件文档creat-10g-filesystem.txt