10.RedHat认证-Linux文件系统(上)
⽂件系统,顾名思义,是⼀个组织⽂件的“系统(system)”。file system
⽂件系统是⽤来组织⽂件的,通俗⼀点理解的话,⽂件系统是⽤来存储⽂件的。
硬盘是不能直接存放⽂件或数据。
我们通过将硬盘格式化之后,指定格式化后的⽂件系统,才可以存放数据。
不同的⽂件系统存放⽂件的⽅式也不相同。算法以及优化⽅式也可能不同,
所以如果⼀个操作系统不⽀持某个⽂件系统,那么这个⽂件系统上的数据,也就⽆法被这个操作系统识别
windows的⽂件系统
很多人对于windows的理解就是C盘,D盘,E盘。
其实咱们应该都知道C盘,D盘,E盘这些盘的空间是来⾃于硬盘。
你插⼊⼀个新的移动硬盘或者U盘,也会被windows识别出来。
windows的安装过程中,windows的安装程序所带的驱动会识别出你计算机的硬盘,
然后你对硬盘进⾏分区(partition),“然后格式化”然后安装操作系统。
part的意思是“部分”,partition就是分区的意思。
想使⽤已经有⽂件系统的分区,必须要进⾏挂载(mount),在windows当中有两种挂载⽅式,第⼀种是我们最常⽤的⼀种⽅式,是给⽂件系统分配⼀个盘符(C,D,E,F)。
第⼆种⽅法和Linux⼀样,将⽂件系统挂载到⼀个⽬录(可以⾮空,但是强烈建议是空⽬录)
mbr的初始化当想建⽴第四个主分区的时候,会将剩下的所有空间划分成扩展分区,然后在扩展分区⾥⾯划出⼀部分作为逻辑分区。
mbr主分区加扩展分区的数量最多等于4。
mbr单分区⼤⼩不超过2T
gpt的初始化最多可以达到1024个主分区+扩展分区。
GPT单分区最⼤分区18EB->18,874,368T
MBR(主引导记录): 如果磁盘选择了以MBR的⽅式进⾏初始化,那么磁盘的第⼀个扇区⼀定是512B.
主引导记录(master boot record,MBR)位于硬盘的第⼀物理扇区。由于历史原因,硬盘的⼀个扇区⼤⼩是512字节,包含最多446字节的启动代码、4个硬盘分区表项(每个表项16字节,共64字节)、2个签名字节 0x55,0xAA)。
扇区(sector),⼀个扇区是512B
Linux的⽂件系统
通过命令⾏查看当前系统的硬盘(没有⽹络存储的情况)
[root@server ~]# ls /dev/nvme0* -l
crw-------. 1 root root 243, 0 May 23 21:51 /dev/nvme0
brw-rw----. 1 root disk 259, 0 May 23 21:51 /dev/nvme0n1
brw-rw----. 1 root disk 259, 1 May 23 21:51
/dev/nvme0n1p1
brw-rw----. 1 root disk 259, 2 May 23 21:51
/dev/nvme0n1p2
[root@server ~]#
[root@server ~]# #b->block
[root@server ~]# #块设备
[root@server ~]# #nvme0n1表示第⼀块硬盘
[root@server ~]# #nvme0n1p1表示第⼀块硬盘的第⼀个分区
[root@server ~]# #nvme0n1p2表示第⼀块硬盘的第⼆个分区
[root@server ~]# ls /dev/sd* -l
brw-rw----. 1 root disk 8, 0 May 23 22:02 /dev/sda
brw-rw----. 1 root disk 8, 16 May 23 22:02 /dev/sdb
在Linux系统当中,SATA硬盘和SCSI硬盘都会被设备成/dev/sd*。
IDE硬盘在早期的Linux版本会被识别成/dev/hd*
第⼀块IDE(ATA)硬盘是/dev/hda
第⼆块IDE硬盘是/dev/hdb
第三块IDE硬盘是/dev/hdc
......
第⼆⼗六块IDE硬盘是/dev/hdz
第⼀块SATA或SCSI硬盘是/dev/sda
第⼆块SATA或SCSI硬盘是/dev/sdb
第三块SATA或SCSI硬盘是/dev/sdc
.......
第⼆⼗六块SATA或SCSI硬盘是/dev/sdz
⾮常重要
磁盘是有分区的
第⼀块磁盘的第⼀个分区就是/dev/sda1
第⼀块磁盘的第⼆个分区就是/dev/sda2
第⼀块磁盘的第三个分区就是/dev/sda3
第⼀块磁盘的第四个分区就是/dev/sda4
第⼀块磁盘的第五个分区就是/dev/sda5
第⼆块硬盘的第⼀个分区就是/dev/sdb1
公式就是第X块硬盘的第N个分区就是/dev/sdXn
X表示,a,b,c,d,e,f,g...z
N表示1,2,3,4,5,6....
Linux想使⽤磁盘的步骤和我们的windows⼀样。
加硬盘->分区->格式化->挂载
#通过命令⾏⽅式对磁盘进⾏分区(两种⽅式,第⼀种就是MBR,第⼆种就是GPT)
如果你采⽤MBR的⽅式进⾏分区就使⽤fdisk命令
如果你采⽤GPT的⽅式进⾏分区就使⽤gdisk命令(超过2T用这个分区)
还有其他分区的命令parted
1.⼿动创建分区(效率太低)
2.⾃动创建分区(有⼀定的操作性)
[root@server ~]# fdisk -l
查看当前所有磁盘的分区情况
[root@server ~]# fdisk -l /dev/nvme0n1
Disk /dev/nvme0n1: 100 GiB, 107374182400 bytes,
209715200 sectors
查看当前某块硬盘的分区情况
⼀个sectors等于512B
对于服务器来说,磁盘从使⽤⽬的来说分为3种,第⼀种是⽤来存放操作系统的,
此类硬盘应该只存放操作系统以及系统配置⽂件,剩下任何数据都不应该主动存放在此硬盘中。
第⼆种磁盘是⽤来存放本地⼤⽂件,⼀般这种磁盘我们叫做本地存储盘。
第三种磁盘是⽤来存放本地⼤⽂件,但是该磁盘并没有在本地,
⽽是使⽤了⽹络存储(SAN->storage area network),⼀般这种磁盘我们叫做⽹络存储。
首先,我新加了一块20GB的硬盘作为练习使用,
然后重启服务器,使用lsblk查看新添加的硬盘
使用fdisk来格式化磁盘创建分区,fidisk /dev/sdb
请注意上述的 这句话
设备不包含可识别的分区表。 创建了一个磁盘标识符为 0xaedc8553 的新 DOS 磁盘标签。 我们知道,使用fdisk命令创建的分区格式是MBR
这意味着这一句话就已经将引导分区(MBR)写入到了你的磁盘中,现在还未真正写入,只是在内存中,只有当你输入w(Wirte)写入命令的时候,才会真正的将引导分区写入你的磁盘。
以这句话,就可以判断出这块硬盘是不是你新添加的硬盘。(就是有没有被初始化过)
输入 q可以退出,退出后,再进来,还是这个页面,因为引导分区未真正写入。
输入m,查看帮助
创建分区
你看这里的分区是从2048开始的,最开始的0-2047分区是保留的
是因为系统保留下来为你以后格式化GPT分区做的准备。
在这里分区的指定空间,可以使用+1G +100M 等等,这样更加方便快捷。
按w 写入内存(保存退出)
主分区只能创建四个,第四个创建的分区叫做扩展分区,也就是说,主分区的创建是有限制的。
那么扩展分区就是为了解决这个限制,创建了扩展分区之后,在扩展分区里创建的分区叫做逻辑分区。
创建扩展分区输入e,
创建逻辑分区输入l,(逻辑分区的分区号至少是从5开始的)
实际情况是:我们单独创建一个主分区,然后剩下的空间全部给扩展分区,然后在扩展分区里创建逻辑分区,
实际上,当我们创建主分区的时候是有数量限制的,但是创建逻辑分区的时候是没有数量限制的。
上面的sd5 就是逻辑分区, sdb2是扩展分区
这里的sdb5的大小其实是分的是sdb2(扩展分区)的容量大小,实际上的容量还是,sdb1+sdb2的总容量。
以上是手动创建分区的方式
自动分区
自动分区采用输入重定向的方式。
就是创建一个文本,将分区的命令写入到文件里,然后重定向即可。
vim test
[root@centos8 ~]# fdisk /dev/sdb < test &> /dev/null #扔到黑洞文件
[root@centos8 ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x8d773471
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 10487807 10485760 5G 83 Linux
这样就结束了