磁盘管理
命令df
如何看/swap 容量情况,因无法通过df -h 查看,用free命令查看
查看分区下都有少个inode以及inode使用情况(如果磁盘空间未满却依旧无法存储要查看df -i看inode是否满了)
命令du
du是用来查看一个文件大小的
du -sh 指查看当前目录的总大小
du -sh ./* 查看目录下文件的大小
为什么ls 和du命令显示的大小不一样,是因为ls显示的实际大小,每个块只能放一个文件,不足4k的在du命令下也显示4k
如果直接用du的话会显示/root/下分别内容的容量
磁盘分区
查看磁盘分区情况: lsblk
显示每一个分区的文件系统格式 :df -T
添加硬盘: 虚拟机-设置-添加硬盘
运行fdisk -l命令查询是否识别新硬盘
fdisk /dev/disk name(sdb)
主分区和扩展分区最大值为4
当依次创建四个分区后,会发现以下提示
同时我们删除第四个主分区,建立第四个为扩展分区,如下图
当地四个分区添加为扩展分区是我们仍旧可以添加,会发现sdb5和sdb6逻辑分区的起始扇区和sdb4差不多,是sdb4的构成部分
**扩展分区本身不支持格式化,不能在扩展分区直接写数据,他只是一个壳子,装着逻辑分区,真正写数据的是逻辑分区
Note MBR &GPT
MBR
MBR(Master Boot Record)是传统的分区机制,应用于绝大多数使用BIOS引导的PC设备(苹果使用EFI的方式);很多Server服务器即支持BIOS也支持EFI的引导方式
MBR的特点
优点:MBR支持32bit和64bit系统;
缺点:1) MBR支持的分区数量有限制;2)MBR只支持不超过2TB的硬盘,超过2TB的硬盘只能使用2TB的空间(但是有第三方解决方法),应为MBR的寻址空间只有32bit长;
MBR结构:占用硬盘最开头的512字节
前446字节为:引导代码(Bootstrap Code Area)(引导不同的操作系统;不同操作系统,引导代码是不一样的)
接下来的为4个16字节:分别对应4个主分区表信息(Primary Partition Table)
最后2个字节:为启动标示(Boot Signature),永远都是55和AA;55和AA是个永久性的标示,代表这个硬盘是可启动的。
609083065041.png
MBR分区
MBR分区分为:主分区、扩展分区、逻辑分区
主分区:一块硬盘最多只能创建4个主分区(因为在MBR分区表结构中中最多可以创建4个主分区表信息,也就是4个16字节的空间,如上图)
扩展分区:一个扩展分区会占用一个主分区的位置
逻辑分区:
1)是基于扩展分区创建出来的,先有扩展分区,然后在扩展分区的基础上再创建逻辑分区;也就是说我们要使用逻辑分区,必须先要创建扩展分区;
2)扩展分区的空间是不能被直接使用的,我们必须在扩展分区的基础上去建立逻辑分区,才能够被使用;
3)Linux最多支持63个IDE分区和15个SCSI分区
PEL:Primary Partition;Extended Partition;Logical Partition
GPT
GPT(GUID Partition Table):是一个较新的分区机制,解决了MBR的很多缺点
1)支持超过2TB的磁盘:GPT有64bit寻址空间;而MBR对硬盘空间地址寻址最多只支持32bit,2的32次方,硬盘空间是以地址方式来被识别的,所以MBR只支持容量为2TB以内的磁盘
2)向后兼容MBR
3)但是底层硬件必须支持UEFI(Intel提出的取代BIOS的新一代的引导系统)才能使用,也就是底层硬件必须使用UEFI
4)必须使用64位操作系统
5)Mac、LInux系统都能支持GPT分区格式
6)Windows 7 64bit、Windows Server2008 64bit支持GPT
磁盘格式化
Centos所支持的文件系统格式
Centos6以前使用的都是ext格式的文件系统ext4, ext3, ext2;centos 7之后改成了xfs
格式化命令:
mkfs/mke2fs -t ext3/4/xfs (指定成什么样格式的文件)
如下例,格式化成ext4的格式的文件系统(当已存在文件系统时mkfs命令要加-f overide )
&
mke2fs -b (指定块的大小)
如何查看一个还没有挂载的分区?
blkid
实际上每个块大小是4k,所以格式化后的每个块如果大于4096就会出现以下提示(如果当你存储视频图片之类的,为了更快的读取,可以块设置大一点)
mke2fs -m /dev/sdb1 指定这个磁盘预留的空间大小
blkid /dev/sdb1不指定格式化
mke2fs -i 指定多少个字节对应一个inode
如下例设置两个块8192对应一个inode(最低是一个块对应一个inode)
磁盘挂载
无论有没有分区都可以格式化,只有格式化后才能挂载文件系统,linux里面磁盘要像访问必须挂在道挂载点上,挂载点就是目录,挂载点的命令就是“mount”
如何挂载
首先要先格式化sdb硬盘
mkfs.xfs -f /dev/sdb
然后确认格式化成功
blkid /dev/sdb
然后将sdb临时挂载到/mnt 目录下
删除挂载,用umount命令
如下例,先在/mnt 下创建目录以及文件,但是首先要推出/mnt目录才能对挂载进行删除
当然,也可以通过umount -l 进行懒人模式删除,不退出/mnt
mount -o 常用命令
mount -o ro/rw/remount
/etc/fstab
note. 每一个分区都有一个uuid, 可以通过blkid查看
手动增加swap
dd命令用来操作磁盘(rw),if指定从哪里去读,/dev/zero是linux内核里的一个盗0器,可以产生源源不断的0,of指定将这些0写在哪里去,bs指定每一个块的大小,count指数量
上例中,首先通过dd命令增加newdisk,然后再通过mkswap进行格式化(swap格式化特殊命令),再通过swapon命令将newdisk挂到系统swap上,尽管提示安全问题,但是仍能挂到swap上,最后 为了系统安全,将权限更改
如何移除swap
swapoff命令
lvm
理论上讲,一共三步,先创建物理卷,然后再形成一个卷组,然后再变成逻辑卷,然后进行格式化挂载使用
首先磁盘分区,新建的分区id为83,command t 改参数为8e便得到了linux lvm(在添加中如果输入错误,delete是无效的,要用ctrl+u)
1.创建物理卷 (pvcreate)
note. 当yum命令安装时找不到时,可以尝试 yum provides "/*/command"
一般情况下创建完分区会自动生成,如果不生成用以下命令
当物理卷创建完成后,用命令pvdisplay/pvs查看一下
2. 创建卷组 vgcreate(vgremove删除卷组)
3.创建逻辑卷 lvcreate
创建一个大小100m名字lv1 从vg1组的逻辑卷
4. 格式化: mkfs.ext4 /dev/lv1/vg1/lv1
挂载: mount /dev/vg1/lv1 /mnt/
扩容逻辑卷
lvresize
第三步是更新逻辑卷信息,如果不去更新无法识别新的大小。之后进行重新挂载
缩容逻辑卷:
XFS如何去扩容(必须是挂载状态)
lv resize -L 300M /dev/vg1/lv1
xfs_growfs /dev/vg1/lv1
扩展卷组