概述
Linux存储的基本管理
- 1 设定实验环境
- 2设备识别与查看
- 2.1 设备识别
- 2.2 设备查看
- 3 设备挂载
- 4 磁盘分区
- 4.1 MBR分区方式
- 4.2 GPT分区方式
- 4.3 非交互式分区
- 5 格式化设备自动挂载及fstab文件问题处理
- 6 设备的配额设定
- 7 系统中文件的查找
1 设定实验环境
在虚拟机中添加硬盘:
1)在真机中使用超级用户的身份,输入virt-manager命令调出虚拟机:
2)在虚拟机中点击左上角的灯泡,进入后,选择左下角的Add Hardware, 在弹出的窗口将原来默认是20G的硬盘大小调整为5G,设备类型默认就是disk device、总线类型是virtio:
3)此时可以看到硬件信息里面,有两块虚拟硬盘:
2设备识别与查看
设备接入系统后,都是以文件的形式存在
2.1 设备识别
设备类型 | 各类设备的名称 |
---|---|
SATA/SAS/USB (硬盘类型的设备) | /dev/sda,/dev/sdb s=SATA,d=DISK,a、b=第几块 |
IDE (针口类型的设备) | /dev/hd0,/dev/hd1 h=hard,0、1表示第几块 |
VIRTIO-BLOCK (虚拟硬盘) | /dev/vda,/dev/vdb ,v=virtio |
M2(SSD)(固态硬盘) | /dev/nvme0,/dev/nvme1 nvme=m2 |
SD/MMC/EMMC (存储卡) | /dev/mmcblk0,/dev/mmcblk1 mmcblk=mmn卡 |
光驱 | /dev/cdrom,/dev/sr0,/dev/sr1 |
2.2 设备查看
设备包括:在使用、没在使用、和未被识别的设备
命令 | 含义 |
---|---|
fdisk -l | 查看磁盘分区情况(查看真实设备情况,可以对硬盘设备信息进行扫描) |
lsblk | 查看设备使用情况 |
blkid | 设备管理方式及设备id(一般来说,有id的设备是被系统处理过的设备,可以直接被系统所使用;若使用该命令看不到设备,代表该设备没有被处理过) |
df | 查看正在被系统挂载的设备(默认会显示设备的名称、大小、被使用的多少、可用多少、使用百分比、挂载在哪里,默认显示时,单位是k;可以用 df -h命令显示单位,h表示2的n次方;-H表示的是10的n次方) |
cat /proc/partitions | 查看系统识别设备 |
1)查看磁盘分区:
2)查看设备使用情况:
3)设备管理方式及设备id:
4)查看正在被系统挂载的设备:
改变显示单位:
5)查看系统识别设备:
3 设备挂载
- 挂载:让设备被目录所读取;卸载:把设备从目录上拔出
1)df可以看到/dev/vda1设备,挂载在/boot下;卸载该设备,当设备卸载后/boot中将无法读取/dev/vda1中的数据,因为设备下的数据是用目录来读取的,目录读取的不是自己的内容,而是设备上的内容 ;此时再去ls /boot查看内容 ,是无法读取的;将该设备挂载在/mnt下,mount /dev/vda1 /mnt/,df查看:
cd /mnt,此时就可以看到原来在/boot里面的内容:
注意:
- 当卸载某个设备时,如果该设备正在被系统使用卸载时,就会提示设备正在被系统使用,无法卸载,此时需要将设备上的程序都结束掉,才能卸载掉。
- 卸载时可以在umount后面接设备名称,也可以接设备挂载点
2)使用 fuser -vm /mnt/,查看设备上运行的程序有那些:
想结束设备上的程序,可以使用kill -9或者fuser -kvm /mnt/结束设备上运行的大多数进程,-k表示结束进程、-v表示显示详细信息、-m表示显示进程。之后再卸载就可以成功:
3)挂载命令
命令 | 含义 |
---|---|
mount | 直接回车,就可以查看系统中所有设备的挂载信息 |
mount /dev/vda1 /mnt/ | 此时进入/mnt去写或者删除文件都是可以的 |
mount -o ro /dev/vda1 /mnt/ | 只读挂载,无法写入 |
mount -o remount,rw /mnt/ | 重新挂载/mnt目录上的设备,并激活读写参数,u盘也可以这么控制(这里后面加挂载点,不要加设备名称,更加准确) |
挂载设备到/mnt中并尝试写或者删除文件:
查看系统中所有设备的挂载信息:
重新挂载/mnt目录上的设备激活读写参数,查看读写参数被激活:
注意:以上设备挂载处理都是临时挂载,想要永久挂载,需要修改挂载策略文件
4 磁盘分区
两种分区方式:
MBR方式 | GPT方式(唯一全局分区标识) | |
---|---|---|
位数 | 32位 | 64位 |
分区表大小 | 64byte | 128byte |
支持分区个数 | 主分区4个,所有分区16个 | 理论上无限制,windows 硬性限制是128个 |
支持单个分区大小 | 2.2TB | 8ZiB |
4.1 MBR分区方式
有四个分区表,前面三个设备分好大小后分别由前三个分区表来管理,最后还有一些空间,想要多次划分,就可以把最后的空间设置成一个容器,该容器里可以进行空间再划分,把该容器分给第四个分区表,容器里面的设备信息由容器本身来写;注意由主分区表来记录分区信息的,前三个直接分配好的叫做主分区。容器叫做扩展分区,扩展分区里面再分配的空间叫做逻辑分区
- 主分区–>主分区表记录分区的信息并可以直接使用的分区
- 扩展分区–>主分区表记录的分区,不可以直接使用,只是逻辑分区容器
- 逻辑分区–>扩展分区之上划分的分区
1)使用超级用户,实验前在虚拟机中添加了一块新的硬盘,该硬盘下没有任何分区,是空的:
2)fdisk /dev/vdb 进入该设备,里面就是分区界面,可以输入m查看功能。Commabd (m for help):m ,获取帮助:
注意:帮助里面常用参数的含义
参数 | 含义 |
---|---|
d | 删除 |
l | 列出所有分区类型 |
n | 新建 |
p | 显示分区表 |
t | 更改分区类型 |
w | 保存更改 |
q | 退出 |
g | 设定分区方式位GPT |
o | 设定分区方式为MBR |
3)默认的分区方式是 o,也可以自己指定。指定完后,显示一下分区方式用p:
4)MBR方式,输入n,进行新建;系统会询问新建主分区还是扩展分区,按下p为主分区,接下来会显示使用哪一个分区id,直接回车表示默认,也可以自定义;再接下来会显示默认位置,直接回车;再下面会显示需要一个多大的设备,可以写 +100M ,这样该设备就划分成功;输入p可以查看到由一个设备:
5)再按照上一步的方法,共划分四个主分区:
6)此时硬盘还有容量,但是再去新建时,系统会显示必须把一个主分区替换为扩展分区。此时可以输入d删除一个朱分区,选择删除4,再p去查看,剩下三个主分区:
7)n新建,e扩展分区,后面两条信息是起始的块和结束的块,都是用默认。注意一定要将所有剩余容量都给扩展分区,这是因为当扩展分区足够大时,才能划分出更多的逻辑分区;此时p查看,再n去新建,就可以划分逻辑分区了:
8)再按之前的方法分区 +100M,p去查看,就可以划分出总共五个分区。注意分区画完后是在内存中的,必须按wq才会保存,q表示不保存退出:
9)输入udevadm settle 命令,表示同步分区表到系统;再输入cat /proc/partitions命令,查看系统识别设备就可以查看到;若不想要该分区表了fdisk /dev/vdb 回车进入。 d ,根据系统提示输入要删除的分区id即可删除设备,注意删除设备时,要确保设备在系统中是没有被利用的,否则系统可能会崩溃。(实验效果见gpt分区方式实验截图)
10)删除后,fdisk -l可以看到分区标识还存在于系统中,也就是还有分区信息存在,删除它可以使用:dd if=/dev/zero of=/dev/vdb bs=1M count=1 ,此时再fdisk -l,看到分区信息已经被删除(实验效果见gpt分区方式实验截图)
4.2 GPT分区方式
同样也有四个分区表,但是它会在这四个分区表后面先建立一个分区,叫做EFI分区,第一个分区表里面记录的是EFI分区,后面的n多个分区,都是由EFI分区来记录的,也就是说只有EFI的分区是由分区表来记录的。EFI分区的大小可以自己设定,理论上是可以无限大的。所以该方式是没有主分区、扩展分区分区等之分。
1)指定分区方式为gpt:
2)n新建,后面id是1-128之间,默认直接回车。接下来的两条信息分别是起始和结束处,起始处默认,结束处输入+100M,不可以直接在起始处输入设备大小,完成后输入p查看设备分区。可以想分几个画分几个,一直往下分即可:
3)wq保存,输入udevadm settle 命令同步分区表到系统,输入cat /proc/partitions,查看系统识别设备:
4)若不想要该分区表了fdisk /dev/vdb 回车进入。 d ,根据系统提示输入要删除的分区id即可删除设备,注意删除设备时,要确保设备在系统中是没有被利用的,否则系统可能会崩溃:
5)删除后,fdisk -l可以看到分区标识还存在于系统中,也就是还有分区信息存在,删除它可以使用:dd if=/dev/zero of=/dev/vdb bs=1M count=1 ,此时再fdisk -l,看到分区信息已经被删除:
4.3 非交互式分区
命令 | 含义 |
---|---|
parted /dev/vdb mklabel msdos/gpt | 设定分区方式为mbr/gpt,设定后可以fdisk -l查看。想重新确定分区方式时直接重新输入该命令,然后根据系统提示输入y/n即可 |
parted /dev/vdb mkpart primary 1 100 | 主分区启示是1,结束是100 |
parted /dev/vdb mkpart primary 101 200 | 主分区启示是101,结束是200,第三个主分区一样的划分方法 |
parted /dev/vdb rm 2 | 删除第二个主分区 |
指定分区方式并进行分区:
查看设备分区:
删除第二个主分区:
5 格式化设备自动挂载及fstab文件问题处理
- 当硬盘分区分好之后,我们去挂载分好的其中的某个硬盘是不成功的,会提示没有文件系统,设备需要被安装文件系统之后,才能够直接被使用
- 常用文件系统对比:
文件系统 | FAT16 | FAT32 | NTFS | EXT3 | EXT4 | XFS |
---|---|---|---|---|---|---|
最大卷 | 2G | 4G | 256T | 32T | 1E | 16E |
最大单个文件 | 4G | 8T | 16T | 2T | 16T | 8E |
最大文件个数 | 65536 | 4177920 | 4294967295 | 32000个子目录 | 无限子目录 | |
代表系统 | Dos win95 | Win98 | win2000以后 | RHEL5 | RHEL6 | RHEL7~ |
- 对设备进行文件系统格式化:
1)mkfs.xfs /dev/vdb1 -f 在格式化一个设备时,若该设备上原来是有数据的,那么使用-f可以直接对其格式化,若没有数据,则不需要-f参数:
2)此时就可以直接挂载 mount /dev/vdb1 /mnt;输入blkid就可以看到该设备有了id、文件系统类型等。但是这种挂载方式是临时的,当重启系统后,设备将会消失:
- 永久挂载:
1)vim /etc/fstab ,编辑设备挂载策略文件:
2)写入设备名称 、挂载点、文件系统类型 、挂载参数 、不备份 、不检测 (该文内容不能写错,写错之后系统会启动失败;当记不住参数代表什么时,可以 man 5 fstab):
3)mount -a , 让设备没有生效的策略立即生效:
4)若文件内容写错之后,系统会启动失败,等待之后,系统会提示输入超级用户的密码,输入后,会进入一个shell,直接编辑该文件,将文件内容修改正确后退出保存并重启。
6 设备的配额设定
假如某个设备可以被两个用户同时使用,但是出现了其中一个用户将该设备的空间全部占用的情况,此时就需要设定设备的配额,比如设定为某个用户所用的设备空间大小为设备总大小的一半。
1)umount /mnt ,卸载该设备。
2)mount -o usrquota /dev/vdb1 /mnt,在挂载的时候激活磁盘配额。
3)mount | tail -n 1,查看磁盘配额是否被激活,默认情况下是没有被激活的:
4)edquota -u westos ,指定用户能在设备上写入数据的大小。文件里的内容分别代表,设备名、该用户在设备上已经共存放了多少数据、能够存放数据的软限、能够存放数据的硬限、用户已经创建文件的个数、能够建立文件个数的软限、能够建立文件个数的硬限,默认单位为k。
输入0、0、51200 、0、0、0,代表用户在该设备中写入数据大小不能超过50M,wq退出保存:
5)切换至该用户,使用dd if=/dev/zero of=/mnt/westosfile bs=1M count=40,表示从/dev/zero中截取数据到/mnt/westosfile中,截取40M数据;dd if=/dev/zero of=/mnt/westosfile bs=1M count=51,此时会报错,不能超过50M,超过的部分会被拒绝:
6)永久激活需要写入vim /etc/fstab文件中,在defaults后加上",usrquota",此参数添加配额后会在开机后自动激活,未编写过此文件时配额不会自动激活:
7)不想设置配额时,将该文件中的挂载和配额都删除,然后umount /mnt卸载,此时df查看就已经卸载并删除配额;若只是想删除配额,可以把设备卸掉后重新挂载,再去 mount | tail -n 1查看,显示noquota:
7 系统中文件的查找
1)实验准备,建立一些文件,并给文件设置权限:
建立监控,watch -n 1 ls -nl /mnt:
2)find命令参数的使用
find命令参数 | 含义 |
---|---|
- name | 按照文件名查找 |
-user | 按照文件拥有者查看 |
-group | 按照文件拥有组查看 |
-perm 222或/222或-222 | 按照文件权限进行查找,企业七之前的版本中/可以用+表示,但企业七之后使用/ |
-maxdepth | 可查找文件的最深层次为多少 |
-mindepth | 可查找文件的最浅层次为多少 |
-cmin 1/+1/-1 | 按照修改时间查找 |
-size | 按照文件大小查找 |
-o | 表示或者 |
-a | 表示并且 |
-not | 表示取非 |
-type f/d/s/b/l | 按照类型查找 |
-
-name参数,查找含有该名称的所有文件:
-
使用type参数,按照文件的类型查找,d表示目录:
-
-maxdepth ,可查找的最深层次为多少:
-
-mindepth,可查找的最浅层次为多少:
-
-user,查找拥有者是该用户的文件:
-
-group,查找拥有组是该用户的文件:
-
查找拥有者为westos(1000),拥有组为liu(1001)的文件:
-
查找拥有者为westos(1000)而且拥有组为liu(1001)的文件:
-
查找拥有者为root(0)或者拥有组为liu(1001)的文件:
-
查找拥有者不是root(0)或者拥有组为liu(1001)的文件:
-
修改文件时间戳,然后使用-cmin参数查看一分钟内做过修改的文件:
-
向文件中添加内容,改变文件大小,使用size参数查看文件大小:
-
使用perm参数查看文件权限,其中222表示权限只能是222、/222表示三个权限位只要有一位包含2这个权限即可、-222表示必须包含222,也可以有其他权限:
exec表示执行,该命令表示将包含002权限的文件执行删除命令,{ }表示find命令的查找结果,是为了转译“;”,表示分号是find命令的内容:
最后
以上就是安详蛋挞为你收集整理的Linux存储的基本管理1 设定实验环境2设备识别与查看3 设备挂载4 磁盘分区5 格式化设备自动挂载及fstab文件问题处理6 设备的配额设定7 系统中文件的查找的全部内容,希望文章能够帮你解决Linux存储的基本管理1 设定实验环境2设备识别与查看3 设备挂载4 磁盘分区5 格式化设备自动挂载及fstab文件问题处理6 设备的配额设定7 系统中文件的查找所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复