信安Note_day28

Linux磁盘和文件系统管理

基本磁盘管理

检测并确认新硬盘 fdisk

查看或管理磁盘分区

# fdisk /dev/sdb
d   delete a partition  *****
    删除分区    
g   create a new empty GPT partition table
    创建一个新的空的GPT分区表(可以对大于2T磁盘进行分区)
l   list known partition types
    列出可以分区的类型???
m   print this menu
    输出帮助菜单
n   add a new partition  *****
    新建增加一个分区
p   print the partition table  *****
    输出分区的结果信息
q   quit without saving changes 
    不保存退出
t   change a partition s system id
    改变分区的系统id==改变分区类型(LVM 增加swap分区大小)
u   change display/entry units
    改变分区的方式  是否按照扇区进行划分
w   write table to disk and exit  *****
    将分区的信息写入分区表并退出==保存分区信息并退出

创建文件系统 mkfs

创建文件系统(格式化)

mkfs -t 文件系统类型 分区设备

[root@localhost ~]# ls  /sbin/mkfs*
/sbin/mkfs        /sbin/mkfs.cramfs  /sbin/mkfs.ext3  /sbin/mkfs.minix
/sbin/mkfs.btrfs  /sbin/mkfs.ext2    /sbin/mkfs.ext4  /sbin/mkfs.xfs
[root@localhost ~]# mkfs -t xfs /dev/sdb1

创建文件系统 mkswap

创建交换文件系统

格式:mkswap 分区设备

[root@localhost ~]# mkswap /dev/sdb5
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=9673550e-9dfd-4fa8-8683-255680230f10
[root@localhost ~]# cat /proc/meminfo | grep SwapTotal
SwapTotal:       8257532 kB
[root@localhost ~]# swapon /dev/sdb5
[root@localhost ~]# cat /proc/meminfo | grep SwapTotal
SwapTotal:     10354680 kB
[root@localhost ~]# swapoff /dev/sdb5

挂载文件系统 mount

挂载文件系统、ISO镜像到指定文件夹

格式:

  • mount [ -t 类型 ] 存储设备 挂载点目录

    (类型为文件系统类型)

  • mount -o loop ISO镜像文件 挂载点目录

卸载文件系统 umount

卸载已挂载的文件系统

格式:

  • umount 存储设备位置 (umont /dev/sda1)

  • umount 挂载点目录 (umont /tmp)

具体案例

让系统可以加载识别分区文件
# partprobe /dev/sdb 
​
强制重新格式化
# mkfs -t xfs -f /dev/sdb1
​
将主分区和2G的逻辑分区转换为xfs文件系统并挂载
# mkfs -t xfs /dev/sdb1
# mkfs -t xfs /dev/sdb6
# mkdir /data /file
# mount /dev/sdb1 /data
# mount /dev/sdb6 /file
​
将1G的逻辑分区格式化为swap分区并使用
# mkswap /sdb5
# swapon /sdb5  //启用该swap分区
# swapoff /sdb5 //关闭该swap分区
​
# cat /proc/meminfo         //查询虚拟内存变化

设置文件系统的自动挂载

/etc/fstab 配置文件

包含需要开机后自动挂载的文件系统记录

设置开机自动挂载这 三个分区:
vim /etc/fstab
/dev/sdb1               /data                   xfs     defaults        0 0
/dev/sdb5               swap                    swap    defaults        0 0
/dev/sdb6               /file                  xfs     defaults        0 0           
挂载的设备、挂载点、挂载方式/类型、挂载参数、dump备份功能是否启用,0表示不启用,1表示启用、系统启动检查优先级(0/1/2),0表示不进行检查;1表示高优先,一般为根目录;2表示低优先级,为其他目录。
​
# mount -a      //刷新自动挂载配置文件
# mount     //查看挂载情况                

查看磁盘使用情况 df

格式:df [选项] [文件]

[root@localhost ~]# df –hT
文件系统                                     类型    容量    已用   可用   已用% 挂载点
/dev/mapper/VolGroup-Lv_root               ext4    6.7G     4.1G  2.3G   65%     /
/dev/sda1                                   ext4    99M     11M    83M    12%     /boot
tmpfs                                       tmpfs   252M     0      252M   0%     
/dev/sdb1                                   ext4     19G    173M    18G     1%
​

动态磁盘管理

Logical Volume Manager,逻辑卷管理

动态调整磁盘容量,从而提高磁盘管理的灵活性

需要注意:/boot 分区用于存放引导文件,不能基于 LVM 创建

LVM 机制的基本概念

  • PV(物理卷):可以由一个物理磁盘划分出多个物理卷。

  • VG(卷组):由多个物理卷组成,新增的物理卷可以直接加入已合并好的卷组。

  • LV(逻辑卷):有一个卷组进行划分。

主要命令

功能物理卷管理卷组管理逻辑卷管理
Scan 扫描pvscanvgscanlvscan
Create 建立pvcreatevgcreatelvcreate
Display 显示pvdisplayvgdisplaylvdisplay
Remove 删除pvremovevgremovelvremove
Extend 扩展vgextendlvextend
Reduce 减少vgreducelvreduce

具体说明:

划分磁盘顺序:
PV(物理卷)------VG(卷组)-------LV(逻辑卷)-----格式化为xfs/swap文件系统,---挂载使用
​
PV使用命令:
#pvscan [磁盘路径]      //查看物理卷,跟路径查看单个磁盘,不跟路径查看所有
#pvcreate /dev/sdb1 /dev/sdc1   //将磁盘转换为物理卷
#pvdisplay [磁盘路径]       //查看物理卷详细信息,跟路径查看单个磁盘,不跟路径查看所有
#pvremove /dev/sdb1     //删除此物理卷,还原至普通分区
​
​
VG使用命令:
#vgscan             //查看已建立的卷组
#vgcreate GP1 /dev/sdb1 /dev/sdc1   //将物理卷sdb1、sdc1合成为卷组GP1
#vgdisplay GP1          //查看卷组GP1详细信息
#vgremove GP1               //删除卷组GP1
#vgextend GP1 /dev/sdc1     //将sdc1扩展到GP1卷组中
​
​
​
LV使用命令: (-l指定逻辑卷大小,-n指定逻辑卷名字)
#lvscan             //查看已建立的逻辑卷
#lvcreate -L 10G -n data1 GP1   //将GP1卷组中拿出10G用于创建data1逻辑卷
# lvcreate -l 100%VG -n data GP1        //将VG所有容量都用于data逻辑卷
#lvextend -L +10G /dev/GP1/data1    //将data1逻辑卷容量加10G
# lvextend -r -l 100%VG /dev/GP/data //将VG剩余容量全部加给data逻辑卷,且不需要再执行"xfs_growfs"命令
#lvreduce -L -5G /dev/GP1/data1     //将data1逻辑卷减去5G容量
#lvdisplay /dev/GP1/data1       //查看逻辑卷详细信息
#lvremove /dev/GP/data1     //将逻辑卷data进行删除
# xfs_growfs /dev/GP/data       //将扩展的容量加载到目前使用的分区中,与"lvextend -r"作用一样

磁盘配额

实现磁盘限额的条件

  • 需要 Linux 内核支持

  • 安装 xfsprogs 与quota 软件包

Linux 磁盘限额的特点

  • 作用范围:针对指定的文件系统(分区)

  • 限制对象:用户帐号、组帐号

  • 限制类型:磁盘容量(默认单位为 KB),文件数量

限制方法

  • 软限制

  • 硬限制

磁盘配额管理步骤:

  1. 以支持配额功能的方式挂载文件系统

  2. 编辑用户和组账号的配额设置

  3. 验证磁盘配额功能

  4. 查看磁盘配额使用情况

启用磁盘配额支持:添加 usrquota、grpquota 挂载参数

CentOS 7操作系统磁盘配额:
# rpm -q xfsprogs       //确认配额工具已安装
xfsprogs-4.5.0-8.el7.x86_64
# umount /abc       //卸载之前的挂载
# mount -o usrquota,grpquota /dev/GP/data /abc  //用户、组以支持磁盘配额方式挂载。
# mount     //可以查看到挂载点已支持磁盘配额,
/dev/mapper/GP-data on /abc type xfs (rw,relatime,attr2,inode64,usrquota,grpquota)
若要实现开机自动挂载并实现支持磁盘配额功能:
# vim /etc/fstab 
/dev/GP/data    /abc     xfs     defaults,usrquota,grpquota        0 0
针对张三用户配置磁盘配额限制:
# useradd zhangsan
# xfs_quota -x -c 'limit -u bsoft=10M bhard=20M isoft=5 ihard=10 zhangsan' /abc
xfs_quota   //磁盘配额关键命令
-x  //专家模式,表示可以使用所有管理命令
-c  //直接调用相关命令进行配置,而不进入交互式界面
limit   //单引号内的命令为设置具体的磁盘配额参数
-u  //表示为用户设置配额,-g为组
bsoft   //磁盘容量软限制
bhard   //磁盘容量硬限制
isoft   //文件数量软限制
ihard   //文件数量硬限制
0表示无限制
​
​
查看刚刚定义的磁盘容量配额:
# xfs_quota -c 'quota -uv zhangsan' /abc                         Disk quotas for User zhangsan (1000)
Filesystem              Blocks      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/GP-data
                             0      10240      20480   00 [--------] /abc
查看文件数量配额的方法为:
# xfs_quota -c 'quota -i -uv zhangsan' /abc
Disk quotas for User zhangsan (1000)
Filesystem               Files      Quota      Limit  Warn/Time      Mounted on
/dev/mapper/GP-data
                             0          5         10   00 [--------] /abc
验证磁盘配额限制效果:
# chmod 777 /abc    //给文件夹授权,方便zhangsan用户写入数据
# su zhangsan       //切换为zhangsan用户验证
$ cd /abc
$ touch 1 2 3 4 5 6 7 8 9 10 11     //连续创建11个文件,第11个失败
touch: 无法创建"11": 超出磁盘限额
$ ls
1  10  2  3  4  5  6  7  8  9       //只有10个
$ rm -rf /abc/*
​
验证磁盘容量限制:
$ dd if=/dev/zero of=/abc/a.txt bs=1M count=15  //先创建15M,由于限制20M,所以不会报错
$ dd if=/dev/zero of=/abc/b.txt bs=1M count=10  //再创建10M,由于之前已有15M,因此会报错,且只能再写入5M数据
dd: 写入"/abc/b.txt" 出错: 超出磁盘限额
记录了6+0 的读入
记录了5+0 的写出
5242880字节(5.2 MB)已复制,0.00458746 秒,1.1 GB/秒
$ ll        //查看文件容量时,也只有20M,并不是25M
总用量 20480
-rw-rw-r-- 1 zhangsan zhangsan 15728640 7月  13 20:56 a.txt
-rw-rw-r-- 1 zhangsan zhangsan  5242880 7月  13 20:57 b.txt
​
# xfs_quota -x -c 'report -abi'     //查询系统中所有分区的磁盘配额情况,b为容量,i为文件数量
​
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值