Linux存储的基本管理

本文详述了Linux系统中存储管理的基础操作,包括设备识别(如SATA、IDE、VIRTIO-BLOCK等)、设备查看(如fdisk、lsblk、blkid、df等命令)、设备挂载与卸载、磁盘分区(MBR与GPT方式)、格式化与文件系统、自动挂载策略(fstab文件)以及配额设定。通过实例演示了如何进行分区、格式化、挂载、卸载以及设置用户配额,确保系统资源的有效管理和安全使用。
摘要由CSDN通过智能技术生成

1 设定实验环境

在虚拟机中添加硬盘:
1)在真机中使用超级用户的身份,输入virt-manager命令调出虚拟机:
在这里插入图片描述
2)在虚拟机中点击左上角的灯泡,进入后,选择左下角的Add Hardware, 在弹出的窗口将原来默认是20G的硬盘大小调整为5G,设备类型默认就是disk device、总线类型是virtio:
在这里插入图片描述
3)此时可以看到硬件信息里面,有两块虚拟硬盘:
在这里插入图片描述

2设备识别与查看

设备接入系统后,都是以文件的形式存在

2.1 设备识别

设备类型各类设备的名称
SATA/SAS/USB (硬盘类型的设备)/dev/sda,/dev/sdb s=SATA,d=DISK,a、b=第几块
IDE (针口类型的设备)/dev/hd0,/dev/hd1 h=hard,0、1表示第几块
VIRTIO-BLOCK (虚拟硬盘)/dev/vda,/dev/vdb ,v=virtio
M2(SSD)(固态硬盘)/dev/nvme0,/dev/nvme1 nvme=m2
SD/MMC/EMMC (存储卡)/dev/mmcblk0,/dev/mmcblk1 mmcblk=mmn卡
光驱/dev/cdrom,/dev/sr0,/dev/sr1

2.2 设备查看

设备包括:在使用、没在使用、和未被识别的设备

命令含义
fdisk -l查看磁盘分区情况(查看真实设备情况,可以对硬盘设备信息进行扫描)
lsblk查看设备使用情况
blkid设备管理方式及设备id(一般来说,有id的设备是被系统处理过的设备,可以直接被系统所使用;若使用该命令看不到设备,代表该设备没有被处理过)
df查看正在被系统挂载的设备(默认会显示设备的名称、大小、被使用的多少、可用多少、使用百分比、挂载在哪里,默认显示时,单位是k;可以用 df -h命令显示单位,h表示2的n次方;-H表示的是10的n次方)
cat /proc/partitions查看系统识别设备

1)查看磁盘分区:
在这里插入图片描述
2)查看设备使用情况:

在这里插入图片描述
3)设备管理方式及设备id:
在这里插入图片描述
4)查看正在被系统挂载的设备:
在这里插入图片描述
改变显示单位:
在这里插入图片描述在这里插入图片描述
5)查看系统识别设备:
在这里插入图片描述

3 设备挂载

  • 挂载:让设备被目录所读取;卸载:把设备从目录上拔出

1)df可以看到/dev/vda1设备,挂载在/boot下;卸载该设备,当设备卸载后/boot中将无法读取/dev/vda1中的数据,因为设备下的数据是用目录来读取的,目录读取的不是自己的内容,而是设备上的内容 ;此时再去ls /boot查看内容 ,是无法读取的;将该设备挂载在/mnt下,mount /dev/vda1 /mnt/,df查看:
在这里插入图片描述
cd /mnt,此时就可以看到原来在/boot里面的内容:
在这里插入图片描述
注意:

  • 当卸载某个设备时,如果该设备正在被系统使用卸载时,就会提示设备正在被系统使用,无法卸载,此时需要将设备上的程序都结束掉,才能卸载掉。
  • 卸载时可以在umount后面接设备名称,也可以接设备挂载点

2)使用 fuser -vm /mnt/,查看设备上运行的程序有那些:在这里插入图片描述
想结束设备上的程序,可以使用kill -9或者fuser -kvm /mnt/结束设备上运行的大多数进程,-k表示结束进程、-v表示显示详细信息、-m表示显示进程。之后再卸载就可以成功:在这里插入图片描述在这里插入图片描述
3)挂载命令

命令含义
mount直接回车,就可以查看系统中所有设备的挂载信息
mount /dev/vda1 /mnt/此时进入/mnt去写或者删除文件都是可以的
mount -o ro /dev/vda1 /mnt/只读挂载,无法写入
mount -o remount,rw /mnt/重新挂载/mnt目录上的设备,并激活读写参数,u盘也可以这么控制(这里后面加挂载点,不要加设备名称,更加准确)

挂载设备到/mnt中并尝试写或者删除文件:
在这里插入图片描述
查看系统中所有设备的挂载信息:
在这里插入图片描述
重新挂载/mnt目录上的设备激活读写参数,查看读写参数被激活:
在这里插入图片描述
注意:以上设备挂载处理都是临时挂载,想要永久挂载,需要修改挂载策略文件

4 磁盘分区

两种分区方式:

MBR方式GPT方式(唯一全局分区标识)
位数32位64位
分区表大小64byte128byte
支持分区个数主分区4个,所有分区16个理论上无限制,windows 硬性限制是128个
支持单个分区大小2.2TB8ZiB

4.1 MBR分区方式

有四个分区表,前面三个设备分好大小后分别由前三个分区表来管理,最后还有一些空间,想要多次划分,就可以把最后的空间设置成一个容器,该容器里可以进行空间再划分,把该容器分给第四个分区表,容器里面的设备信息由容器本身来写;注意由主分区表来记录分区信息的,前三个直接分配好的叫做主分区。容器叫做扩展分区,扩展分区里面再分配的空间叫做逻辑分区

  • 主分区–>主分区表记录分区的信息并可以直接使用的分区
  • 扩展分区–>主分区表记录的分区,不可以直接使用,只是逻辑分区容器
  • 逻辑分区–>扩展分区之上划分的分区

1)使用超级用户,实验前在虚拟机中添加了一块新的硬盘,该硬盘下没有任何分区,是空的:
在这里插入图片描述
2)fdisk /dev/vdb 进入该设备,里面就是分区界面,可以输入m查看功能。Commabd (m for help):m ,获取帮助:
在这里插入图片描述在这里插入图片描述
注意:帮助里面常用参数的含义

参数含义
d删除
l列出所有分区类型
n新建
p显示分区表
t更改分区类型
w保存更改
q退出
g设定分区方式位GPT
o设定分区方式为MBR

3)默认的分区方式是 o,也可以自己指定。指定完后,显示一下分区方式用p:

在这里插入图片描述
4)MBR方式,输入n,进行新建;系统会询问新建主分区还是扩展分区,按下p为主分区,接下来会显示使用哪一个分区id,直接回车表示默认,也可以自定义;再接下来会显示默认位置,直接回车;再下面会显示需要一个多大的设备,可以写 +100M ,这样该设备就划分成功;输入p可以查看到由一个设备:

在这里插入图片描述
5)再按照上一步的方法,共划分四个主分区:
在这里插入图片描述
6)此时硬盘还有容量,但是再去新建时,系统会显示必须把一个主分区替换为扩展分区。此时可以输入d删除一个朱分区,选择删除4,再p去查看,剩下三个主分区:
在这里插入图片描述
7)n新建,e扩展分区,后面两条信息是起始的块和结束的块,都是用默认。注意一定要将所有剩余容量都给扩展分区,这是因为当扩展分区足够大时,才能划分出更多的逻辑分区;此时p查看,再n去新建,就可以划分逻辑分区了:
在这里插入图片描述
8)再按之前的方法分区 +100M,p去查看,就可以划分出总共五个分区。注意分区画完后是在内存中的,必须按wq才会保存,q表示不保存退出:
在这里插入图片描述
9)输入udevadm settle 命令,表示同步分区表到系统;再输入cat /proc/partitions命令,查看系统识别设备就可以查看到;若不想要该分区表了fdisk /dev/vdb 回车进入。 d ,根据系统提示输入要删除的分区id即可删除设备,注意删除设备时,要确保设备在系统中是没有被利用的,否则系统可能会崩溃。(实验效果见gpt分区方式实验截图)
10)删除后,fdisk -l可以看到分区标识还存在于系统中,也就是还有分区信息存在,删除它可以使用:dd if=/dev/zero of=/dev/vdb bs=1M count=1 ,此时再fdisk -l,看到分区信息已经被删除(实验效果见gpt分区方式实验截图)

4.2 GPT分区方式

同样也有四个分区表,但是它会在这四个分区表后面先建立一个分区,叫做EFI分区,第一个分区表里面记录的是EFI分区,后面的n多个分区,都是由EFI分区来记录的,也就是说只有EFI的分区是由分区表来记录的。EFI分区的大小可以自己设定,理论上是可以无限大的。所以该方式是没有主分区、扩展分区分区等之分。
1)指定分区方式为gpt:在这里插入图片描述
2)n新建,后面id是1-128之间,默认直接回车。接下来的两条信息分别是起始和结束处,起始处默认,结束处输入+100M,不可以直接在起始处输入设备大小,完成后输入p查看设备分区。可以想分几个画分几个,一直往下分即可:
在这里插入图片描述
3)wq保存,输入udevadm settle 命令同步分区表到系统,输入cat /proc/partitions,查看系统识别设备:

在这里插入图片描述
4)若不想要该分区表了fdisk /dev/vdb 回车进入。 d ,根据系统提示输入要删除的分区id即可删除设备,注意删除设备时,要确保设备在系统中是没有被利用的,否则系统可能会崩溃:
在这里插入图片描述
5)删除后,fdisk -l可以看到分区标识还存在于系统中,也就是还有分区信息存在,删除它可以使用:dd if=/dev/zero of=/dev/vdb bs=1M count=1 ,此时再fdisk -l,看到分区信息已经被删除:
在这里插入图片描述在这里插入图片描述

4.3 非交互式分区

命令含义
parted /dev/vdb mklabel msdos/gpt设定分区方式为mbr/gpt,设定后可以fdisk -l查看。想重新确定分区方式时直接重新输入该命令,然后根据系统提示输入y/n即可
parted /dev/vdb mkpart primary 1 100主分区启示是1,结束是100
parted /dev/vdb mkpart primary 101 200主分区启示是101,结束是200,第三个主分区一样的划分方法
parted /dev/vdb rm 2删除第二个主分区

指定分区方式并进行分区:
在这里插入图片描述
查看设备分区:
在这里插入图片描述
删除第二个主分区:
在这里插入图片描述

5 格式化设备自动挂载及fstab文件问题处理

  • 当硬盘分区分好之后,我们去挂载分好的其中的某个硬盘是不成功的,会提示没有文件系统,设备需要被安装文件系统之后,才能够直接被使用
    在这里插入图片描述
    在这里插入图片描述
  • 常用文件系统对比:
文件系统FAT16FAT32NTFSEXT3EXT4XFS
最大卷2G4G256T32T1E16E
最大单个文件4G8T16T2T16T8E
最大文件个数655364177920429496729532000个子目录无限子目录
代表系统Dos win95Win98win2000以后RHEL5RHEL6RHEL7~
  • 对设备进行文件系统格式化:

1)mkfs.xfs /dev/vdb1 -f 在格式化一个设备时,若该设备上原来是有数据的,那么使用-f可以直接对其格式化,若没有数据,则不需要-f参数:
在这里插入图片描述
2)此时就可以直接挂载 mount /dev/vdb1 /mnt;输入blkid就可以看到该设备有了id、文件系统类型等。但是这种挂载方式是临时的,当重启系统后,设备将会消失:
在这里插入图片描述

  • 永久挂载:

1)vim /etc/fstab ,编辑设备挂载策略文件:
在这里插入图片描述

2)写入设备名称 、挂载点、文件系统类型 、挂载参数 、不备份 、不检测 (该文内容不能写错,写错之后系统会启动失败;当记不住参数代表什么时,可以 man 5 fstab):

在这里插入图片描述3)mount -a , 让设备没有生效的策略立即生效:

在这里插入图片描述
4)若文件内容写错之后,系统会启动失败,等待之后,系统会提示输入超级用户的密码,输入后,会进入一个shell,直接编辑该文件,将文件内容修改正确后退出保存并重启。

6 设备的配额设定

假如某个设备可以被两个用户同时使用,但是出现了其中一个用户将该设备的空间全部占用的情况,此时就需要设定设备的配额,比如设定为某个用户所用的设备空间大小为设备总大小的一半。
1)umount /mnt ,卸载该设备。
2)mount -o usrquota /dev/vdb1 /mnt,在挂载的时候激活磁盘配额。
3)mount | tail -n 1,查看磁盘配额是否被激活,默认情况下是没有被激活的:
在这里插入图片描述

4)edquota -u westos ,指定用户能在设备上写入数据的大小。文件里的内容分别代表,设备名、该用户在设备上已经共存放了多少数据、能够存放数据的软限、能够存放数据的硬限、用户已经创建文件的个数、能够建立文件个数的软限、能够建立文件个数的硬限,默认单位为k。
输入0、0、51200 、0、0、0,代表用户在该设备中写入数据大小不能超过50M,wq退出保存:
在这里插入图片描述

5)切换至该用户,使用dd if=/dev/zero of=/mnt/westosfile bs=1M count=40,表示从/dev/zero中截取数据到/mnt/westosfile中,截取40M数据;dd if=/dev/zero of=/mnt/westosfile bs=1M count=51,此时会报错,不能超过50M,超过的部分会被拒绝:
在这里插入图片描述在这里插入图片描述

6)永久激活需要写入vim /etc/fstab文件中,在defaults后加上",usrquota",此参数添加配额后会在开机后自动激活,未编写过此文件时配额不会自动激活:
在这里插入图片描述

7)不想设置配额时,将该文件中的挂载和配额都删除,然后umount /mnt卸载,此时df查看就已经卸载并删除配额;若只是想删除配额,可以把设备卸掉后重新挂载,再去 mount | tail -n 1查看,显示noquota:
在这里插入图片描述

7 系统中文件的查找

1)实验准备,建立一些文件,并给文件设置权限:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
建立监控,watch -n 1 ls -nl /mnt:
在这里插入图片描述

2)find命令参数的使用

find命令参数含义
- name按照文件名查找
-user按照文件拥有者查看
-group按照文件拥有组查看
-perm 222或/222或-222按照文件权限进行查找,企业七之前的版本中/可以用+表示,但企业七之后使用/
-maxdepth可查找文件的最深层次为多少
-mindepth可查找文件的最浅层次为多少
-cmin 1/+1/-1按照修改时间查找
-size按照文件大小查找
-o表示或者
-a表示并且
-not表示取非
-type f/d/s/b/l按照类型查找
  • -name参数,查找含有该名称的所有文件:
    在这里插入图片描述

  • 使用type参数,按照文件的类型查找,d表示目录:
    在这里插入图片描述在这里插入图片描述

  • -maxdepth ,可查找的最深层次为多少:
    在这里插入图片描述

  • -mindepth,可查找的最浅层次为多少:
    在这里插入图片描述

  • -user,查找拥有者是该用户的文件:
    在这里插入图片描述

  • -group,查找拥有组是该用户的文件:
    在这里插入图片描述

  • 查找拥有者为westos(1000),拥有组为liu(1001)的文件:
    在这里插入图片描述

  • 查找拥有者为westos(1000)而且拥有组为liu(1001)的文件:
    在这里插入图片描述

  • 查找拥有者为root(0)或者拥有组为liu(1001)的文件:
    在这里插入图片描述

  • 查找拥有者不是root(0)或者拥有组为liu(1001)的文件:
    在这里插入图片描述

  • 修改文件时间戳,然后使用-cmin参数查看一分钟内做过修改的文件:
    在这里插入图片描述在这里插入图片描述

  • 向文件中添加内容,改变文件大小,使用size参数查看文件大小:
    在这里插入图片描述在这里插入图片描述

  • 使用perm参数查看文件权限,其中222表示权限只能是222、/222表示三个权限位只要有一位包含2这个权限即可、-222表示必须包含222,也可以有其他权限:
    在这里插入图片描述exec表示执行,该命令表示将包含002权限的文件执行删除命令,{ }表示find命令的查找结果,\是为了转译“;”,表示分号是find命令的内容:
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值