文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
三大特征:
Linux系统交换空间(swap)就是磁盘上的一块区域,可以是一个分区,也可以是一个文件,简单的说就是当物理内存资源紧张时,将内存中不常访问的资源保存到预先设定的硬盘上的交换空间,来释放该资源占用的内存,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问swap上存储的内容时,再将swap上的数据加载到内存中。
物理内存和交换空间的和就是系统可提供的虚拟内存的总量。
为什么需要swap分区?
Linux有两种形式的交换空间:交换分区和交换文件。交换分区就是一个独立的硬盘,没有文件或内容,即swap分区;交换文件是文件系统中的一个特殊文件,独立于系统和数据文件之外。
创建swap分区:fdisk创建分区,mkswap创建swap分区,swapon启用swap分区;
创建swap文件:创建文件,mkswap格式化文件,swapon启用swap文件。
按硬盘材质分:HDD(机械硬盘)、SSD(固态硬盘)
按接口类型分:IDE、SCSI、SATA、SAS、FC
磁盘分区可以将硬盘驱动器划分为多个逻辑存储单元,这些单元称为分区。通过将磁盘划分为多个分区,系统管理员可以使用不同的分区执行不同功能。
磁盘分区的好处:
通常所说的“硬盘分区”就是指修改磁盘分区表,注意以下情况:
在Linux中,没有盘符这个概念,通过设备名来访问设备,设备名存放在 /dev 目录中。
命名规则如下:/dev/xxyN
注:Linux中,SSD、SAS、SATA类型的硬盘,都用sd来标识,IDE硬盘属于IDE接口类型的硬盘,用 hd 来标识。
主启动记录(Master Boot Record) 分区方案指定了在运行BIOS固件的系统上应如何对磁盘进行分区,它是存在于驱动器开始部分的一个特殊的启动扇区。
如果是SCSI接口硬盘则最多只能有15(其中扩展分区不能直接使用所以不计算)个分区,其中主分区最多4个,逻辑分区最多12个。IDE接口硬盘最多只能有63(其中扩展分区不能直接使用所以不计算)个分区,其中主分区最多4个,逻辑分区最多60个。
由于分区大小数据以32位值存储,使用MBR方案分区时, 最大磁盘和分区大小限制为2TB。
fdisk是传统的Linux硬盘分区工具,也是Linux系统中最常用的一种硬盘分区工具之一,但不支持大于 2TB 的分区。
命令格式如下:
语法:fdisk(选项)(参数)
常用选项释义如下:
-b <分区大小>:指定每个分区的大小;
-l:列出指定的外围设备的分区表状况;
-s <分区编号>:将指定的分区大小输出到标准输出上,单位为区块;
-u:搭配"-l"参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址;
-v:显示版本信息。
选择好具体某块硬盘后,进入交互模式进行分区操作。如:
fdisk /dev/sdb #交互式命令参数如表格所示
注:扩展分区创建完成后不能直接使用,必须要创建逻辑分区。
随着硬盘驱动器容量的不断增长,老旧的MBR分区方案的 2TB磁盘和分区大小限制已不再是理论上的限制,而是在生产环境中越来越经常遇到的实际问题,因此,GPT正在取代传统的MBR方案进行磁盘分区。
GPT意为GUID分区表,驱动器上的每个分区都有一个全局唯一的标识符(globally unique identifier,GUID),对于运行统一可扩展固件接口(UEFI) 固件的系统,GPT是在物理硬盘上布置分区表的标准。
没有主分区和逻辑分区之分,每个硬盘最多可以有128个分区,GPT 为逻辑块地址分配64位 ,因此最大支持18EB的分区大小。
parted是另一款在linux下常用的分区软件,可支持创建2T以上磁盘分区,相对于fdisk,它的使用更加方便,同时提供了动态调整分区大小的功能,命令格式如下:
语法:parted [options] [device [command [options...]...]]
其中的命令选项说明如下:
-h :显示帮助信息。
-i :交互模式。
-s :脚本模式。
-v :显示parted的版本信息。
device :磁盘设备名称,如/dev/sda。
command :parted指令,如果没有设置指令,则parted将会进入交互模式。
选择好具体某块硬盘后,进入交互模式进行分区操作。
如:parted /dev/sdb
#交互式命令参数如表格所示。
而后,
mklable gpt
创建gpt分区表,2T以上只能用gpt,其他还有些确认信息,确认后通过print查看分区表是否为gpt格式。mkpart
新建分区,如果输入mkpart指令不带任何参数,parted会一步步提示用户输入相关信息最终完成创建。q
保存退出选择某块硬盘,采用非交互式即命令行式配置,如
parted /dev/sdb
格式化是指对磁盘或磁盘中的分区进行初始化的一种操作,将分区格式化成不同的文件系统,这种操作通常会导致现有的磁盘或分区中所有的文件被清除。
mkfs命令是make filesystem的缩写,用来在特定的分区建立Linux文件系统,命令格式如下:
语法:mkfs [-V] [-t fstype] [fs-options] filesys [blocks]
其中的命令选项说明如下:
device : 预备检查的硬盘分区,例如:/dev/sda1
-V : 详细显示模式
-t : 给定档案系统的型式,Linux 的预设值为 ext2
-c : 在制做档案系统前,检查该partition 是否有坏轨
-l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
block : 给定 block 的大小
格式化完成以后,我们还不能使用磁盘,必须挂载以后才能用,原因如下:
Linux的宗旨是一切皆文件,要项使用磁盘,必须先建立一个联系,这个联系就是一个目录,建立联系的过程我们叫做挂载;当我们访问sdb2底下的这个目录的时候,实际上我们访问的才是sdb2这个设备文件。这个目录相当于一个访问sdb2的入口,可以理解为一个接口,有了这个接口才可以访问这个磁盘。
mount /dev/sda5 /test
,意思就是说将 /dev/sda5 挂载到test目录中,重启后失效。/etc/fstab文件的作用
用来存放文件系统的静态信息的文件,统启动的时候,会自动地从这个文件读取信息,并且会自动将此文件中指定的文件系统挂载到指定的目录,这样我们只需要将磁盘的挂载信息写入这个文件中就不需要每次开机启动之后手动进行挂载了。
fstab文件格式:
<file system> <dir> <type> <options> <dump> <pass>
tmpfs /tmp tmpfs nodev,nosuid 0 0
/dev/sda1 / ext4 defaults,noatime 0 1
/dev/sda2 none swap defaults 0 0
LVM-逻辑卷管理是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上、文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。
逻辑卷(lv)是将几个磁盘分区或者块设备(pv,pv可以位于不同的磁盘分区里,pv大小可以不一)组织起来形成一个大的扩展分区(vg卷组,一个vg至少要包含一个pv),该扩展分区不能直接用,需要将其划分成逻辑卷(lv)才能使用,lv可以格式化成不同的文件系统,挂载后直接使用。
pvcreate命令用于创建物理卷,可以使用物理磁盘或者磁盘分区创建。
语法:pvcreate [选项] 设备文件名
其中的命令选项说明如下:
-f :强制创建物理卷,不需要用户确认。
-u :指定设备的UUID。
-y :所有的问题都回答yes。
其中的参数说明如下:指定要创建的物理卷对应的设备文件名。
注:使用分区创建时,磁盘分区后的id为83,需要将id改为8e,才能创建物理卷,可用fdisk修改id
将磁盘hda的6-9分区创建成pv,注意大括号的使用。
在命令行中输入下面的命令:
pvcreate /dev/hda{6,7,8,9}
使用pvdisplay、pvscan、pvs查看物理卷信息。
pvs #查看物理卷概要信息
PV VG fmt Attr PSize PFree
/dev/sdb1 vg1000 lvm2 -- 100.00M 100.00M
/dev/sdb2 lvm2 -- 101.98M 101.98M
vgcreate命令用于创建LVM卷组。卷组将多个物理卷组织成一个整体,屏蔽了底层物理卷细节。在卷组上创建逻辑卷时不用考虑具体的物理卷信息。
语法:vgcreate [选项] 卷组名 物理卷列表
其中的命令选项说明如下:
-l :卷组上允许创建的最大逻辑卷数。
-p :卷组中允许添加的最大物理卷数。
-s :卷组上的物理卷的PE大小。
其中的参数说明如下:
卷组名:要创建的卷组名称。
物理卷列表:要加入到卷组中的物理卷列表。
使用vgcreate命令创建卷组 “vg1000”,并且将物理卷/dev/sdb1和/dev/sdb2添加到卷组中。
在命令行中输入下面的命令:
vgcreate vg1000 /dev/sdb1 /dev/sdb2
使用vgdisplay、vgscan查看卷组信息。
vgdisplay vg1000
注:不指定vg1000卷组则显示所有卷组信息
lvcreate命令用于创建LVM的逻辑卷,逻辑卷是创建在卷组之上的。
语法:lvcreate [选项] 逻辑卷名称
其中的命令选项说明如下:
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节。
-l :指定逻辑卷的大小(LE数)。
其中的参数说明如下:逻辑卷:指定要创建的逻辑卷名称。
注:逻辑卷创建完成后,同样需要格式化,挂载后才能使用,方式同2.4章节介绍的方法一致,即用mkfs格式化创建文件系统,mount挂载至目录
使用lvcreate命令在卷组“vg1000” 上创建一个200MB的逻辑卷。
在命令行中输入下面的命令:
lvcreate -L 200M vg1000
使用lvdisplay、lvscan查看卷组信息。
lvscan #扫描所有逻辑卷
无需卸载,在线就能扩容。
vgs
lvextend -L +SIZE lv_device
resize2fs device lv_device
缩容有风险,操作需谨慎!
umount
,并要执行强制检测:e2fsck -f
resize2fs DEVICE
lvreduce
lvresize指令用于调整逻辑卷空间大小,可以增大空间和缩小空间,实际上包含了lvextend和lvreduce的功能,因此扩容及缩容步骤相同。
语法:lvresize [选项] 逻辑卷名称
其中的命令选项说明如下:
-L:指定逻辑卷的大小,单位为“kKmMgGtT”字节。
-l :指定逻辑卷的大小(LE数)。
其中的参数说明如下:
如使用lvresize指令增加容量:
lvresize -L +200M /dev/vg1000/lvo10 #将逻辑卷空间增加200M
创作不易,如果这篇【文章】有帮助到你,希望可以给作者点个赞,你的鼓励是我最大的动力!