Bootstrap

Linux磁盘管理与文件系统

Linux磁盘管理与文件系统 太详细了

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。


推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

Linux:磁盘管理与文件系统

目录

一、磁盘结构

 盘片

磁道、扇区

柱面

二、Linux 中使用的文件系统类型

2.1、XFS 

2.2、swap

2.3、FAT16、FAT32

2.4、EXT4

2.5、JFS

三、MBR与磁盘分区

3.1、MBR(主引导记录)

3.2、硬盘分区

3.3、磁盘分区的表示

四、分区工具

4.1、fdisk

4.2、blkid和lsblk

4.3、mkfs(格式化)

4.4、mount(挂载)

五、实际的划分磁盘操作

5.1、添加磁盘

5.2、磁盘划分

5.3、mkfs:创建系统文件(格式化)

六、挂载和永久挂载

6.1、mount命令和unmont命令

6.2、临时挂载

6.3、永久挂载

一、磁盘结构


 磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失。早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘)。

 盘片
一个磁盘(如一个 1T 的机械硬盘)由多个盘片叠加而成。盘片的表面涂有磁性物质,这些磁性物质用来记录二进制数据。因为正反两面都可涂上磁性物质,故一个盘片可能会有两个盘面。

磁道、扇区
每个盘片被划分为一个个磁道,每个磁道又划分为一个个扇区。其中,最内侧磁道上的扇区面积最小,因此数据密度最大。

柱面
每个盘面对应一个磁头。所有的磁头都是连在同一个磁臂上的,因此所有磁头只能“共进退”。所有盘面中相对位置相同的磁道组成柱面。

二、Linux 中使用的文件系统类型
文件系统的组成

内核中的模块:ext4, xfs, vfat

Linux的虚拟文件系统:VFS

用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat

2.1、XFS 
CenOS 7系统中默认使用的文件系统,高性能的日志型文件系统
存放文件和目录数据的分区
数据完整性:根据所记录的日志在很短时间内迅速恢复磁盘文件内容
传输特性 :用优化算法,日志记录对整体文件操作影响非常小。查询与分配存储空间非常快。
可扩展性 :是一个全64-bit的文件系统,最大可以支持8EB的文件系统
传输带宽 :XFS 能以接近裸设备I/O的性能存储数据对单个文件的读写操作吞吐量可达4GB每秒。

2.2、swap
swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的 RAM 保存系统处理的数据 时会将数据写入 swap 分区,当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过 多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存不足。

2.3、FAT16、FAT32
且最大只能支持32GB分区,单个文件也只能支持最大4GB。

2.4、EXT4
Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分 区是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件 (16TB)、最大1EB的文件系统,以及速度的提升1EB=1024PB=1024*1024T2.5B。

2.5、JFS
主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。1PB=1024TB。

三、MBR与磁盘分区
3.1、MBR(主引导记录)
MBR是主引导记录,位于硬盘第一个物理扇区处,MBR中包含硬盘的主引导程序和硬盘分区表。MBR总共512字节, 前446字节是主引导记录,分区表保存在MBR扇区中的第447-510字节中。

分区表有4个分区记录区,每个分区记录区占16字节。
主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区,或3个主分区、1个扩展分区和在扩"展分区里面分多个逻辑分区)。

3.2、硬盘分区
常见的硬盘可以划分为主分区、扩展分区,通常情况下主分区只有4个,而扩展分区可以看成一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般用来安装操作系统,扩展分区则多用来存储文件数据。

3.3、磁盘分区的表示
Linux内核读取光驱、硬盘等资源时,都是通过“设备文件”的形式进行,因此,将硬盘和分区分别表示为不同的文件。

表示:/dev/hda5

/dev/:硬件设备文件所在的目录
hd:表示IDE设备(sd表示scsi设备)
a:硬盘的顺序号,表示的第几块硬盘,以a、b、c…表示
5:分区的顺序号,表示第一块硬盘接口的第五个分区

四、分区工具
4.1、fdisk
fdisk -l [磁盘设备]

fdisk [磁盘设备]

m 打印出菜单和帮助信息

p 打印出当前分区表

n 新建一个分区

d 删除一个分区

t 改变分区的属性,系统ID

w 保存

q 不保存退出

x 扩展应用

l 显示分区类型

4.2、blkid和lsblk
lsblk [参数]

-a        显示所有设备

-b        以bytes方式显示设备大小

-d        不显示 slaves 或 holders

-D        print discard capabilities

-e        排除设备

-f        显示文件系统信息

-h        显示帮助信息

-i        use ascii characters only

-m        显示权限信息

-l        使用列表格式显示

-n        不显示标题

-o        输出列

-p        使用key="value"格式显示

-r        使用原始格式显示

-t        显示拓扑结构信息 

4.3、mkfs(格式化)
mkfs [选项] [参数]

-t {ext2|ext3|ext4|xfs} 指定文件系统类型
-b {1024|2048|4096} 指定块 block 大小
-L ‘LABEL’ 设置卷标
-j 相当于 -t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3-i 
-i    # 为数据空间中每多少个字节创建一个inode;不应该小于block大小
-N  # 指定分区中创建多少个inode
-I 一个inode记录占用的磁盘空间大小,128---4096
-m  # 默认5%,为管理人员预留空间占总空间的百分比
-O FEATURE[,...] 启用指定特性-O ^FEATURE 关闭指定

4.4、mount(挂载)
mount [ -t 类型 ] 存储设备 挂载点目录

mount -o loop ISO镜像文件 挂载点目录

-t fstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs
-r readonly,只读挂载
-w read and write, 读写挂载,此为默认设置,可省略
-n 不更新/etc/mtab,mount不可见
-a 自动挂载所有支持自动挂载的设备(定义在了/etc/fstab文件中,且挂载选项中有
auto功能)
-L 'LABEL' 以卷标指定挂载设备
-U 'UUID' 以UUID指定要挂载的设备
-B, --bind 绑定目录到另一个目录上
-o options:(挂载文件系统的选项),多个选项使用逗号分隔

五、实际的划分磁盘操作
5.1、添加磁盘


5.2、磁盘划分
fdisk /dev/sdb     #  对sdb磁盘进行分区

n   ###创建一个新的分区

p   ####我们先添加一下主分区

+20G   ###这里我们给它20G的容量

w  ###保存

分区划分完毕,之后进行扩展分区、逻辑分区划分

n   ###创建一个新的分区

e   ####我们添加一下拓展分区

l   ####我们选择逻辑分区

 

 lsblk 查看分区情况

5.3、mkfs:创建系统文件(格式化)
mkfs 格式划分区

创建文件系统(格式化)常用选项

-t    指定文件系统类型
-b    指定块 block 大小
-L    设置卷标
-j    相当于 -t ext3, mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3-i 
-i    为数据空间中每多少个字节创建一个inode;不应该小于block大小
-N    指定分区中创建多少个inode
-l    一个inode记录占用的磁盘空间大小,128---4096
-m    为管理人员预留空间占总空间的百分比
-O    FEATURE[,...] 启用指定特性-O ^FEATURE 关闭指定


六、挂载和永久挂载
6.1、mount命令和unmont命令
mount命令
挂载文件系统、ISO镜像到指定文件夹
mount  [ -t 类型 ]  存储设备  挂载点目录      #用于指定文件系统类型,通常可以省略,由系统自动识别
mount  -o loop  ISO镜像文件  挂载点目录
-o options 主要用来描述设备或档案的挂接方式    #挂载参数列表,以英文逗号分隔:如用来描述特殊设备,用loop指定
loop:用来把一个文件当成硬盘分区挂接上系统

umount命令
卸载已挂载的文件系统
umount  存储设备位置
umount  挂载点目录

6.2、临时挂载
若重启服务器则挂载失效

blkid 查看磁盘的UUID   唯一 
blkid /dev/sdb1     //查看磁盘分区的UUID

6.3、永久挂载
vim /etc/fstab       #进入文件

/dev/sdb1 /                       xfs     defaults        0 0

;