linux中存储管理

linux中存储管理

  • 1 磁盘设备的管理
    • 1.1 设备识别
    • 1.2 常用的设备查看命令
  • 2 设备挂载
    • 2.1 设备的临时挂载
    • 2.2 设备的永久挂载
    • 2.3 解除挂载U盘
  • 3 设备中文件的查找
    • 3.1 find命令的常用参数
    • 3.1.1 根据文件名称条件查找
    • 3.1.2 根据文件的拥有者和拥有组权限查找文件
    • 3.1.3 按文件类型查看文件
    • 3.1.4 按文件所在的深度(层次)查找
    • 3.1.5 按照时间查找被篡改的文件
    • 3.1.6 按文件权限查找:perm
    • 3.1.7 对查找到的文件执行某命令
  • 4 分区
    • 4.1 常见的两种分区方式
    • 4.2 MBR分区方式
    • 4.3 mbr分区转化成GPT
      • 4.3.1 直接转换
      • 4.3.2 间接转换
  • 5 swap分区
    • 5.1 swap分区的作用
    • 5.2 建立swap分区
    • 5.2.1 临时创建swap分区
    • 5.2.2 设置开机自动添加swap分区
    • 5.3 删除swap分区
  • 6 磁盘配额
    • 6.1 磁盘配额的作用
    • 6.2 划分磁盘额度
    • 6.3 测试
    • 6.4 永久开启配额
    • 6.5 关闭配额

1 磁盘设备的管理

1.1 设备识别

  • 设备接入系统后都是以文件的形式存在
  • 设备文件名称
SATA/SAS/USB  /dev/sda   /dev/sdb    ##s=SATA ,d=DISK ,a=第几块
IDE           /dev/hd0   /dev/hd1     ##h=hard
VIRTIO-BLOCK  /dev/vda   /dev/vdb     ##v=virtio
M2 (SSD)    /dev/nvme0 , /dev/nvme1   ##nvme=M2
SD/MMC/EMMC /dev/mmcblk0  /dev/mmcblk1  ##mmcblk=mmc卡 
光驱        /dev/cdrom /dev/sr0  /dev/sr1 

1.2 常用的设备查看命令

命令 功能
fdisk -l 查看磁盘分区情况(系统中真实设备的存在情况)
lsblk 设备被使用情况
blkid 系统中能被系统使用的设备
cat /proc/partitions 系统当前已经识别设备
df 查看正在被系统挂载的设备

设备查看命令的使用

  • 查看系统中设备存在的真实情况: fdisk -l

linux中存储管理_第1张图片

  • 查看系统中设备的使用情况:lsblk

linux中存储管理_第2张图片

  • 查看系统中能被使用的设备(是否被使用不确定):blkid

在这里插入图片描述

  • 查看系统中被识别的设备(设备能不能使用不确定):cat /proc/partitions

linux中存储管理_第3张图片

  • 查看正在被系统挂载的设备:df

linux中存储管理_第4张图片

2 设备挂载

  • df:查看u盘的挂载情况

linux中存储管理_第5张图片

  • 结束挂载:umount /dev/vdb1

结束挂载之后,用df命令,可以看到U盘是可用的设备但是系统中未被挂载

linux中存储管理_第6张图片

2.1 设备的临时挂载

  • 挂载U盘为只读模式
mount -o ro /dev/sdb1 /mnt
##  ro:挂载参数
## /dev/sdb1:设备
## /mnt :挂载点

在这里插入图片描述

  • 修改U盘的挂载方式为读写模式
mount -o remount,rw /mnt

在这里插入图片描述在这里插入图片描述

2.2 设备的永久挂载

  • 编写配置文件,实现永久的挂载

(1)/etc/rc.d/rc.local 系统启动之后

(2)/etc/fatab :内核启动之后

mount: 查看挂载的信息

在这里插入图片描述

  • 编辑配置文件: /etc/fstab

linux中存储管理_第7张图片

  • 重启:reboot,内核启动之后实现自动的挂载

linux中存储管理_第8张图片
注意:

如果在编辑/etc/fstab 文件时出错,系统将无法正常启动

  • 模拟问题

在这里插入图片描述
重启后出现下图的界面

linux中存储管理_第9张图片

  • 解决方法

根体提示输入root用户的密码后,进入/etc/fstab修改内容之后退出保存

在这里插入图片描述
exit退出系统之后,等待系统再次启动

在这里插入图片描述
在这里插入图片描述

2.3 解除挂载U盘

  • 在一个shell中进入挂载目录后,打开另一个shell解除挂载会显示系统正忙,无法解除挂载
umount /dev/sdb1

在这里插入图片描述

  • df :查看系统中挂载的设备
  • lsof:查看进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)
  • kill -9 进程号:结束进程

linux中存储管理_第10张图片

  • fuser :显示所有正在使用着指定的file, file system 或者 sockets的进程信息
参数 功能
-k 结束进程
-v 显示详细信息
-m 显示进程
fuser -vm /mnt ##显示进程的详细信息
fuser -kvm /mnt ##结束并显示进程的详细信息

linux中存储管理_第11张图片

3 设备中文件的查找

  • find:文件或目录查找,可以直接对查找结果使用命令

3.1 find命令的常用参数

参数 功能
-name 查找指定名字的文件
-user 查找指定拥有者的文件
-group 查找指定拥有组的文件
-type f/d/s/b/l 查找指定类型的文件
-perm 后跟文件权限,按文件权限模式来查找文件
-exec 查找指定名字的文件
-cmin 根据更改时间查找文件
-maxdepth 后跟数字,按目录的最大深度查找时间
-mindepth 后跟数字,按目录的最大深度查找时间
-o 逻辑或
-a 逻辑and
-not 逻辑非
  • 查看当前目录及子目录中的所有文件:find

linux中存储管理_第12张图片

3.1.1 根据文件名称条件查找

  • 在当前目录及子目录中查找指定名字文件: find /mnt -name file1

在这里插入图片描述

  • 在当前目录及子目录中查找以file结尾的文件: find /mnt -name "*file"

linux中存储管理_第13张图片

3.1.2 根据文件的拥有者和拥有组权限查找文件

  • 在当前目录及子目录中查找文件拥有者为westos的文件:find /mnt -user westos

linux中存储管理_第14张图片

  • 在当前目录及子目录中查找文件拥有者为westos拥有组为linux的文件
 find /mnt  -user westos -a  -group linux
  • 在当前目录及子目录中查找文件拥有者为westos,或者拥有组为linux的文件:
 find /mnt  -user westos -o  -group linux
  • 在当前目录及子目录中查找文件拥有者为westos,或者拥有组不是linux的文件:
find /mnt  -user westos -o -not -group linux

linux中存储管理_第15张图片

3.1.3 按文件类型查看文件

find -type 参数
           -f  ##普通文件
           -b  ##目录
           -d  ##块设备
           -s  ##套接字
           -l  ##链接
           -c  ##字符设备

linux中存储管理_第16张图片
linux中存储管理_第17张图片

3.1.4 按文件所在的深度(层次)查找

- mindepth:最小深度
- maxdepth:最大深度

  • 在当前目录或子目录中查找文件深度在1~2之间的普通文件
find /mnt -mindepth 1 -maxdepth 2 -type f

linux中存储管理_第18张图片

3.1.5 按照时间查找被篡改的文件

cmin以分钟为单位

(1)在当前目录或子目录中查找文件更新距离现在2分钟以内的文件:find /mnt -cmin -2

(2)在当前目录或子目录中查找文件更新距离现在2分钟以上的文件:find /mnt -cmin +2

linux中存储管理_第19张图片
(3)在当前目录或子目录中查找文件更新距离现在2分钟的文件:find /mnt -cmin 2

在这里插入图片描述

3.1.6 按文件权限查找:perm

在当前目录或子目录中查找文件权限为444的普通文件:find /mnt -perm 444

linux中存储管理_第20张图片

  • 在当前目录或子目录中查找文件权限u,g,o位都>=4的普通文件:find /mnt -perm -444

linux中存储管理_第21张图片

  • 在当前目录或子目录中查找文件权限u,g,o位任一位>=4的普通文件:find /mnt -perm /444

linux中存储管理_第22张图片
linux中存储管理_第23张图片

3.1.7 对查找到的文件执行某命令

  • 在当前目录或子目录中查找文件权限u,g位>=4,o位超过0的文件,并将查找到的文件的组权限加w
find /mnt -perm -404 -exec chmod g+w {
     } \ ;
## -exec表示开始执行动作 
## {},表示用find命令查找出的所有文件
## \是为了转译 “\”

linux中存储管理_第24张图片

4 分区

4.1 常见的两种分区方式

分区方式 位数 分区表大小 支持分区个数 支持单个分区大小
legacy (MBR) 32 64 byte 主分区4个,所有分区16个 2.2TB
UEFI(GPT) 64 128byte 理论上无限制,windos128G 8ZiB

4.2 MBR分区方式

一个硬盘主分区至少有1个,最多4个,扩展分区可以没有,最多1个,且主分区+扩展分区总共不能超过4个。逻辑分区的个数没有限制

若全部采用主分区,假设一块120G的硬盘,每个主分区分配20G,那么硬盘剩下的40G就无法使用,这就造成了资源的浪费,为了解决最多四个主分区的限制,Linux系统引入了扩展分区的概念,可以把其中一个主分区设置为扩展分区(注意只能够使用一个扩展分区)来进行扩充。在扩充分区下,又可以建立多个逻辑分区。
扩展分区是无法直接使用的,只是作为逻辑分区的容器。通常情况下,逻辑分区的起始位置及结束位置记录在每个逻辑分区的第一个扇区,这也叫做扩展分区表。在扩展分区下,系统管理员可以根据实际情况建立多个逻辑分区,将一个扩展分区划割成多个区域来使用。

  1. 建立分区
  • fdisk -l :查看系统中真实存在的设备

linux中存储管理_第25张图片

  • fdisk /dev/vdb :进入分区界面

linux中存储管理_第26张图片

  • 进入分区界面后常用的参数
参数 功能
d 删除
l 列出所有分区类型
n 新建
p 显示分区表
t 修改分区系统id
w 保存更改
q 退出
g 设定分区方式为gpt
o 设定分区方式为mbr

linux中存储管理_第27张图片

  • 进入分区界面后建立主分区1,大小为100M

linux中存储管理_第28张图片

  • 接着建立主分区2,3,大小为100M

linux中存储管理_第29张图片

  • 建立主分区4,大小为100M,此时以达到能同建立主分区的个数的上限,无法在新建分区,硬盘剩余的资源见无法使用

linux中存储管理_第30张图片

  • 为了解决主分区的个数的限制,我们将主分区4删除,然后将其设置为扩展分区,之后在扩展分区的基础上新建逻辑分区

linux中存储管理_第31张图片

  • 新建逻辑分区5,大小为10M,p查看分区信息表的信息,最后将分区信息保存退出:wq

linux中存储管理_第32张图片
2. 更新分区信息:udevadm settle

查看分区信息: cat /proc/partitions

linux中存储管理_第33张图片
3. 格式化设备

文件系统:

(1)ext2/ext3/ext4:linux中主流的文件系统

(2)xfs: linux下一种高性能的日志文件系统

  • 主分区和扩展分区必须格式化之后才能使用:
    格式化设备为xfs文件系统: mkfs.xfs /dev/vdb2
  • 只有将分区格式化之后,才能实现设备的挂载:mount /dev/vdb2 /mnt

linux中存储管理_第34张图片

  • 查看挂载信息:mount

在这里插入图片描述

  • 永久挂载:在 /etc/fstab 文件中编辑相应的参数

linux中存储管理_第35张图片

  • 重启之后可查看是否开机自动挂载

4 . 删除设备

 dd if=/dev/zero of=/dev/vdb  bs=1M count=1

在这里插入图片描述

4.3 mbr分区转化成GPT

4.3.1 直接转换

  • parted /dev/vdb:对/dev/vdb进行分区管理
  • mklabel:定义分区的格式

linux中存储管理_第36张图片

  • 查看/dev/vdb分区类型修改时候成功

linux中存储管理_第37张图片

4.3.2 间接转换

  • fdisk /dev/vdb:进入分区管理界面
  • 在分区管理界面设定分区的方式:g ,设定分区方式为gpt

linux中存储管理_第38张图片

5 swap分区

5.1 swap分区的作用

Swap分区在系统的物理内存不够用的时候,把硬盘内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

使用 swap 交换分区,显著的优点是,通过操作系统的调度,应用程序实际可以使用的内存空间将远远超过系统的物理内存。由于硬盘空间的价格远比 RAM 要低,因此这种方式无疑是经济实惠的。当然,频繁地读写硬盘,会显著降低操作系统的运行速率,这也是使用 swap 交换分区最大的限制。

具体使用多大的 swap 分区,取决于物理内存大小和硬盘的容量

5.2 建立swap分区

5.2.1 临时创建swap分区

(1)进入分区管理界面: fdisk /dev/vdb
(2)按 “ t ”修改分区的系统id
(3)选择第几个分区
(4)列出所有分区的类型
(5)选择要修改的swap分区的id

linux中存储管理_第39张图片

(6)查看分区表的信息:p

linux中存储管理_第40张图片
(7)格式化设备为swap格式:mkswap /dev/vdb5

  • blkid:查看设备/dev/vdb5的格式

linux中存储管理_第41张图片

(8)激活swap分区并指定其优先级

  • swapon -a /dev/vdb5 -p 5,swap的优先级中,数字越大优先级越高
  • 查看swap的分区信息:swapon -s

在这里插入图片描述

5.2.2 设置开机自动添加swap分区

(1)编辑配置文件:/etc/fstab,添加相应的swap分区信息

linux中存储管理_第42张图片

(2)swapon -a:将/etc/fstab文件中所有设置为swap的设备,启动为交换区

(3)重启后生效

5.3 删除swap分区

(1)编辑配置文件/etc/fstab ,删除相应的sawp分区信息
(2) 通过命令swapoff /dev/vdb5删除设备的swap分区

  • 查看swap的分区信息:swapon -s

在这里插入图片描述

6 磁盘配额

6.1 磁盘配额的作用

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。磁盘配额可以限制指定账户能够使用的磁盘空间,这样可以避免因某个用户的过度使用磁盘空间造成其他用户无法正常工作甚至影响系统运行。

注意

(1)磁盘配额限制的用户和用户组,只能是普通用户和用户组,也就是说超级用户 root 是不能做磁盘配额的;
(2)磁盘配额限制只能针对分区,而不能针对某个目录,换句话说,磁盘配额仅能针对文件系统进行限制,举个例子,如果你的 /dev/sda5 是挂载在 /home 底下,那么,在 /home 下的所有目录都会受到磁盘配额的限制
(3)可以限制用户占用的磁盘容量大小(block),当然也能限制用户允许占用的文件个数(inode)。

6.2 划分磁盘额度

  • 挂载设备并激活配额参数: mount -o usrquota /dev/vdb3 /mnt
  • 完成设备挂载后修改挂载目录的权限,从而使普通用户可以再次目录中截取分区使用:chmod 777 /mnt

在这里插入图片描述

  • 重新读取/etc/fstab文件:mount -a
  • 查看挂载信息:mount

在这里插入图片描述

  • 激活配额
 quotaon -uv /dev/vdb3
         -u:用户的磁盘空间限制
         -v:显示指令执行过程。

在这里插入图片描述

  • 给指定用户划分配额:edquota -u lee,更改hard的值

在这里插入图片描述

软限制可理解为警告限制,硬限制是真正的限制。比如,规定软限制为 100MB,硬限制为 200MB,那么,当用户使用的磁盘空间为 100~200MB 时,用户还可以继续上传和新建文件,但是每次登录时都会收到一条警告消息,告诉用户磁盘将满。

6.3 测试

切换到划分配额的用户进行测试,一旦该用户截取的数据超过1024k时,截取数据会失败

linux中存储管理_第43张图片
repquota -a列出/etc/fstab文件中,有加入配额设置的分区使用情况,包括用户和组群

linux中存储管理_第44张图片

linux中存储管理_第45张图片

6.4 永久开启配额

编辑配置文件/etc/fstab,添加相应的信息

在这里插入图片描述

6.5 关闭配额

(1)编辑配置文件/etc/fstab,删除相应的信息
(2) quotaoff -uv /dev/vdb3

在这里插入图片描述

你可能感兴趣的:(linux基础)