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

https://blog.51cto.com/2507705/1694511