1.本地存储设备的识别
1.设备查看
1.df ##系统正在挂载的设备有哪些
2.fdisk -l ##显示真实存在的设备
3.cat /proc/partitions ##系统识别的设备
4.blkid ##系统可使用的设备
使用fdisk -l,我们可以查看本机的真实存在的设备有哪些:
我们可以看到,本机上有一块500G的硬盘,还有两块虚拟设备
2.对于设备名称,遵循以下规则:
/dev/xdx:/dev/sda /dev/sdb... ##(d->disk)硬盘存储设备
##注意:sda--> s:sata(串口) d:disk(硬盘) a:代表第一块硬盘
##同理:sda1-->第一块串口硬盘的第一个扇区
/dev/sr0: ##光驱设备
/dev/mapper/* ##虚拟设备
注意:在liunx中挂载是一个很重要的功能,它将一个设备挂接到一个已经存在的目录上,挂载完成后此目录下以前的文件将不可用,linux将所有的设备都映射为文件,它将整个计算机的资源都整合成一个大的文件目录,我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已经存在的目录上,然后通过访问此目录来访问存储设备
使用df,我们可以查看当前挂载的设备有哪些:
在系统中可能存在很多设备,有些设备系统可以识别,有些则不能, /proc/partitions查看此文件,我们可以查看到系统此时已经识别的设备:
blkid ##此命令用来显示系统当前可以使用的设备
2.设备的挂载和卸载
mount 设备 挂载点 ##将此设备挂载到指定目录
##挂载点必须是一个目录,挂载后此目录之前存在的文件不能使用
mount /dev/sdb1 /mnt ##挂载设备sdb1到/mnt
我们可以看到,插入u盘,此u盘有默认的挂载目录:
此时,我们将u盘挂载到/mnt/目录下:
我们进入/mnt目录,边可以查看u盘中的内容,下图中,文件中,显示的文件全是问号的原因是因为文件名中包含有中文字符,编码错误所以显示为问号:
使用mount,可以查看当前设备的挂载信息:
“注意”:上图中,u盘设备sdb1是读写挂载,所以我们可以在对u盘进行读写,若此时是只读挂载,我们是不能在u盘中写入文件的
例如:在读写挂载的情况下,我们可以删除u盘中的文件/目录:
也可以新建文件/目录:
当我卸载设备的时候,可能会出现以下“设备正忙”的情况:
我们能可以使用以下两种方法:
1).lsof /mnt/ ##查看占用/mnt的进程
再结束此进程之后就可以正常卸载了:
此时可以正常卸载,df也看不到挂载:
若我们再次挂载时选择只读挂载:
查看挂载状态为只读(ro):
此时我们不能增删u盘中的文件,并且卸载时显示正忙,我们可以使用第二种方法卸载:
2).
fuser -kvm /mnt/
umount /mnt
此时可以正常卸载:
3.系统分区
1.一些关于硬盘存储原理的知识请参考此博文:https://blog.csdn.net/yehenhei/article/details/53033995
2.在我们以下实验中,我们需要了解一些基础知识:
硬盘的0磁道1扇区,是系统刚开启时磁头停留的位置,磁头再次读取信息一边决定接下来要做的事情,我们已经知道,1个扇区包含512个字节,其中包含:
446字节的信息:MBR(master boot record)称为主引导分区,,它用于硬盘启动时将系统控制转给用户指定的并在分区表中登记了的某个操作系统;
2字节的硬盘有效性标识:55AA,这部分内容是固定的无法更改;
64字节的分区表:分区表用来记录系统的分区设置,例如我们在windows常设置c盘,d盘等,就是对系统进行分区。
在分区表中,由于每个分区记录16字节,因此最多可以划分4个分区,这4个分区称为主分区(P),显然,只能划分4个分区对我们来说在某些应用场景下是远远不够的,但是,我们的分区表容量有限,那么此时我们怎么办?
我们可以在其中一个主分区中在进行分区的划分,这个主分区称为扩展分区(E),其内的子分区称为逻辑分区(L),逻辑分区的分区表就存储在扩展分区内,而主分区的分区表则存在于0磁道1扇区中的分区表内。
3.系统分区划分:
1).查看系统当前可识别的硬件,我们可以看到,/dev/vda中已有分区划分,而/dev/vdb是一块10G空硬盘空间:
2).fdisk /dev/vdb ##对/dev/vdb进行分区
划分完成后,我们查看当前系统可以识别的分区:
我们再查看此时可用的分区:
2.对新分区添加文件系统
我们发现此时/dev/sdb1并不可用,这是因为我们没有给新划分的分区添加文件系统,当前我们可以使用的文件系统有:ext4、ext2、vfat、xfs,相比较二言,xfs的性能稳定,扩展性强,并且文件传输速率高,是目前的主流文件系统,因此,我们选择给新分区添加文件系统类型为xfs:
mkfs.xfs /dev/vdb1 ##为新分区添加xfs文件系统
添加完成后,我们可以看到此时vdb1可用:
此时我们可以将vdb1挂载到/mnt目录下:
3.再新建分区2,3,4;对分区4选择扩展分区
由于2,3分区为主分区,添加步骤与上诉方法相同,因此以下展示分区4(扩展分区)的添加:
注意,在添加完成后,会出现如下警告:
意思是,我们需要重启或者同步分区表才可以使配置生效
3.同步分区表
我们可以看到,虽然我们进行了分区划分,但在系统可识别设备的文件中,我们找不到新划分的分区:
因此我们需要同步分区表:
partprobe ##将分区表同步
同步完成后,我们会看到,刚刚划分的分区此时可以被设备识别:
4.添加逻辑分区:
同步分区表:
我们可以看到,在未添加文件系统时,是不能挂载的,会出现报错:空的文件系统类型:
添加文件系统后,就可以正常挂载:
“注意”:设备在进行挂载时可以让一个设备挂载到一个目录下,也可以使一个设备挂载到多个目录,但是不能使多个设备挂载到一个目录
如下,我们在根下新建目录:test
将设备同时挂载到两个目录下:
我们在/mnt下新建文件,可以看到,此时此文件我们也可以在/test文件中看到:
5.开机自动挂载策略文件
对于我们新划分的分区,使用mount进行挂载后,这种挂载是临时的,在我们进行重启后,挂载的信息会消失,那么,我们如何设置永久挂载?
vim /etc/fstab ##fstab:开机自动挂载策略文件
设备 挂载点 文件系统类型 挂载参数 是否备份 是否检测
/dev/vdb1 /mnt xfs defaults 0 0
再重启,就可以看到此时vdb1自动挂载到/mnt目录下:
4.swap分区管理
1.swap分区建立
swapon -s ##列出swap分区
在未进行设置的情况下,我们可以看到当前不存在 swap分区
2).新建swap分区:
同步分区表,我们可以看到vdb6为swap分区:
3).添加swap分区设置:
swapon -a /dev/vdb6 ##临时添加,可以被系统识别
4).永久添加wsap分区
vim /etc/fstab ##永久添加swap分区
/dev/vdb6 swap swap defaults 0 0
未添加前,-s不能列出swap分区的设置:
永久添加swap分区的信息:
完成后,可以看到
4).swap分区删除
1.删除fstab中的信息
2.swapoff /dev/vdb6 ##关闭设备
3.fdisk /dev/vdb ##删除分区(必须先关闭设备,再删除分区)
同步分区表,查看分区信息,vdb6的分区信息被删除:
5.配额
配额是针对设备的容量限制,用户只有在指定设备上被限制使用存储空间的容量
1.新建目录
2.挂载设备,将目录设置为满权限再卸载:
“注意”:一定要先挂载再修改权限
3.对设备开启限额
mount -o usrquota /dev/vdb5 /pub/
我们可以看到,开启限额后,mount查看挂载状态发生改变:
4.查看限额是否开启
5.对用户配额:
edquota -u student ##对student用户配额
6.测试:
切换到用户student:
我们发现,截取10M数据,对于用户student来说可以存储:
但是student想储存21M的数据,就会提示超出配额,实际储存为20M: