Linux系统中的磁盘管理与磁盘分区

1 磁盘管理

1.1 磁盘的物理组成:
 Linux系统是安装在计算机组件的哪个部分呢?就是磁盘。所以,我们先来认识一下整块磁盘的组成部分:
(1)圆形的盘片(主要记录数据的部分);
(2)机械手臂与机械手臂上的磁头(可读写盘片上的数据);
(3)主轴马达,可以转动盘片,让机械手臂的磁头在盘片上读写数据;
(4)扇区为最小的物理存储单位,每个扇区为512bytes;
(5)将扇区组成一个圆,那就是柱面,柱面是分区的最小单位;
(6)第一个扇区最重要,里面有硬盘主引导记录(MBR)及分区表(partition table),其中MBR占有446bytes,而分区表则占有64bytes。
1.2 各种磁盘接口在linux中的文件名:

设备设备在Linux内的文件名
IDE硬盘/dev/hd[a-d]
SCSI / SATA / USB硬盘/dev/sd[a-p]
虚拟硬盘,一般出现在虚拟机里/dev/vd[x]
虚拟设备,如LVM/dev/mapper/
光盘/dev/cdrom,/dev/sr0

1.3 本地存储设备的识别:

fdisk -l               查看真实存在的设备,但是存在不一定识别  识别不一样可用
cat  /proc/partitions  查看系统识别的设备 
blkid                  查看系统可使用的设备
df                     查看系统正在挂载的设备

以查看server虚拟机为例,查看真实存在的设备

在这里插入图片描述
查看系统识别的设备

在这里插入图片描述
查看系统可使用的设备

在这里插入图片描述
查看系统正在挂载的设备

在这里插入图片描述
1.4 设备的挂载:
 我们之前提到过挂载,但是没有具体解释什么是挂载?在这里,我们详细解释一下挂载。Linux系统使用的是目录树结构,就是以根目录为主,然后向下呈现分支状的目录结构的一种文件结构。但是,我们的文件数据其实是放置在磁盘盘片当中的,所以要将目录树的架构与磁盘内的数据结合起来,这个时候就是需要挂载的时候。
 所谓挂载,就是利用一个目录当成进入点,将磁盘内的数据放置在该目录下。也就是,进入该目录就可以读取磁盘内对应的数据的意思。具体如何进行挂载呢?

mount 设备 挂载点
mount /dev/sdc1  /mnt                 挂载sdc1到mnt
umount /mnt | /dev/sdc1               卸载
mount   -l                            查看挂载信息
mount -o ro /dev/sdc1                 只读挂载
mount -o remount,rw /dev/sdc1         重新读写挂载

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

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

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

在这里插入图片描述
1.5 解决设备正忙情况:

umount /dev/sdc1无法卸载

方法1:fuser -kvm /dev/sdc1 发现进程并终止
umount /dev/sdc1   卸载设备

方法2:lsof /dev/sdc1
kill -9 pid
umount /dev/sdc1

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

方法2:

在这里插入图片描述

2 磁盘分区

什么是磁盘分区?以旧有的windows观点来看,你可能会有一块磁盘并且将它分区成为C,D,E盘,那个C,D,E盘就是分区。在第一部分我们介绍了磁盘的组成部分,在磁盘的第一个扇区主要记录了两个重要的信息:主引导分区与分区表。简单来说,分区就是针对那个64bytes的分区表进行设置而已,告诉操作系统“我这块磁盘在此分区可以访问的区域就是由A柱面到B柱面之间的块”,如此以来操作系统就可以知道它可以在所指定的块内进行数据的读/写/查找等操作了。
 在分区表所在的64bytes容量中,每一个分区占16bytes,总共分为四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。这四组分区信息我么称为主(primary)分区或扩展(extended)分区,扩展分区最多只能有一个,不能格式化。扩展分区的目的是使用额外的扇区来记录分区信息,由扩展分区继续分出来的分区称为逻辑分区。
2.1 分区的划分及管理

实现一个分区设备的创建使用,一般经过如下动作:划分创建一个分区,格式化,挂载,激活生效
2.1.1 创建分区,以在虚拟机/dev/vdb设备上划分分区为例:

fdisk /dev/vdb 
m 获得帮助
d 删除分区
n 新建分区
p 显示分区标示信息
q 退出不保存
t 修改分区id
w 将当前操作写入硬盘分区表
然后选择新建主分区(p)还是扩展分区
然后选择分区开始的位置 ,一般默认
然后选择分区的大小 可以+size 设定分区大小
然后wq退出保存
可以通过cat /proc/partitions 查看分区情况

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

2.1.2 分区的格式化,安装文件系统
Linux中传统文件系统:ext2/minix/MS-DOS/FAT(用vfat模块)/iso9660(光盘)等;
日志文件系统:ext3/ReiserFS/Windows’NTFS/IBM’sJFS/SGI’sXFS;
网络文件系统:NFS/SMBFS
可以使用cat /proc/filesystems查看已加载到内存中支持的文件系统
如何格式化呢?

mkfs.xfs    /dev/vdb1
blkid 可以看到被格式化好的/dev/sdb1

在这里插入图片描述

2.1.3 分区挂载
在1.4已经详细介绍过挂载,格式化的设备必须和目录树结合才能被我们使用。

1.mount /dev/vdb1 /mnt  挂载之后即可使用,挂载的目录理论上来说应该是个空目录,若不是空目录,则会覆盖掉里面的内容
2.若想要永久挂载
打开挂载策略文件:vim /etc/fstab
设备         挂载点   文件系统     挂载参数     是否备份    是否检测
/dev/vdb1   /mnt      xfs        defaults      0           0
3.mount -a    激活设备

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.1.4 分区的删除

1.umount /dev/vdb1
2.删除永久挂载文件里的内容 
3. fdisk /dev/vdb   
   选择d  wq退出保存

在这里插入图片描述

2.2 swap(虚拟交换)分区的划分及管理
 swap功能就是应对物理内存不足的情况下所造成的内存扩展记录的功能。一般来说,如果硬件配备的足够的话,那么swap不会i被我们的系统所使用到,swap被利用的时候通常就是物理内存不足的情况了。cpu所读取的数据都来自于内存,当内存不足的时候,为了让后续的程序可以顺利进行,因此在内存中暂不使用的程序与数据就会被挪到swap中了。

2.2.1 swap分区的建立

1.fdisk /dev/vdb建立一个主分区:选择n,默认情况下,此分区是linux类
2.选择t 修改分区id;l,列出所有id类型代码;swap分区的代码是82
3. 输入82 把/dev/vdb1的分区类型修改为swap
4.格式化swap分区,mkswap  设备
5. swapon -a 激活
   swapon -s 查看swap分区
6. swapon -a /dev/vdb1 -p 5  在激活的时候临时的指定分区的优先级

注意:当存在第一个分区,再建立第二个swap分区时,在/proc/partitions中不会被识别 需要 partprobe 才能被识别(或者重启)
在这里插入图片描述在这里插入图片描述

2.2.2 swap分区的开机自动激活

vim /etc/fstab
/dev/vdb1  swap  swap   defaults           0  0
开机自动指定优先级(永久)
/dev/vdb2  swap  swap     defaults,pri=5   0  0

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

2.2.3 swap分区的删除

1.在永久挂载文件中删除命令
2.swapoff   /dev/vdb1 ,关闭了vdb1的swap分区,如果想重新使用vdb1,需要先强制格式化
3.如果想删除该分区设备,fdisk  /dev/vdb  选择d

在这里插入图片描述

2.3 磁盘配额
如果你的Linux服务器有多个用户经常访问数据时,为了维护所有用户对硬盘空间的公平使用,磁盘配额(quota)就是一项非常有用的工具。简单来说,分配用户的磁盘使用大小,就是配额。

2.3.1 磁盘配额的实现

1.先新建一个目录 mkdir /redhat
2. mkfs.xfs  /dev/vdb1 -f                 强制格式化成xfs ,因为有可能已经被使用过。或者直接新建一个分区
3. mount -o usrquota /dev/vdb1  /redhat   加入参数-o usrquota表示配额
4. chmod 777 /redhat                      先挂载设备,再修改权限,否则挂载目录的权限会改变
5. quotaon -uv /dev/vdb1                  启动quota的服务
6. edquota -u student /dev/vdb1           编辑用户或用户组限额的命令

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

2.3.2 磁盘配额的开机自动实现

vim /etc/fstab
/dev/vdb1   /redhat(挂载点)    xfs(文件系统类型)    defaults,usrquota   0    0

在这里插入图片描述

2.3.3 磁盘配额的删除

umount /westos   
mount /dev/vdb1   /redhat  
先卸载然后重新挂载  在挂载的时候不加参数就可以了

在这里插入图片描述

3 基于文件系统底层的分区加密

文件系统底层的分区加密,为加密是在格式化建立文件系统之前。对分区加密之后,必须指明以谁的名义打开加密层,打开之后,进行格式化与挂载,进而可以使用该加密分区,当卸载并关闭加密层之后,是无法查看分区内的内容的。整个分区加密的过程如下:
3.1 分区加密的实现

cryptsetup  luksFormat /dev/vdb2         设置加密层
blkid                                    看到的是该分区已经加密
cryptsetup  open /dev/vdb2   westos      以westos名义打开分区
ll /dev/mapper/westos
mkfs.xfs /dev/mapper/westos               格式化该分区
mount /dev/mapper/westos   /redhat        挂载
touch /redhat/file{1..3}
ls /redhat
cd 
umount /redhat                            卸载
cryptsetup  close westos                  关闭加密层     
mount /dev/vdb2  /redhat                  加密分区在没有打开时不能挂载
cryptsetup  open /dev/vdb2   haha         以haha名义打开分区
mount /dev/mapper/haha  /redhat           挂载
ls /redhat                                可以看到加密分区上次建立的内容
umount /redhat                            卸载
cryptsetup  close haha                    关闭加密层

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

3.2 分区加密的开机自动挂载

加密磁盘自动挂载:
1.vim /etc/fstab
/dev/mapper/westos /mnt xfs defaults 0 0

2.vim /etc/crypttab
westos /dev/vdbx /root/westoskey   

3.vim /root/westoskey    密码文件
2018westos

4.cryptsetup luksAddkey /dev/vdb2 /root/westoskey

在这里插入图片描述在这里插入图片描述
3.3 取消分区加密的开机自动挂载

vim /etc/fstab     删掉加密分区的挂载信息
vim /etc/crypttab  删掉打开加密分区的信息
cryptsetup luksRemoveKey /dev/vdb2 /root/westoskey

在这里插入图片描述

3.4 破坏分区加密

破坏掉加密层:
在打开的情况下,先卸载
umount /westos
cryptsetup close westos
mkfs.xfs /dev/vdb2  -f  直接重新格式化

在这里插入图片描述

#########################The End##############################

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值