Unit1-Linux存储的基本管理

Posted S4061222

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unit1-Linux存储的基本管理相关的知识,希望对你有一定的参考价值。


一、实验环境

创建一块大小为10G,存储空间根据使用情况占用,名称为hello的硬盘,并添加此硬盘,此时虚拟机会有两块硬盘

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

二、设备识别

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

设备文件名称:
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                     查看正在被系统挂载的设备
cat /proc/partitions   查看系统识别设备

1.fdisk -l ##查看磁盘分区情况

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

在这里插入图片描述

2.lsblk ##设备使用情况

在这里插入图片描述

3.blkid ##设备管理方式及设备id

在这里插入图片描述

4.df ##查看正在被系统挂载的设备

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

df -H ###查看磁盘容量的使用情况

在这里插入图片描述

5. cat /proc/partitions ##查看系统识别设备

在这里插入图片描述

三、设备挂载

1.临时挂载

(1) df 查看正在被系统挂载的设备:查看发现 /dev/vda1 挂载在 /boot 中;
(2) ls /boot 查看 boot 中的内容;
在这里插入图片描述
(3)umount /dev/vda1 :将 /dev/vda1 挂载的设备卸载,ls /boot 中无法读取 /dev/vda1 中的数据;
(4)mount /dev/vda1 /westos/ :将设备 /dev/vda1 挂载到 /westos/目录上;
ls /westos :可以读取 /dev/vda1 中的数据;
在这里插入图片描述

2.指定参数挂载设备

(1)mount:查看挂载方式
在这里插入图片描述
在这里插入图片描述

(2)ro:只读方式挂载,只能看不能写,mount可以查看到挂载方式
在这里插入图片描述
在这里插入图片描述
(3)rw:指定挂载参数为读写,可以建立和删除操作;
remount,ro:重新挂载,指定挂载参数为ro
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. etc/fatab 设备挂载策略文件编写错误,系统启动失败

输入超级用户密码注释错误行,重启系统

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

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

4.在卸载时当出现设备正忙

使用两个shell连接虚拟机,其中一个虚拟机cd /boot,此时umount /boot,会显示设备正忙,解决方法:fuser -kvm /boot

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

5.设备永久挂载:

/etc/fstab :设备挂载策略文件

设备         挂载点   文件系统类型   挂载参数   是否备份  是否检测
/dev/vdb1    /mnt      xfs         defaults      0        0

(1)临时挂载
在这里插入图片描述
(2)永久挂载:编辑 /etc/fstab文件
在这里插入图片描述
在这里插入图片描述

mount -a 重新读取/etc/fstab文件,省去reboot

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

四、设备中文件的查找

命令描述
find -name按名称查找
find -user按用户查找
find -group按组查找
find -type按类型查找
find -perm按权限查找
find -exec对查找的内容做执行动作
find -maxdepth按最大深度查找
find -mindepth按最小深度查找
find -cmin 1 /-1 /+1按照修改时间查找
find -size +/-/1M按照文件大小查找
find -o按照或者的关系查找
find -a按照并且的关系查找
find -not查找不包括的内容

实验环境:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1. find /etc/ -name xxxx :按名称在 /etc/中进行查找xxx

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

2.find /etc/ -maxdepth 2 -name xxx :按照最大查找深度2, 在 /etc/中进行查找xxx;

在这里插入图片描述

find /mnt/ -maxdepth 2 -mindepth 2 -name xxxx:按照最大深度2, 在 /mnt/ 中查找xxx

在这里插入图片描述

3.find /mnt/ -user xxxx 表示按照xxx用户查找文件

4.find /mnt/ -user xxx -a -group xxx 表示按照 用户和 组的条件来查找文件

find /mnt/ -user xxx -o -group xxx 表示按照 用户 或 组的条件来查找文件

在这里插入图片描述

5. -a -not: 并且不是

在这里插入图片描述

6.-type :按照类型

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

7.-cmin 1 /-1 /+1 :修改时间为1 /小于1 /大于1 min的文件

在这里插入图片描述

在这里插入图片描述

8.find /mnt/ -perm 444:查找文件权限为 444 的文件

find /mnt/ -perm -444:查找文件权限 u 位有2 ,G位有2 和o 位有2 的文件
find /mnt/ -perm /444:查找文件权限 u位、g位或者 o位含有4的文件

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

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

find /mnt/ -perm -755:查找文件权限 u 位有2 ,G位有2 和o 位有2 的文件
find /mnt/ -perm /755:查找文件权限 u位、g位或者 o位含有4的文件

在这里插入图片描述

9. find /mnt/ -perm 444 -exec xxx : 在 /mnt/中查找文件权限为444,执行xxx

{ }:find 命令查找结果,\\ :转义,解释“;”

在这里插入图片描述

五、分区

1.分区方式

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

MBR分区方式:
(1)主分区
主分区表记录分区的信息并可以直接使用的分区
(2)扩展分区
主分区表记录的分区,不可直接使用,只是逻辑分区容器
(3)逻辑分区
扩展分区之上划分的分区叫做逻辑分区

2. 非交互式设定分区

parted -l:

在这里插入图片描述
(1)parted /dev/vdb mklabel msdos ###将 /dev/vdb设备设为 dos 格式
在这里插入图片描述
(2)parted /dev/vdb mklabel gpt ###将 /dev/vdb设备设为 gpt 格式
在这里插入图片描述
(3)parted /dev/vdb mkpart primary 1 100 ###划分 /dev/vdb设备的第一个主分区大小为100M
在这里插入图片描述

注:用非交互的模式建立分区时,从第二块开始要做计算。建立第二块分区,需要加上第一块分区的大小

在这里插入图片描述
(3)parted /dev/vdb rm 1 ###删除 /dev/vdb设备上的第一个分区

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

3. 交互式

label为dos

(1) fdisk /dev/sdb ###对/dev/sdb 设备进行分区

命令含义
m获得帮助
d删除
l列出所有分区类型
n新建
p显示分区表
t更改分区类型
wq保存更改
q退出
g设定分区方式为 GPT
o设定分区方式为 MBR

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

当用 mbr 格式对设备进行分区时,只能分4个区;
当4个主分区出现时,硬盘即使有容量也不能再新建分区,此时要新建必须删除一个主分区;
如下:为四个主分区

在这里插入图片描述

删除第四个主分区,新建一个扩展分区;
划分扩展分区时,要将所有剩余容量都给扩展分区;

在这里插入图片描述

扩展分区建立后,再新建分区为逻辑分区;

在这里插入图片描述

udevadm settle ###同步分区表到系统;
cat /proc/partitions ###查看所有的分区信息

在这里插入图片描述

dd if=/dev/zero of=/dev/vdb bs=1M count=1 ####删除设备;
从无限零字节的文件中截取一块大小为1M的数据放在该设备上,便可将标识信息删除;将其完全删除成初始的样子。

在这里插入图片描述

label为gpt

在这里插入图片描述

创建分区

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

4.格式化文件系统

常用文件系统

文件系统	      FAT16	   FAT32	  NTFS	     NTFS	       EXT3	    EXT4 	XFS
最大卷	       2GB	    4GB	     256TB	     32TB	       1EB	    16EB	
最大单个文件	   4GB	    8TB	      16TB	     2TB	       16TB	     8EB	
最大文件个数   65536	  4177920   4294967295 32000个子目录	 无限子目录		
代表系统	       DOS    Win95      Win98     Win2000以后    RHEL5 	RHEL6	HEL7~

实验环境
在这里插入图片描述
在这里插入图片描述

mkfs.xfs -K /dev/sdb1 ###格式化 /dev/vdb设备为xfs 文件系统(相当于在/dev/sdb1
上安装设备管理软件); -K :不丢弃空数据块

在这里插入图片描述

六、swap分区

1.作用:

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

2.swap 分区大小建议

内存大小			swap分区建议大小		当允许HIBERNATE
2GiB以下		    内存两倍			   内存3倍
2-8GiB			  等于物理内存	     物理内存2倍
8-64GiB				 4GiB			 1.5倍物理内存
64GiB以上			 4GiB			 HIBERNATE不开

3.swap管理

swapon -s ##查看swap分区信息
swapon -a /dev/vdb1 ##打开swap分区
mkswap /dev/sda1 ##格式化设备位swap格式
swapon /dev/sda1 -p 0-32767 ## -p表示指定swap的优先级
swapoff /dev/sda1 ##关闭swap分区

实验步骤:
(1)fdisk /dev/vdb 新建一个分区,并将新建的分区修改为 swap 分区类型;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)udevadm settle :加载分区信息表
(3)mkswap /dev/vdb1 :格式化新建的分区为 swap 格式
(4)swapon -a:开启 swap 分区
(5)swapon -s :查看看swap分区信息

在这里插入图片描述

永久方式添加 swap 分区:编写 /etc/hosts

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

删除 swap 分区

(1) 删除配置文件的内容
在这里插入图片描述
(2)swapoff /dev/vdb1 :关闭 swap 分区
在这里插入图片描述
(3)删除swap 分区
在这里插入图片描述在这里插入图片描述

七、磁盘配额

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

实验环境
1.新建磁盘/dev/vdb1
在这里插入图片描述
2. mkfs.xfs -K /dev/vdb1:格式化设备为xfs文件系统
3. 先挂载在改权限
在这里插入图片描述
4.删除在这里插入图片描述

1. 添加配额

(1) mount -o usrquota /dev/vdb1 /westos ##挂载设备并激活配额参数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2) quotaon -uv /dev/sda1 ##激活配额
在这里插入图片描述
(3) edquota -u westos ##设置用户的磁盘配额为20M,修改hard为20480
在这里插入图片描述

repquota -a ##显示所有文件系统的配额信息(只显示有配额信息的文件系统)

在这里插入图片描述
测试:

su - westos ##切换用户 dd if=/dev/zero of=/westos/westosfile bs=1M count=21 ##截取失败,只能写入小于等于20M的数据

在这里插入图片描述

2. 永久添加配额

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

3. 永久关闭配额

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

Test

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

步骤(一)在虚拟机中添加一块新的硬盘,大小为10G
在这里插入图片描述
在这里插入图片描述
步骤(二)建立分区/dev/vdb1 和/dev/vdb2(swap)
在这里插入图片描述
在这里插入图片描述
步骤(三)格式化/dev/vdb1设备为xfs的文件系统,永久挂载
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

步骤(四)永久添加配额
在这里插入图片描述

需要卸载后mount -a

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

步骤(五)永久添加swap分区

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:
在这里插入图片描述重启后:
在这里插入图片描述

以上是关于Unit1-Linux存储的基本管理的主要内容,如果未能解决你的问题,请参考以下文章

如何管理在每个 git 版本中添加私有代码片段?

如何将代码片段存储在 mongodb 中?

使用 Git 来管理 Xcode 中的代码片段

massCode 一款优秀的开源代码片段管理器

如何将 r ggplot 图存储为 html 代码片段

c_cpp Robolution基本代码片段