磁盘管理(设备的查看、挂载与卸载、磁盘分区、swap分区的建立与删除、磁盘配额)

磁盘管理

概述:

分区:磁盘上的分区规划
硬盘:是一种存储设备,可划分分区(可见的)
硬盘与系统的关系: 系统管理硬盘  硬盘保存系统信息

1.本地存储设备的查看

fdisk  是用于管理磁盘分区的实用程序
fdisk -l                  #查看系统真实存在的设备
cat /proc/partitions      #查看系统可识别到的设备
blkid                     #查看系统可使用的设备
df                        #查看系统正在使用(挂载)的设备
df -h                     #查看到的数据更为准确 (以2^n计算  1M=1024k)  
df -H                     #查看到的数据更为准确 (以10^n计算 1M=1000k)  

实验1:(在虚拟机中)

##查看系统所有的设备信息
[root@localhost ~]# fdisk -l  (在虚拟机中)

在这里插入图片描述

[root@foundation34 ~]# fdisk -l(在真机中)

在这里插入图片描述

##查看系统可识别的设备信息
[root@localhost ~]# cat /proc/partitions 

在这里插入图片描述

##查看系统可使用的设备信息
[root@localhost ~]# blkid

在这里插入图片描述

##查看系统正在使用(挂载)的设备信息
[root@localhost ~]# df

在这里插入图片描述
2.设备的挂载和卸载

(1).设备名称

/dev/sda         ##第一块串口硬盘;dev=设备 s=sata d=disk  a=第一块  (b表示第二块 依次类推)
/dev/vda         ##第一块虚拟硬盘;dev=设备 v=virtal 虚拟设备  d=disk  a=第一块
/dev/hd0         ##并口磁盘
/dev/hd1

--IDE           #老式硬盘(并口硬盘)
/dev/mapper/*   #虚拟设备

/dev/cdrom      #光驱(不一定存在)   
/dev/sr0        #光驱(一定存在)

注:cdrom为sro的快捷方式,cdrom可以不存在

(2).设备的挂载与卸载

mount  设备名   挂载点                    ##挂载
mount  -o  权限  设备名  挂载点
mount  -o  remount,权限  设备名/挂载点
umount 设备名/挂载点                      ##卸载
例如:
mount /dev/sdb1 /mnt             ##将/dev/sdb1设备挂载到/mnt
mount -o ro /dev/sdb1 /mnt       ##只读挂载
mount -o remount,rw /mnt        ##重新读写挂载
mount -o remount,rw /dev/sdb1

实验2:(在真机中)

先插入u盘设备
##查看挂载设备信息
[root@foundation34 ~]# df

在这里插入图片描述

##查看都u盘设备是读写挂载
[root@foundation34 ~]# mount

在这里插入图片描述

##将/dev/sdb设备(u盘)挂载到/mnt上
[root@foundation34 ~]# mount /dev/sdb1 /mnt
[root@foundation34 ~]# df

在这里插入图片描述

[root@foundation34 ~]# cd /mnt
##可以查看到u盘设备里的文件,因为u盘挂载在/mnt上的
[root@foundation34 mnt]# ls

在这里插入图片描述

##可以新建文件,因为默认挂载是读写挂载
[root@foundation34 mnt]# touch westos
[root@foundation34 mnt]# ls

在这里插入图片描述

@可将电脑上的文件拷贝到u盘中
[root@foundation34 mnt]# cp /home/kiosk/Desktop/westosfile .
[root@foundation34 mnt]# ls

在这里插入图片描述

##卸载;umount后边可以跟挂载点或者挂载设备
[root@foundation34 ~]# umount /mnt
[root@foundation34 ~]# df

在这里插入图片描述

[root@foundation34 ~]# umount /dev/sdb1
[root@foundation34 ~]# df

在这里插入图片描述
1. U盘只读,无法拷贝文件,该如何解决?

@1模拟实验环境:

[root@foundation34 ~]# mount -o ro /dev/sdb1 /mnt

在这里插入图片描述

[root@foundation34 ~]# mount

在这里插入图片描述

 [root@foundation34 ~]# cd /mnt/
 [root@foundation34 mnt]# ls

在这里插入图片描述

[root@foundation34 mnt]# touch hello

在这里插入图片描述

@2解决方案

方法1:

##1.卸载
[root@foundation34 ~]# umount /mnt
[root@foundation34 ~]# df

在这里插入图片描述

##2.读写挂载
[root@foundation34 ~]# mount -o rw /dev/sdb1 /mnt

方法2:

##直接重新读写挂载
[root@foundation34 ~]# mount -o remount,rw /dev/sdb1

测试:

[root@foundation34 ~]# mount 

在这里插入图片描述

[root@foundation34 ~]# cd /mnt
##虽然还是无法识别中文,但是可以新建文件,说明读写挂载成功
[root@foundation34 mnt]# ls

在这里插入图片描述

[root@foundation34 mnt]# touch hello
[root@foundation34 mnt]# ls

在这里插入图片描述

[root@foundation34 mnt]# cd /home/kiosk/Desktop
[root@foundation34 Desktop]# ls

在这里插入图片描述

##不能识别中文的文件和图片
[root@foundation34 Desktop]# cp 图片 /mnt
cp: cannot create regular file ‘/mnt/图片’: Invalid argument
##@2将名字中含有中文的文件直接打包拷贝到u设备中
[root@foundation34 Desktop]# tar cf /mnt/tupian.tar 图片
[root@foundation34 Desktop]# ls /mnt

在这里插入图片描述

[root@foundation34 Desktop]# cd /mnt
[root@foundation34 mnt]# rm -rf tupian.tar

2.设备正忙,无法卸载,该怎么解决?

方法1:

fuser -kvm /mnt  ##直接结束有关挂载在/mnt上的设备的所有进程;v表示详细信息,m表示扫描,k表示结束正在运行着的程序
umount  /mnt     ##卸载

方法2:

lsof  /mnt       ##查看挂载在/mnt上的设备的进程信息
kill -9  进程号   ##结束进程
umount  /mnt     ##卸载

@1.模拟环境

[root@foundation34 ~]# df

在这里插入图片描述

[root@foundation34 ~]# cd /mnt
##不要退出
[root@foundation34 mnt]# 
#再打开一个shell
[kiosk@foundation34 Desktop]$ su -
[root@foundation34 ~]# umount /dev/sdb1

在这里插入图片描述
@2.解决方案

方法1:

##lsof后边可以跟挂载点/挂载设备
[root@foundation34 ~]# lsof /mnt
##查看关于/dev/sdb1设备的所有进程信息
[root@foundation34 ~]# lsof /dev/sdb1

在这里插入图片描述

##结束进程
[root@foundation34 ~]# kill -9 18461
[root@foundation34 ~]# umount /mnt
[root@foundation34 ~]# df

在这里插入图片描述
方法2:

[root@foundation34 ~]# umount /dev/sdb1

在这里插入图片描述

##查看/dev/sdb1设备正在运行的程序
[root@foundation34 ~]# fuser -vm /dev/sdb1

在这里插入图片描述

##结束有关/dev/sdb1设备的所有程序
[root@foundation34 ~]# fuser -kvm /dev/sdb1

在这里插入图片描述

[root@foundation34 ~]# fuser -vm /dev/sdb1

在这里插入图片描述

[root@foundation34 ~]# umount /dev/sdb1
[root@foundation34 ~]# df

在这里插入图片描述
3.磁盘分区

主分区:   p  (1-3)

可扩展分区(4-容器): L 逻辑分区(容器不能直接使用!!!)

硬盘0磁道1扇区的512个字节中记录的信息如下:

512     =      446     +      64     +     2
                ^             ^            ^
           mbr(主引导记录)  mpt(主分区标)  55aa(硬盘的有效标识)
分区的两种方式:

mbr   #分为主分区p(primary第四个分区)和扩展分区e(expended容器;逻辑分区(容器中的内容),最多只能划分4个主分区。为了容纳更多的东西,所以将第4个分区化为扩展分区(容器),可将容纳不下的东西放到这个扩展分区中在linux中最多放16个,且每个不超过2t

gpt   #不分主分区和扩展分区,可划分128个分区

硬盘分区标 64
1个分区占用16个字节
1块硬盘最多可以划分4个主分区

实验:

@1.如何划分分区

##只能用/dev/vdb设备划分分区
[root@localhost ~]# fdisk -l

在这里插入图片描述

##进入分区界面,建立分区
[root@localhost ~]# fdisk /dev/vdb

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

[root@localhost ~]# fdisk -l

在这里插入图片描述

[root@localhost ~]# cat /proc/partitions 

在这里插入图片描述
@@如何挂载设备分区

挂载前需要先格式化!!!
##1.格式化
[root@localhost ~]# mkfs.xfs /dev/vdb1

在这里插入图片描述

[root@localhost ~]# blkid

在这里插入图片描述

[root@localhost ~]# df

在这里插入图片描述

##2.挂载
[root@localhost ~]# mount /dev/vdb1 /mnt
[root@localhost ~]# df

在这里插入图片描述

##最多新建3主分区,第四个为可扩展分区(不可用)
[root@localhost ~]# fdisk /dev/vdb

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

#查看系统中所有的设备
[root@localhost ~]# fdisk -l

在这里插入图片描述

#查看系统可识别到的设备
[root@localhost ~]# cat /proc/partitions 

在这里插入图片描述

##同步分区表
[root@localhost ~]# partprobe
[root@localhost ~]# cat /proc/partitions 

在这里插入图片描述

##格式化
[root@localhost ~]# mkfs.xfs /dev/vdb5

在这里插入图片描述

排错:
[root@localhost ~]# mkfs.xfs /dev/vdb5

在这里插入图片描述

解决方案:
先删除/dev/vdb5分区,然后重新建立一个稍大的/dev/vdb5分区

一般情况:一个目录上只能挂载一个设备

[root@localhost ~]# df
##错误操作:直接在挂载点上再挂载一个/dev/vdb5设备分区
##虽然可以挂载成功,但是卸载时会出现问题
[root@localhost ~]# mount /dev/vdb5 /mnt
[root@localhost ~]# df

在这里插入图片描述

[root@localhost ~]# umount /dev/vdb1

在这里插入图片描述

##解决方案:必须先卸载后挂载的才能卸载初始挂载的设备
[root@localhost ~]# umount /dev/vdb5
[root@localhost ~]# umount /dev/vdb1
[root@localhost ~]# df

在这里插入图片描述

 正确操作:先卸载/mnt,再将/dev/vdb5设备分区挂载到/mnt

4.挂载分区设备的两种方式

@1.临时性挂载

[root@localhost ~]# df
[root@localhost ~]# mount /dev/vdb5 /mnt
[root@localhost ~]# df

在这里插入图片描述

##卸载
[root@localhost ~]# umount /mnt

@2.永久性挂载

## /etc/fstab为开机自动挂载策略文件
[root@localhost ~]# vim /etc/fstab 
###############
/dev/vdb5    /mnt       xfs          defaults      0      0  
设备       挂载点    文件系统类型   挂载参数    不备份  不检测

在这里插入图片描述

[root@localhost ~]# df
##让系统重新读取挂载信息;(检测参数是否书写正确,不报错即为正确)
[root@localhost ~]# mount -a
[root@localhost ~]# df

在这里插入图片描述

5.Swap分区

@1.建立swap分区

##查看swap分区
[root@localhost ~]# swapon -s
##新建分区
[root@localhost ~]# fdisk /dev/vdb

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

##同步分区表
[root@localhost ~]# partprobe
[root@localhost ~]# cat /proc/partitions 

在这里插入图片描述
@2添加swap分区

(1).临时性添加swap分区

##格式化为swap
[root@localhost ~]# mkswap /dev/vdb6

在这里插入图片描述

[root@localhost ~]# swapon -s
##将/dev/vdb6分区添加到swap分区中
[root@localhost ~]# swapon -a /dev/vdb6
[root@localhost ~]# swapon -s

在这里插入图片描述

##关闭设备分区
[root@localhost ~]# swapoff /dev/vdb6
[root@localhost ~]# swapon -s
2. 永久性添加swap分区
[root@localhost ~]# vim /etc/fstab
###############
/dev/vdb6    swap     swap       defaults      0    0 

在这里插入图片描述

[root@localhost ~]# swapon -s
[root@localhost ~]# swapon -a
[root@localhost ~]# swapon -s

@3删除swap分区

##停止设备
[root@localhost ~]# swapoff /dev/vdb6
[root@localhost ~]# vim /etc/fstab
###############
删除:/dev/vdb6    swap     swap       defaults      0    0 

在这里插入图片描述

##删除/dev/vdb6分区
[root@localhost ~]# fdisk /dev/vdb

在这里插入图片描述

##同步分区表
[root@localhost ~]# partprobe     
[root@localhost ~]# cat /proc/partitions 

6.磁盘配额

磁盘配额:针对于设备
    
     dd if=/dev/zero of=/mnt/studentfile bs=1M count=21
     
具体参数的含义:
dd                #截取
if                #input file 输入文件
of                #out of file 输出文件
/dev/zero         #无限零字节(设备)
bs                #块的大小(block size)
count             #块的个数
##查看dd命令帮助
[root@localhost ~]# man dd

在这里插入图片描述
@未设定磁盘配额时,截取多大输出文件便有多大,直到将超出内存,才会无法截取;这样很不合理。

[root@localhost ~]# su - student
[student@localhost ~]$ dd if=/dev/zero of=/pub/file bs=1M count=50

在这里插入图片描述

[student@localhost ~]$ du -sh /pub/file

在这里插入图片描述

[student@localhost ~]$ dd if=/dev/zero of=/pub/file bs=1M count=51
[student@localhost ~]$ du -sh /pub/file

在这里插入图片描述

[student@localhost ~]$ dd if=/dev/zero of=/pub/file bs=1M count=70
[student@localhost ~]$ du -sh /pub/file

在这里插入图片描述

[student@localhost ~]$ dd if=/dev/zero of=/pub/file bs=1M count=100
[student@localhost ~]$ du -sh /pub/file

在这里插入图片描述

[student@localhost ~]$ rm -rf /pub/file
[student@localhost ~]$ exit
logout

@设定磁盘配额

[root@localhost ~]# cat /proc/partitions 

在这里插入图片描述

##1.格式化
[root@localhost ~]# mkfs.xfs /dev/vdb5

在这里插入图片描述

[root@localhost ~]# df

在这里插入图片描述

[root@localhost ~]# umount /mnt
[root@localhost ~]# mkfs.xfs /dev/vdb5

在这里插入图片描述

[root@localhost ~]# mkfs.xfs /dev/vdb5 -f

在这里插入图片描述

[root@localhost ~]# mkdir /pub
##2.挂载
[root@localhost ~]# mount /dev/vdb5 /pub
[root@localhost ~]# df -H

在这里插入图片描述

##3.更改权限;必须是先挂载再更改权限
[root@localhost ~]# chmod 777 /pub
[root@localhost ~]# ll -d /pub

在这里插入图片描述

[root@localhost ~]# mount

在这里插入图片描述

##4.以usrquota方式挂载
##必须先卸载,再挂载。不能直接remount
[root@localhost ~]# umount /pub
[root@localhost ~]# mount -o usrquota /dev/vdb5
##查看是否激活配额参数
[root@localhost ~]# mount

在这里插入图片描述

[root@localhost ~]# quotaon /dev/vdb5

在这里插入图片描述

##5.设定配额
[root@localhost ~]# cd /pub
[root@localhost pub]# edquota -u student
#################
Disk quotas for user student (uid 1000):
  Filesystem          blocks       soft       hard     inodes   soft     hard
  /dev/vdb5            0            0         20480      1        0        0

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

[root@localhost ~]# su - student
[student@localhost ~]$ dd if=/dev/zero of=/pub/file bs=1M count=10

在这里插入图片描述

[student@localhost ~]$ du -sh /pub/file

在这里插入图片描述

[student@localhost ~]$ dd if=/dev/zero of=/pub/file bs=1M count=20
[student@localhost ~]$ du -sh /pub/file

在这里插入图片描述

[student@localhost ~]$ dd if=/dev/zero of=/pub/file bs=1M count=21
[student@localhost ~]$ du -sh /pub/file

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/lilygg/article/details/83821018