LInux磁盘管理
-
需求:
- 监控磁盘的使用率在日常监控中是必须要做的,磁盘被写满是很要命的,严重的情况会导致磁盘损坏。
-
1.查看磁盘或者目录的容量
-
1.df
- 用处: 用于查看已挂载磁盘的总容量,使用容量,剩余容量等,默认以KB为单位显示
-
- /boot是我们安装系统时划分出来的。
- /dev, /dev/shm为内存分区,默认大小为内存大小的1/2,如果文件处于这几个分区下,则好处是读取速度快,坏处是系统重启文件会消失
- /run, /sys/fs/cgroup等分区都是tmpfs,跟/dev/shm类似,为临时文件系统,我们不去接触这些分区
- 参数选项:
- -i:表示查看inodes的使用状况,如使已用100%,及时磁盘有富余,也会提示磁盘空间已满。
- -h:表示使用合适的单位显示
- -k,-m:分别表示已KB和MB为单位显示
- -i:表示查看inodes的使用状况,如使已用100%,及时磁盘有富余,也会提示磁盘空间已满。
-
2.du
- 用处:用来查看某个目录或文件所占空间的大小
- 格式:du [-abckmsh] [文件或者目录名]
- 参数选项:
- -a: 表示全部文件和目录大小都列出来,不加任何选项参数,则默认单位为KB,只会列出目录(包含子目录)的大小
- -b: 表示列出的值以B为单位输出
- -k:表示已KB为单位输出
- -m:表示已MB为单位输出
- -h:表示系统自动调节单位
- -c:表示最后加总(不常用)
- -s:表示只列出总和(常用)
-
-
2.磁盘的分区和格式化
-
这一部分的内容可能会经常用到,比如说拿到一个全新的磁盘来分区并格式化
-
1.增加虚拟磁盘https://jingyan.baidu.com/article/fec7a1e5aecaf21190b4e79b.html
-
2. fdisk
- 用处:fdisk是Linux下硬盘的分区工具,是一个非常实用的命令。但是fdisk只能划分小于2TB的分区。
- 格式:fdisk [-l ] [设备名称]
- 参数:
- 加-l选项
- 不加-l选项则进入另一个模式,该模式下可以对磁盘进行分区操作
- 常用命令解释:
- p:打印当前磁盘的分区情况
- n:表示建立一个新的分区
- p:代表主分区,最多只能创建4个主分区
- e:扩展分区
- 若想创建多个分区则可以在创建完3个主分区后,将剩下容量创建扩展分区。然后接下来在创建想要的分区,不过此时创建的分区是处在扩展分区里的,这些分区称为逻辑分区
- q:表示退出
- d:表示删除一个分区
- w:保存之前对分区进行的操作并退出。
- p:打印当前磁盘的分区情况
- 加-l选项
-
-
3.格式化磁盘分区:
-
3.1 用处:
磁盘分区虽然分好区了,但是暂时还不能用,我们必须对每一个分区进行格式化。
所谓格式化就是安装文件系统,centos7中的文件系统默认是XFS。但我们可以指定其他的文件系统 -
3.2 mke2fs,mkfs.ext2,mkfs.ext3,mkfs.ext4和mkfs.xfs
- 用处:用来格式化磁盘分区
- 格式:命令 参数 文件系统 指定的磁盘分区
- 选项参数:
- -b:表示分区时设定的每个数据区块占用的空间大小。目前每个数据块支持1024B, 2048B, 4096B
- -i:表示设定的inode的大小
- -N:表示设定inode的数量。有时候默认的inode数不够用,所以要自定义inode的数量
- -c:表示格式化前先检测一下磁盘是否存在问题。加上这个选项后,运行速度会变得很慢
- -L:表示预设该分区的标签
- -j:表示建立ext3格式的分区,如果使用mkfs.ext3格式,可以不加这个选项
- -t:用来指定文件系统的类型,可以是ext2,ext3,ext4
- 图上的命令等价于mkfs.ext4 /dev/sdb5,但mke2fs并不支持把分区格式化成XFS类型,而只能使用mkfs.xfs
上图中的bsize=4096表示的是块大小为4096B,磁盘在格式化的时候,会预先规定好每一个块的大小,然后再把所有空间分割为一个一个块,存储数据时也是一个个块的往里写数据,如果你磁盘存储的文件都比较小,则建议你将块大小的值设置的小一点较好。若块值设置的过大,可能会导致无法正常挂载。
如下是设置块大小的方法:
-
3.3 e2label(不常用)
- 用处:该命令用于用于查看或修改分区的标签,它只支持ext格式的文件系统,不支持xfs文件系统
-
-
4.挂载/卸载磁盘
-
4.1.用处:
在我们对磁盘完成格式化和分区后,我们还需要挂载磁盘来使用磁盘。
格式化后的磁盘其实是一个块设备文件,类型为b。
在挂载某个分区前,需要建立一个挂载点,这个挂载点是以目录的形式出现的。一旦吧某个分区挂载到这个挂载点(目录)下,要再往这个目录里写数据时。就都会写到该分区中。
所以在挂载该分区前,挂载点(目录)下必须是个空目录。
其实目录不为空不影响挂载分区的使用,但一旦挂载上了,该目录下以前的东西就看不到了,除非卸载该分区 -
4.2.mount
- 用处:可以查看当前系统已经挂载的所有分区,分区文件系统的类型,挂载点及一些选项等信息
- 用法:
挂载成功,但里面的文件已经看不到了。
利用标签LABEL的方式来挂载分区,其中的umount命令时用来卸载分区的。 - 选项参数:
- -a:把/etc/fstab文件(后面再讲)中出现的所有磁盘分区挂载上
- -t:用来指定挂载的分区类型,默认不指定,会自动识别
- -o:用来指定挂载的分区有哪些特性,即/etc/fstab文件中第4列的内容
-
4.3 /etc/fstab配置文件
- 先来查看一下该文件下的内容
- 内容概括:
- 第1列:就会分区的标识,可以写分区的LABEL,分区的UUID或者是分区名
- 第2列:挂载点
- 第3列:分区的格式
- 第4列:是mount的一些挂载参数。一般情况下默认写defaults即可,常用参数如下:
- async/sync:async表示磁盘和内存不同步,系统每隔一段时间就会把内存数据写入磁盘。而sync表示时时同步内存和磁盘中的数据。
- auto/noauto: 表示开机自动挂载/不自动挂载。
- default:表示按照大多数永久文件系统的默认值设置挂载定义。包含了rw,sudi,dev,exec,auto,nouser和async。
- ro:表示按只读权限挂载
- rw:表示安可读可写权限挂载
- exec/noexec:表示允许/不允许可执行文件执行。但千万不要把根分区挂载为noexec
- user/nouser:表示允许/不允许root外的其他用户挂载到分区,为了安全请使用nouser
- suid/nosuid:表示允许/不允许分区用suid属性,一般设置nosuid
- usrquota:表示启动用户的磁盘配额模式。磁盘配额会针对用户限定他们使用的磁盘额度
- grquota:表示启动群组的配额模式
- 第5列:表示是否被dump备份。1表示备份,0表示不备份
- 第6列:表示开机是否自检磁盘。1和2都表示检测,0表示不检测。自检时1比2的优先级高
-
4.4 blkid
- 前要:/etc/fstab配置文件中的UUID是为了避免系统启动挂载错磁盘分区的情况发生
- 作用:可以通过blkid命令来获取各个分区的UUID,LAEBL若有的话也会显示
获取到UUID后可以通过mount命令来将该磁盘挂载到分区上
-
4.5 umount
- 作用:用来卸载挂载点
- 注意:umonut后可以更分区名,但不可以更LABEL和UUID
- 选项参数:
- -l:有时候你会遇到不能卸载的情况,这是因为当前目录还在卸载的分区上,这时你再umount命令后加上-l选项变能卸载成功。
-
-
5.建立一个swap文件增加虚拟内存
- 过程:建立swapfile文件–》格式化为swap格式–》启用该虚拟磁盘
- 建立文件
if用于指定源,of指定目标文件,bs定义块的大小,count定义块的数量
所以文件的大小为bs*count - 格式化文件
- 挂载使用
相比较会发现内存增加了1024MB的空间。free命令用于查看内存的使用情况,-m表示用MB单位来表示