所谓文件系统是一个组织文件的‘系统’ file system;文件系统是用来存储文件的
硬盘不能直接存放文件或数据
我们通过格式化之后,指定格式化后的文件系统,才可以存放数据。
不同文件系统存放方式、算法、优化方式也不相同
[root@ggbond ~]# ls /dev/sd* # 查看磁盘
在Linux系统中,SATA硬盘和SCSI硬盘会被设置成/dev/sd* 样式
IDE硬盘在早期的Linux版本会被识别成/dev/hd*(此磁盘现在没有了,空间特别小)
SATA硬盘也叫串行的IDE硬盘
识别硬盘
第一块SATA或SCSI硬盘是/dev/sda
第二块SATA或SCSI硬盘是/dev/sdb
第三块SATA或SCSI硬盘是/dev/sdc
第一块磁盘的第一个分区就是/dev/sda1
第一块磁盘的第二个分区就是/dev/sda2
第一块磁盘的第三个分区就是/dev/sda3
第一块磁盘的第四个分区就是/dev/sda4
第二块磁盘的第一个分区就是/dev/sdb1
之后同理;
Linux使用使用磁盘步骤
加硬盘->分区->格式化->挂载
Linux删除分区步骤
删除添加在挂载配置文件的内容,取消挂载之后再删除分区(在主磁盘中)
通过命令行对磁盘进行分区,有两种方法
1、MBR(主引导记录)——使用fdisk命令:此方式磁盘的第一个扇区一定是512B
包含最多446字节的启动代码、4个硬盘分区表项(每个表项16字节,共64字节)、2个签名字节(0x55,0xAA)。
mbr的初始化当想建⽴第四个主分区的时候,会将剩下的所有空间划分成扩展分区,然后在扩展分区⾥⾯划出⼀部分作为逻辑分区。mbr主分区加扩展分区的数量最多等于4。mbr单分区⼤⼩不超过2T
2、GPT——使用gdisk命令
gpt的初始化最多可以达到1024个主分区+扩展分区。GPT单分区最⼤分18EB->18,874,368T
查看当前所有磁盘的分区情况
[root@ggbond ~]# fdisk -l
查看当前某块硬盘的分区情况
[root@ggbond ~]# fdisk -l /dev/sdb
[root@ggbond ~]# fdisk /dev/sdb #进入分区模式
d delete a partition # 删除一个分区
l list known partition types # 列出当前支持的分区种类
n add a new partition # 添加一个新的分区
p print the partition table # 列出当前状态的所有分区
t change a partition's system id # 修改分区系统ID,类型;无意义
命令(输入 m 获取帮助):n
由于主分区可以创建四个,之前我们已经创建过一个了 所以换可以创建三个主分区
因为第一个扇区标号为0,0-41943039为41943040个扇区;所以磁盘大小为41943040*512个字节/1024KB/1024MB/1024GB=20G;由于之前创建过一个分区,所以起始扇区不是从2048开始而是从上一次分的扇区继续往下分的(0-2047是留给分区表的)
我们给他分了30000000-20973568+1个扇区也就是换算之后为4.3G空间 (原始化分区瑕疵就是我们还得算他的扇区数)
如果说想直接给他来5G,那么在last扇区后面直接写+5G 回车就可 (现代化,直接要多少加上单位给它多少)
注: 上面的叙述为了让大家更好的理解相关的参数意义来源,正常情况,改下我们都是用的后者方法加分区容量
命令(输入 m 获取帮助):p
我们来看一下刚才建的分区sdb2
start: sdb2的起始扇区
End: sdb2的结束扇区
Blocks: 扇区总数
命令(输入 m 获取帮助):d
如要删除某个扇区 我么通过d来删除,之后选择删除哪个扇区
命令(输入 m 获取帮助):w
之后按w保存;q退出; 这样前面分的扇区才能生效嘞
[root@ggbond ~]# ls /dev/sd*
最后出来我们look一下分区是否创建成功,可以看到下图第二块磁盘的第二个分区已经创建successful!!!(但只是分区创建成功了 ;我们现在换不能够使用该分区之后需要格式化文件系统,并且挂载完才可以使用)
因为fdisk默认用的是MBR方式进行的分区所以只能有四个主分区
我们先把四个主分区建满再来了解下拓展分区
我们可以看到前面我们建了三个分区,当想要创建第四个分区时系统默认推荐我们创建“e”扩展分区(因为如果我们把四个主分区primary 都创建满的话之后将无法创建拓展分区导致有一部分区域浪费掉了;这里我就不演示了亲们可以自己试试)
如下图我们将剩下的所有空间全部给扩展分区
之后查看一下b磁盘为三个主分区一个扩展分区
完了如果说是再想创建分区的话,之后则为逻辑分区
另外我们看到此时创建逻辑分区时候 他的起始扇区并非是承接上面的扩展分区;中间预留的32100352-32098304=2048个扇区是留给逻辑分区表用(记录后面创建的逻辑分区的)
这和主引导扇区(MBR)预留的521字节空间是一样的
因此,primary(主分区)和extend(扩展分区是平级的)
可以在扩展分区中创建逻辑分区,逻辑分区是扩展分区的子分区(此子分区的分区表由扩展分区维护逻辑分区表),逻辑分区用的是扩展分区的空间
我们发现仍然可以创建空间 (此时其实就是在扩展分区中创建的空间)
[root@ggbond ~]# vim Automatic partitioning
将其写入到文本中,保存退出(其实模拟的就是fdisk中创建分区的命令)
我们先看下 现在的b盘无分区
[root@ggbond ~]# fdisk /dev/sdb < Automatic
使用输入重定向进行自动化分区
再次查看发现已经有了一个sdb1的分区
要是还没玩够,xdm再继续搞一个扩展分区等等....
配置文件内容
n
e
n
l
+5G
n
l
+1G
w
[root@ggbond ~]# fdisk /dev/sdb < Automatic 继续重定向自动运行
查看 自动创建完成
[root@ggbond ~]# fdisk /dev/sda < Automatic &>> /dev/null
上面对于有强迫症的人来说不想界面显示出太多内容;我们可以将其输出的结果归到黑洞文件夹中
此时界面是不是清亮了许多呀亲们~~
LInux分区只有格式化之后才能使用磁盘,不格式化是无法使用的
Linux分区格式化之后才会变成文件系统,格式化就相当于给对应的分区做了一个文件系统
Linux常用的文件系统有ext系列的:如ext2、ext3、ext4;之后还有xfs格式;btrfs格式(性能可以的)
另外ext4的文件系统要求单个文件大小不能超过1T
xfs的文件系统单个文件支持16TB;每个文件系统量最大支持8EB
从centos7和红帽7开始,默认安装文件系统是xfs
分区的最小单位是sector(扇区),一个扇区是512B(字节)
当分区格式化之后,会将磁盘的读和写的粒度放大
格式化之后会立刻分配一部分空间作为inode节点空间
刨除inode节点占用的空间,剩下的空间用来划分block,block包含了多个扇区,1block=2*n个扇区;例如n=0,那么一个block等于1个扇区大小;单个block越大,意味着粒度就越大,划分block的目的是将文件以block的数量来存放
block越大对磁盘的读取效果就越好,block大了,一次性读取的空间变多了,之后哦读效率就会提升
但是:并非是越大越好,如果block太大,但呢存放的文件特征是小文件则会造成大量磁盘的浪费
inode节点
block是用来存放文件内容,inode是用来存放文件元数据(属性,描述部分)的
inode节点格式固定,因其存放信息固定
inode节点除了记录我们文件的元数据之外,还记录了文件block所在的位置(我们平时查找文件其实就是先到inode,之后从inode中找block位置)
如过文件的inode节点数量用完了 ,则不能在里面写入程序了
瞧瞧用mkfs格式化文件系统的类型都有哪些
[root@ggbond ~]# mkfs #之后点击tab让其列出底下命令
[root@ggbond ~]# mkfs.ext2 /dev/sdb1 # 将/dev/sdb1分区格式化成ext2文件系统
同理;
mkfs.xfs # 格式化成xfs文件系统
mkfs.fat # 格式化成fat文件系统
分区是不能挂载的;挂载的是它的文件系统
mount -t 文件系统类型 文件系统所在的分区路径 文件系统的挂载点路径
如果是原生的Linux文件系统,那么Linux可以识别这个文件系统,因此原生Linux文件系统的话,不必加-t参数来指定文件系统类型;比如ext系列,xfs就属于Linux原生文件系统
首先创建一个ggbond的挂载文件目录(路径自定义)
[root@ggbond ~]# mkdir ggbond
[root@ggbond ~]# mount /dev/sdb1 /root/ggbond/ # 将sdb1挂载到/root/ggbond下
[root@ggbond ~]# df -Th # -T:表示显示文件系统类型; -h:将文件系统的大小带单位显示出来单位转换是按1:1024算的 -H: 单位转换是按1:1000来算的
[root@ggbond ~]# df -i #查看inode节点使用情况 当inode节点满了之后,即使我们磁盘中仍然有block但也创建不了任何文件了
mount命令挂载只是临时的,重启之后就没了
要想永久挂载,则需要将挂载信息写入/etc/fstab配置文件中
另外/etc/fstab配置文件一旦被删除或者里面参数错误,会导致系统无法启动,因此亲们写入信息时候切记好好看
注意: 在编辑一些系统重要文件时最好备份一份原件,以防遭遇不测
[root@ggbond ~]# cp /etc/fstab /etc/fstab.bak
[root@ggbond ~]# vim /etc/fstab
第一列: 文件系统所在分区路径
第二列: 文件系统的挂载点
第三列: 文件系统的类型
第四列: 挂载参数
第五列和第六列写0
一些特殊文件系统,才需要将后两列改为非0
[root@ggbond ~]# mount -a
当fstab编辑完成之后,此命令会按文件系统中的挂载方式进行自动挂载如果某个文件系统已经挂载了且还在fstab中记录了;那么mount -a会自动忽略该文件系统
[root@ggbond ~]# ls /dev/sr0 -l
#光盘文件是在dev下的sr0中
[root@ggbond ~]# ls /dev/cdrom -l
cdrom就是一个软链接,他将指向光盘文件
配置文件中进行永久性挂载
[root@ggbond ~]# mount -a # 自动识别配置文件挂载信息