2.3 Linux存储的基本管理

以下操作均在Windows虚拟机下完成


实验前,先在 Windows虚拟机里添加一块5G的硬盘
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述Linux虚拟机里添加一块5G的硬盘

virt-manager

在这里插入图片描述

1. 设备识别

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

设备 文件名称
SATA/SAS/USB /dev/sda,/dev/sdb
IDE /dev/hd0,/dev/hd1
VIRTIO-BLOCK /dev/vda,/dev/vdb
M2(SSD) /dev/nvme0,/dev/nvme1
SD/MMC/EMMC(卡) /dev/mmcblk0,/dev/mmcblk1
光驱 /dev/cdrom,/dev/sr0,/dev/sr1
  1. 查看设备
df                      //查看正在被系统挂载的设备的情况
df  -h                  //2的n次方计算大小,带单位
df  -H                  //10的n次方计算大小,带单位
lsblk                   //查看设备使用情况(被谁使用)
blkid                   //查看设备的id以及设备管理方式
cat   /proc/partitions  //查看系统识别设备
fdisk  -l               //最真实的系统硬盘信息

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

2. 设备的挂载

在系统中有设备id的设备是可以被系统使用的

  1. 卸载设备

当识别卸载后,/boot将无法读取/dev/vda1中的数据

umount  /dev/sda1
ls  /boot

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

卸载时,提示该设备忙碌busy,是因为它正在被程序使用
进入目录/mnt,占用设备

cd  /mnt
umount  /mnt

在这里插入图片描述
查看设备上运行的程序有哪些

fuser  -vm  /mnt/

解决程序的占用问题(相当于kill -9 xxx)

fuser  -kvm   /mnt/
umount  /mnt

在这里插入图片描述

  1. 挂载设备

只读挂载

mount  -o  rw  /dev/sda1  /mnt
mount      //查看系统当中所有设备的挂载信息

在这里插入图片描述
重新挂载/mnt上的设备/dev/sda1,并激活只读参数:
转换挂载参数由读写到只读
(直接写挂载点,不要写设备)

mount  -o  remount,ro  /mnt
mount  |   tail  -n  1

在这里插入图片描述

3. 分区

分区方式 位数 分区表大小 分区个数 分区大小
legacy(MBR) 32 64byte 主分区4个 所有分区16个 2.2TB
UEFI(GPI) 64 128byte windows 128 8ZiB

MBR分区方式

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

GPT

  1. 没有主分区,逻辑分区,扩展分区
  2. 很多个分区记录在efi分区表
  3. efi可以数据备份

新的硬盘,没有任何分区方式
在这里插入图片描述

3.1 交互模式下分区

分区方法

fdisk  /dev/sdb
命令 说明
d 删除
l 列出所有分区类型
n 新建
p 显示分区表
t 更改分区类型
w 保存更改
q 退出
g 设定分区方式为GPT
o 设定分区方式为MBR
MBR分区方式命令 说明
p 新建主分区
e 新建扩展分区

在这里插入图片描述在这里插入图片描述在这里插入图片描述
MBR分区方式

fdisk  /dev/sdb

在这里插入图片描述在这里插入图片描述
注意!当4个主分区出现,必须要把一个主分区转换成扩展分区
在这里插入图片描述
划分扩展分区,一定要把剩余的所有容量划分给它
这样才可以划分很多个逻辑分区
在这里插入图片描述在这里插入图片描述
q:没有将数据同步到硬盘
在这里插入图片描述
GPT分区方式
在这里插入图片描述在这里插入图片描述在这里插入图片描述
同步分区表到系统

udevadm  settle

在这里插入图片描述在这里插入图片描述在这里插入图片描述
删除不要的分区
前提是确保设备在系统中未被使用,否则系统很有可能崩溃
在这里插入图片描述在这里插入图片描述
虽然删除了分区,但是分区标识还存在
删除分区标识

dd  if=/dev/zero  of=/dev/sdb  bs=1M  count =1
fdisk  -l

在这里插入图片描述

3.2 非交互式分区

1)设定分区方式

parted  /dev/sdb  mklabel  msdos  //MBR的方式
parted  /dev/sdb  mklabel  gpt    //GPT的方式

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

2)划分分区

parted  /dev/sdb  mkpart  primary  1  100  //第一个分区,起始是1,划分到100
parted /dev/sdb  mkpart  primary 101 200  //第二个分区
parted /dev/sdb  mkpart  primary 201 300

在这里插入图片描述在这里插入图片描述
3)删除分区
删除的时候,不可以先删1再删3

parted  /dev/sdb  rm  3  //删除第3个分区

在这里插入图片描述
4)划分扩展分区

parted  /dev/sdb  mkpart  extended 

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

4. 文件系统

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

1)格式化

mkfs.xfs  /dev/sdb1  -f

在这里插入图片描述

2)临时挂载

mount  /dev/sdb1  /mnt
df

在这里插入图片描述

3)永久挂载系统

编辑设备挂载策略文件

vim  /etc/fstab

写入:

/dev/sdb1   /mnt   xfs   defaults 0 0   // 0 0 不备份,不检测

在这里插入图片描述

立即生效

mount  -a

在这里插入图片描述测试,开机后自动挂载

reboot

4)设备挂载策略文件写错时,系统会无法启动
在这里插入图片描述测试:

reboot

在这里插入图片描述系统无法启动
在这里插入图片描述在这里插入图片描述在这里插入图片描述

5. 磁盘配额

未进行磁盘配额时,用户yao会直接将磁盘全部用完

df  -h
chmod  1777  /mnt
su  -  yao
dd  if=/dev/zero  of=/mnt/yaofile  bs=1M  count=100
logout
df
ll  /mnt

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

临时设定磁盘配额
设定每个用户能往磁盘存放的大小数据

rm  -fr  *      //清空磁盘
umount  /mnt
mount  -o  usrquota  /dev/sdb1  /mnt
mount |  tail  -n  1

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

edquota -u yao   //默认单位是k,修改成5M

在这里插入图片描述

su  -  yao
dd  if=/dev/zero  of=/mnt/yaofile  bs=1M  count=40
dd  if=/dev/zero  of=/mnt/yaofile  bs=1M  count=45
dd  if=/dev/zero  of=/mnt/yaofile  bs=1M  count=50
dd  if=/dev/zero  of=/mnt/yaofile  bs=1M  count=51    //报错

在这里插入图片描述永久设定磁盘配额

vim  /etc/fstab
reboot

在这里插入图片描述
关闭磁盘配额

[root@westoslinux Desktop]# vim /etc/fstab			//删除之前写入的自动挂载
[root@westoslinux Desktop]# quotaoff -uv /dev/vdb1	//关闭配额
Disabling user quota enforcement on /dev/vdb1
/dev/vdb1: user quotas turned off

6. swap分区

  1. 作用

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

  1. swap分区大小建议
内存大小 swap分区建议大小 当允许HIBERNATE
2GiB以下 内存2倍 内存3倍
2-8GiB 等于物理内存 物理内存2倍
8-64GiB 4GiB 1.5倍物理内存
64GiB 4GiB HIBERNATE不开
  1. swap管理
swapon -s		//查看swap分区信息
  1. 创建swap分区
fdisk /dev/vdb
udevadm settle		//同步分区表到系统
mkswap /dev/vdb1		//格式化设备位swap格式
swapon -a		//临时激活
vim /etc/fstab		//永久激活

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

  1. 删除swap分区
vim /etc/fstab		//删除之前写入的命令
swapon -s		//查看
swapoff /dev/vdb1		//关闭swap分区
swapon -s
fdisk /dev/vdb		//删除/dev/vdb1

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

7. find

文件查找很重要
find命令(默认递归)

准备工作

touch  file{1..5}
chmod 000 file*
chown yao file1
chgrp westos file2
chown westos.yao file3
chmod ug+w file1
chmodugo+w file2
chmod uo+w file2
chmod 666 file4
chmod 755 file3
chmod 700 file5
watch  -n 1 ls -l /mnt
  1. 以名字方式查找
find /mnt -name file1
find /mnt -name file*
  1. 以目录查找
find /mnt -type d(/mnt也被查找)
  1. 设定查找深度
find /mnt -mindepth 1 -type(最小深度,一层不找,最浅的深度是目录的里面)
  1. 以用户查找
find  /mnt -user root
  1. 以组查找
find /mnt -group westos

用户是westos 组是yao a:and与关系
find /mnt -user westos -a -group yao

  1. 或者关系
find  /mnt -user root -o -group yao

-not 用户不是root,组是yao(反向选择)
find /mnt -not -user root -o -group yao

-cmin
touch 改一下时间(+:超过1min,-:在1分钟内)
find /mnt -cmin -1(c:change表示在一分钟以内被改过的时间)

-size大小
dd(截取) if=/dev/zero of=/mnt/file1 bs=1M count=10
find /mnt -size 20M (等于20M)
-20 (小于20M)
+20M

权限
rw-------(只有2个权限)
rw-r–r--(4个权限)
644:4个权限
find /mnt -perm 222 (并且关系,精确关系,企业7之前是+)
find /mnt -perm /222(满足一个条件即可)
-222(ugo都要打开w权限,-与关系)

-exec(处理find命令查找出来的结果)
find /mnt -perm -002 -exec rm -fr {} ;({}表示find查找出来的结果,\是为了转译“;”)

猜你喜欢

转载自blog.csdn.net/weixin_47133613/article/details/113694835
2.3