Linux磁盘存储管理以及文件的查找

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

设备查看:

fdisk-l##查看磁盘分区情况
lsblk##设备使用情况
blkid##设备管理方式及设备id
df##查看正在被系统挂载的设备
-a列出所有的文件系统,包括系统特有的 /proc 等文件系统
-k以 KBytes 的容量显示各文件系统
-m以 MBytes 的容量显示各文件系统
-h以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示
-H以 M=1000K 取代 M=1024K 的进位方式
-T显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出
-i不用硬盘容量,而以 inode 的数量来显示
cat /proc/partitions##查看系统识别设备

2.设备挂载

在系统中有设备id的设备是可以被系统使用的
挂载命令:

mount	-o 挂载参数   device	挂载点
umount   设备|挂载点
mount    ##查看挂载信息

mount -o rw /dev/vda1	/westos
mount -o remount,ro /westos			##转换挂载参数由读写变为只读

在卸载时当出现设备正忙:
fuser -kvm  设备|挂载点		#-k 结束进程, -v 现实详细信息 -m 显示进程

"注意:以上设备挂载都是临时挂载"
设备永久挂载
vim /etc/fstab		##设备挂载策略文件
设备		挂载点		文件系统类型		挂载参数	是否备份	是否检测
/dev/sr0	/westos		iso9660		defaults	  0       0
此文件在编写完成后不会马上生效
mount -a		##重新读取/etc/fstab文件
此文件内容编写错误会导致系统启动失败
按照提示在操作界面输入超级用户密码
注释错误行
重启系统即可

3.设备中文件的查找

链接: find命令.

链接: Linux xargs 命令.

find path -option [ -print ] [ -exec -ok command ] {} \

find-name文件名称符合 name 的文件
-user用户为指定用户的文件
-group用户组为指定用户组的文件
-type x文件类型是 x 的文件
-perm222文件权限为222,/222或者关系,-222并且关系
-exec执行命令
-maxdepth表示最大深度
-mindepth表示最小深度
-cmin n在过去 n 分钟内被修改过
-o或者
-a并且
-not
find /mnt -perm /111 -type f -exec chmod ugo-x {} \;将/mnt目录下文件类型为普通文件的,且三个权限位至少有一位有1权限(可执行权限)的文件的 三个权限位的可执行权限删除 {} 表示find命令查找结果,\是为了转译“;”

4.分区

MBR分区

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

分区方法

fdisk /dev/磁盘名称交互模式下分区
parted非交互和交互模式下分区(采用parted分区的话一般采用非交互模式,交互模式下相对比较繁琐)
[root@d westos]# fdisk /dev/vdb
Command (m for help): m
d  				##删除
l				##列出所有分区类型
n				##新建
p				##显示分区表
t 				##更改分区类型
w 				##保存更改
q				##退出
g				##设定分区方式为GPT
o				##设定分区方式为mbr
Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)		##主分区
   e   extended (container for logical partitions)	##扩展分区
Select (default p): p					##建立主分区
Partition number (1-4, default 1):1			##分区表位置
First sector (2048-20971519, default 2048):		##分区起始位置推荐使用默认
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +100M	##分区结束位置
Command (m for help):wq					##退出保存,如果直接q表示退出不保存

udevadm settle  #同步分区表 
partx -d /dev/vdb##清理分区表
partx -a /dev/vdb##重新加载分区表
mkfs.xfs  -K /dev/vdb1	##格式化设备为xfs文件系统(相当与在/dev/vda1上安装设备管理软件)##-K 不丢弃空数据块
mount /dev/sdb1 /mnt/westos	##mount命令挂在为临时挂在,如果需要永久挂在需要编写/etc/fstab

设备删除
dd if=/dev/zero of=/dev/设备名称 bs=1M count=1
fdisk /dev/磁盘名 在交互模式下删除,选d,之后选择删除的分区号
parted  非交互模式下删除。后面使用rm加指定分区号

#mbr分区方式转换成GPT#
parted /dev/vda
(parted) mklabel
New disk label type? gpt
Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost.
Do you want to continue?
Yes/No? yes
(parted) quit
在RHEL8中可以直接使用fdisk /dev/vdb
g		##g表示把/dev/sdb设备的分区方式调整为GPT

5.swap分区

作用:
程序在运行时所有数据是在RAM,当RAM使用量超过了限额,为了使系统更加稳定,我们在硬盘上划分一部分空间来作内存缓冲区swap,当内存使用超过限额,内核会把内存中闲置的数据存放到swap中,当程序需要swap分区中的数据时内核将swap分区中的数据在交还给内存进程处理。

swap管理   swapon -s	##查看swap分区信息

创建swap分区:
(1)创建分区并设定分区的类型为Linuxswap
(2)mkswap	 /dev/磁盘名				 %格式化设备位swap格式
(3)swapon	 /dev/磁盘名	 -p 0-32767		 %-p表示指定swap的优先级
 以上操作都位临时操作,如果永久添加swap分区则需要编辑下面的文件:
vim /etc/fstab
/dev/磁盘名		swap	swap	    default,pri=1	0 0

swapon -a 重新读取/etc/fstab文件

删除swap
(1)vim /etc/fstab
 /dev/sda1  swap    swap        default,pri=1   0 0	 %删除此行
(2)swapoff /dev/磁盘名	

6.磁盘配额

作用:
设定用户能写入指定设备的最大额度。

mount /dev/sda1 /pub/ -o usrquota	##挂载设备并激活配额参数
quotaon  -uv /dev/sda1			##激活配额
edquota -u lee				##设定用户lee配额
Disk quotas for user lee (uid 1001):

  设备	    用户已经创建数据 软限       硬限  户已经创文件个数 软限     硬限
Filesystem      blocks       soft       hard     inodes        soft     hard
/dev/sda1       20480          0        20480          1         0        0


永久开启配额
vim /etc/fstab
/dev/sda1	/pub	xfs	defaults,usrquota 0 0
测试:
su - lee
cd /pub
dd if=/dev/zero of=/pub/leefile bs=1M count=22		##截取数据失败只能写入20M数据

关闭配额:
quotaoff  -uv /dev/sda1
vim /etc/fstab						##去掉配额参数usrquota

练习

1.在虚拟机中添加一块新的硬盘,大小为10G
2.在新硬盘中建立分区并挂在到/westosdir目录中,分区大小为500M
3.设定/westosdir目录中所有用户可以自由新建文件但不能删除不属于自己的文件
4.设定westos用户和lee用户能写入/westosdir目录中的最大数据不能超过10M
5.在系统中添加swap分区,大小为1G,优先级为1
6.以上要求在重启主机后仍然生效

[root@d ~]# mkdir /westosdir
[root@d ~]# fdisk /dev/vdb
Command (m for help): n
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +500M
[root@d ~]# mkfs.xfs -K /dev/vdb1
[root@d ~]# useradd lee
[root@d ~]# fdisk /dev/vdb
Command (m for help): t
Hex code (type L to list all codes): 82
[root@d ~]# mkswap /dev/vdb2
[root@d ~]# swapon /dev/vdb2 -p 1
[root@d Desktop]# udevadm settle 
[root@d ~]# chmod 1777 /westosdir/
[root@d ~]# mount /dev/vdb1 /westosdir/ -o usrquota 
[root@d ~]# quotaon -uv /dev/vdb1
[root@d ~]# edquota -u westos 
[root@d ~]# edquota -u lee
vim /etc/fstab
/dev/vdb1	/westosdir	xfs	defaults,usrquota 0 0
vim /etc/fstab
/dev/vdb2	swap	swap	defaults,pri=1	0 0





检测结果
# units generated from this file.
#
UUID=caa4a2c5-1d4e-4774-bc2b-5e71fd7d8b7a /                       xfs     defaults        0 0
UUID=f377f432-db5f-4172-aba5-edb5770d8b50 /boot                   xfs     defaults        0 0
UUID=23e3187c-cdf8-47be-8ad9-ad4048f65a02 swap                    swap    defaults        0 0
1
Disk /dev/vda: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xd2ba91ba

Device     Boot   Start      End  Sectors  Size Id Type
/dev/vda1  *       2048  1026047  1024000  500M 83 Linux
/dev/vda2       1026048  2050047  1024000  500M 82 Linux swap / Solaris
/dev/vda3       2050048 20971519 18921472    9G 83 Linux


Disk /dev/vdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcabd18f4

Device     Boot   Start     End Sectors  Size Id Type
/dev/vdb1          2048 1026047 1024000  500M 83 Linux
/dev/vdb2       1026048 3123199 2097152    1G 82 Linux swap / Solaris
2
Filesystem      Size  Used Avail Use% Mounted on
/dev/vdb1       495M   39M  456M   8% /westosdir
3
drwxrwxrwt. 2 root root 22 Nov 20 20:47 /westosdir
4
dd: error writing '/westosdir/testfile': Disk quota exceeded
11+0 records in
10+0 records out
10485760 bytes (10 MB, 10 MiB) copied, 0.00645216 s, 1.6 GB/s
5
Filename				Type		Size	Used	Priority
/dev/vda2                              	partition	511996	0	-2
/dev/vdb2                              	partition	1048572	0	1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值