本笔记由51码儿(www.51mar.com)提供


4.1df命令 df 查看文件系统磁盘空间使用情况。 文件系统 磁盘总大小(kB) 已使用 可用 已用% 挂载点(目录) Linux磁盘不能直接访问,必须要有一个挂载点。 参数: -h 可根据磁盘大小显示适当的单位。 带有tmpfs代表临时的文件系统,重启之后会自动消失。 /dev/shm代表内存,占物理内存的一半。 -i 查看分区下inode数量及使用情况。 创建好分区,格式化之后,就预分配好了分区大小以及inode数量。当inode使用量满了的时候,即便磁盘空间还有剩余,也不能写进数据了。 -m 以M为单位显示。 free 查看剩余空间,可加-m参数以M为单位显示。


4.2du命令 du 参数 dir/filename 查看文件大小。 参数: -s 只查看所写目录总和,不查看子目录。 -h 自动调节单位。 常用du -sh dir/filename 每个块只能有一个文件。


4.3磁盘分区(上) 服务器支持热插拔磁盘。 fdisk -l 列出系统中所有的磁盘和分区表。 fdisk -l 设备名称 显示相应设备的信息。 在虚拟机中,新添加了磁盘分区,fdisk -l未显示新添加的磁盘,说明还未识别,需要reboot重启,再fdisk -l查看。 若没有*-l选项,fdisk 设备名称将进入对磁盘进行分区操作的模式。根据提示,输入m*,可获取帮助信息,在里面如果输入错误,需要按Ctrl+U删除错误的输入。 n 增加新分区new。 p 列出分区print。 w 保存write。 d 删除分区delete。 输入n创建分区,会出现选项: p 主分区 e 扩展分区 MBR分区,最高支持2T,最多4个主分区,若要划分多个分区,可先划分3个主分区,最后一个分区划分为扩展分区,扩展分区可继续划分为多个逻辑分区。主分区+扩展分区<=4个。 输入相应命令后,根据提示设置分区号及起始扇区、结束扇区(+扇区或+size{K,M,G})。 当4个主分区划分完之后,将提示不能再新建分区,若要再建一个分区,需要先删掉一个分区。 当4个分区创建完毕,若有扩展分区,再创建新的分区时,会提示添加逻辑分区5。根据相应提示完成创建。


4.4磁盘分区(下) d 删除分区后,若删除主分区,分区号留空,若删除逻辑分区,后面的会往前补上,分区号不留空。 创建或删除分区后,需要按w保存,若不保存,按q退出,将不保存当前的所有操作。 若创建了扩展分区后,主分区+扩展分区<4个,再创建分区时将提示: p 创建主分区。 l 创建逻辑分区。 主分区或扩展分区号可以不连续,但逻辑分区号必须从5开始,连续。 扩展分区可以划分空间,但真正占有空间的是其中的逻辑分区,因而扩展分区中不能写数据,也不能格式化。


4.5磁盘格式化(上) Windows系统支持NTFS、fat格式。 Linux系统支持的文件格式可cat /etc/filesystems查看。Centos6及之前版本使用ext格式,从centos7开始,改为了xfs格式。但可格式化为ext格式。 创建分区之后,进行格式化,使用mke2tf命令。 mke2fs 参数 设备名称 参数: -t 格式 指定格式化后的文件系统格式(ext4/3/2等,mke2fs不支持格式化为xfs格式。)。如果不指定格式,将默认为ext2格式(可使用后面提到的blkid命令查看到未挂载的设备文件格式)。 -b SIZE 指定块大小(B)。du -sh所查看到的是块的总大小,而du -sb所查看到的是文件的实际占用大小,跟ls -l查看到的大小一致。 mkfs.ext4<=>mke2fs -t ext4 (3,2类似)。 当已经存在文件格式,重新格式化的时候,会提示加-f选项强制格式化。 mke2fs不支持格式化为xfs格式,但可以用mkfs.xfs来满足格式化为xfs格式的需求。 格式化之后,由于还未挂载到任何挂载点,使用mount是无法查看到的。 *blkid [设备名称] *可查看到还未挂载的设备


4.6磁盘格式化(下) mke2fs 参数 设备名称 参数: -m SIZE 指定分区预留大小百分比(1代表1%)。 单文件系统存放的都是视频音乐等大型文件时,可将块大小设置大一些,可加快读取。 -i SIZE 指定多少字节对应一个inode,至少一个块大小才能对应一个inode(若不指定,默认4个块对应一个inode)。


4.7磁盘挂载(上) 一个磁盘可以不分区,直接格式化。 mount 设备名称/UUID 挂载点 挂载设备(如:mount /dev/sdb /mnt/)。 umount 设备名称/挂载点 卸载磁盘。 若在挂载点内,将提示目标忙,无法卸载相应磁盘。 若在挂载点内,要卸载相应磁盘,可使用 umount -l 挂载点 参数l表示懒得退出去。


4.8磁盘挂载(下) mount -o 具体选项 -o 具体选项(man mount查看具体选项,在man内查找:/defaults可看到defaults所包含的选项,选项前加no,表反义。而async反义sync,sync内存随时同步到磁盘,会加重负担,默认async,不实时同步,过一会儿同步一次)。 系统文件/etc/fstab 中配置系统启动时挂载的磁盘分区(man fstab),6列: UUID/设备名称 挂载点 分区格式 挂载选项(默认defaults) 是否备份(0/1) 设置优先级是否检测(0(不检测)/1(高级:根)/2(低级:其他)。 挂载也可以是将UUID写到配置文件/etc/fstab中去。


4.9手动增加swap空间 当前期swap空间分配不够的时候,需要手动增加swap空间。 dd if=/dev/zero of=/tmp/newdisk bs=1M count=100 dd命令操作磁盘空间;if指定读取位置,/dev/zero是Linux系统里的到0器,能源源不断地产生0;of指定(将前面的0)写入的位置;bs指定块大小;count指定of指定位置的块的数量。 创建完成之后,可du -sh /tmp/newdisk查看。 创建完虚拟磁盘之后,需要格式化。 swap是一种特有的文件系统,需要使用mkswap命令 mkswap -f /tmp/newdisk 格式化 格式化完成之后,需要将改磁盘空间加载到现在的swap空间里面去。 swapon /tmp/newdisk 将改磁盘空间加载到swap空间。 此时会提示权限不安全,但仍然能加载上去,为了安全起 见,根据建议修改权限。 不用了的时候,可卸载该磁盘空间。 swapoff /tmp/newdisk 卸载该磁盘。 rm -f /tmp/newdisk 删掉该磁盘。


4.10lvm讲解(上) 磁盘分区重组再分配。 磁盘:物理磁盘。 分区:创建为物理卷。 重组:卷组(物理卷的组合)。 再分配:逻辑卷LVM(Logical Volume)。 最后将逻辑卷LVM格式化,挂载使用。 准备一个磁盘,fdisk /dev/sdb查看信息。 创建三个分区。可以发现分区Id为83,System为Linux,说明是普通的分区,要使用LVM,需按t,根据提示,改为8e,此时p打印出来,可以发现Id变为了8e,System变为了Linux LVM。 磁盘分区准备完成后,创建为物理卷,使用pvcreate命令,需要先安装lvm包(yum install -y lvm)。 根据命令搜索安装包:yum provides “//command” yum provides “//pvcreate” 可搜索到pvcreate命令所需的安装包及版本。 若创建完成之后,系统没有生成相应文件,ls /dev/sdb1查询不到。运行partprobe命令,再ls /dev/sdb1即可查看到。一般创建完成后能自动生成文件。 partprobe 磁盘分区 命令无法对已挂载的磁盘使用,需要先取消挂载,才能创建物理卷。 partprobe /dev/sdb1 创建物理卷(2、3类似)。


4.11lvm讲解(中) 物理卷创建完成之后: pvdisplay 查看系统中所有物理卷信息。 pvs 也可查看当前的所有物理卷。 vgcreate 卷组名 物理卷1 [物理卷2]…… 创建卷组。 vgcreate vg1 /dev/sdb1 /dev/sdb2 vgdisplay 查看卷组信息。 vgs 也可查看卷组信息。 lvcreate -L SIZE -n LVNAME VGNAME -L指定大小。 -n指定名字LVNAME。 从VGNAME里面划分出来。 lvcreate -L 100M -n lv1 vg1 从vg1里面划分出lv1,大小为100M。 创建完成后,对逻辑卷LVM格式化。 mkfs.ext4 /dev/vg1/lv1 对lv1格式化。 mount /dev/vg1/lv1 /mnt/ 挂载/dev/vg1/lv1,挂载点/mnt/。 扩容逻辑卷: lvresize -L SIZE LVM 指定LVM新的大小,扩容。扩容之前应该先取消挂载。 umount /mnt/ 取消挂载。 lvresize -L 200M /dev/vg1/lv1 将/dev/vg1/lv1扩大到200M。 e2fsck -f /dev/vg1/lv1 检查磁盘,看是否存在错误。 resize2fs /dev/vg1/lv1 更新逻辑卷信息,更新之后,再挂载,才能识别新的大小。 mount /dev/vg1/lv1 /mnt/ 挂载。 缩减逻辑卷(xfs格式不支持缩容): umount /mnt/ 取消挂载。 e2fsck -f /dev/vg1/lv1 检查磁盘,看是否存在错误。 resize2fs /dev/vg1/lv1 100M 更新逻辑卷信息。 lvresize -L 100M /dev/vg1/lv1 将/dev/vg1/lv1缩减到100M。 lvdisplaylvs查看,可以看到新的逻辑卷为100M,当文件内容不大于逻辑卷总容量时,缩容不会导致逻辑卷内的文件丢失,可在缩容前后ls查看对比验证。 mount /dev/vg1/lv1 /mnt/ 挂载。 e2fsckresize2fs命令只能针对ext格式的文件系统使用。


4.12lvm讲解(下) 格式化为xfs格式: umount /mnt/ 取消挂载。 mkfs.xfs -f dev/vg1/lv1 格式化为xfs格式。 mount /dev/vg1/lv1 /mnt/ 挂载。 lvresiize -L 300M /dev/vg1/lv1 扩容到300M(xfs格式扩容不用卸载) xfsgrowfs /dev/vg1/lv1 必须要在挂载的时候进行该命令操作。 df -h 查看,可以看到已经扩大到300M大小。 逻辑卷空间不能大于卷组空间,当逻辑卷已占用完卷组空间后,需要先扩容卷组,才能再扩容逻辑卷。 vgextend vg1 /dev/sdb3 将/dev/sdb3增加进vg1 vgdisplay 查看卷组信息,可以看到vg1的容量已经增加了/dev/sdb3的大小。 再对逻辑卷进行扩容。


4.13磁盘故障小案例 若挂载磁盘出现问题,不能正常挂载到挂载点,启动的时候发现进入不了系统了。根据提示输入root密码。进入一个类似于正常登陆的界面。编辑/etc/fstab,将自己加入的错误挂载信息删掉。保存退出再重启即可。