Linux中磁盘与文件系统管理

简介: Linux中磁盘与文件系统管理

一、磁盘结构


1.1硬盘的物理结构


image.png


盘片: 硬盘有多个盘片,每盘片2面

磁头: 每面一个磁头

1.2磁盘的数据结构


扇区:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位

磁道:同一盘片不同半径的同心圆, 是由磁头在盘片表面划出的圆形轨迹,方便数据存储

柱面:不同盘片相同半径构成的圆柱面,由同一半径圆的多个磁道组成

1.3磁盘的存储容量


硬盘存储容量 = 磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 (512字节)

可以用柱面/磁头扇区来唯一定位磁盘上每一个区域

1.4磁盘接口类型


image.png

1.5查看分区信息


image.png

1.6磁盘分区表示


主引导记录MBR:Master Boot Record

MBR位于硬盘第一个物理扇区处 , MBR中包含硬盘的主引导程序和硬盘分区表

MBR总共512字节,前446字节是主引导记录,分区表保存在MBR扇区中的第447-512字节中。

分区表有4个分区记录区,每个分区记录区占16字节

Linux中将硬盘、分区等设备均表示为文件

image.png


表示:/dev/hda5


/dev/:硬件设备文件所在的目录

hd:表示IDE设备(sd表示scsi设备)

a:硬盘的顺序号,表示的第几块硬盘,以a、b、c…表示

5:分区的顺序号,表示第一块硬盘接口的第五个分区

主分区从1-4,第一个逻辑分区始终从5开始

image.png


硬盘中的主分区数目只有4个

主分区和扩展分区的序号限制在1 ~4

扩展分区再分为逻辑分区

逻辑分区的序号将始终从5开始

主分区也叫引导分区,一块硬盘,最多可以同时创建4个主分区,当创建完四个主分区后,就无法再创建扩展分区和逻辑分区了。

扩展分区是一个概念,除了主分区外,剩余的磁盘空间就是扩展分区。因此,如果当一块硬盘将所有容量都分给了主分区,那就没有扩展分区了。所以,仅当主分区容量小于硬盘容量时,剩下的空间就属于扩展分区,而扩展分区可以进行扩展切割分为多个逻辑分区。

以我们大多数人的电脑为例,都是分了一个C盘主分区,然后其他的D盘、E盘和F盘等都属于逻辑分区。D盘、E盘、F盘等除了主分区之外的磁盘组合,则就属于一个扩展分区。

image.png



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


文件系统类型决定了向分区中存放、读取数据的方式和效率。


2.1 XFS文件系统


存放文件和目录数据的分区

高性能的日志型文件系统,特别擅长处理大文件,可支持上百万TB的存储空间

CentOS系统中默认是用的文件系统

2.2 Swap交换文件系统


(相当于Windows系统下的虚拟内存)


为Linux系统建立交换分区

一般设置为物理内存的1.5~2倍

2.3 EXT4 (第四代扩展文件系统)


相当于存放目录和数据的分区

典型的日志型文件系统

2.4 Linux支持的其他文件系统类型


EXT4(centos6)

FAT32(windows)

NTFS(windows)

LVM

三、管理磁盘及分区


3.1 查看或管理磁盘分区——fdisk


基本格式:

查看磁盘分区: fdisk -l [磁盘设备]

[root@localhost ~]# fdisk -l /dev/sda

管理磁盘分区: fdisk [磁盘设备]

[root@localhost ~]# fdisk /dev/sda


3.2七个字段


image.png


Device: 分区的设备文件名称;

Boot: 是否是引导分区,是的话则有“ * ”的标志;

Start: 该分区在硬盘中的起始位置(柱面数);

End: 该分区在硬盘中的结束位置(柱面数);

Blocks: 分区的大小,以Block(块)为单位,默认的块大小为1024字节

ID: 分区对应的系统ID号

system: 分区类型


3.3管理磁盘分区——fdisk /dev/sdb


交互操作指令指令

m 获取帮助菜单

p 查看分区情况

n 新建分区

d 删除分区

t 变更分区的类型

w 保存分区操作并退出

q 不保存分区操作并退出

示例:

23.1.png

image.pngimage.png

image.png



image.png



创建完成后重启可以用shell命令init 6或者不重启不重启的情况下识别磁盘:

echo "- - - "> /sys/class/scsi_host/host0/scan

echo "- - - "> /sys/class/scsi_host/host1/scan

echo "- - - "> /sys/class/scsi_host/host2/scan

image.png

image.png

image.png

image.png

image.png

d #删除一个分区

l #显示己知的分区类型,其中82为Linux swap分区,83为Linux分区

m #最示帮助菜单I

n #增加一个新的分区

p #显示磁盘当前的分区表

q #退出fdisk程序,不保存任何修改

s #创建一个新的空白的sun磁盘标签

t #改变一个分区的系统号码

u #改变显示记录单位

v #对磁盘分区表进行验证

w #保存修改结果并退出fdisk程序复制

a #设置可引导标记

b #修改bsd的磁盘标签

c #设置DOS操作系统兼容标记

o #创建一个新的空白的Dos分区表

x #特殊功能,不建议初学者使用


3.4显示文件系统磁盘使用情况统计——df


格式:df [选项] [文件]

常用选项:


-T:显示文件系统类型。

-h:以容易理解的格式印出文件系统大小,例如136KB、24MB、21GB。

-l:计算所有的文件大小,对硬链接文件则计算多次。

-s:对每个Names参数只给出占用的数据块总数。

示例:

image.png


3.5树形查看磁盘分区——lsblk


示例:

image.png


3.5查看磁盘的UUID——blkid


示例:

image.png


四、创建文件系统


4.1Make Filesystem,创建文件系统(格式化)——mkfs命令


要用绝对路径


格式:

mkfs -t 文件系统类型 分区设备

mkfs.xfs 分区设备

image.png

4.2创建交换文件系统——mkswap


创建交换分区之前,目标分区应先通过 fdisk 工具将分区类型号设置为 82

fdisk /dev/sdb

—>t

—>5(分区号)

—>L查看一下所有代码,82是swap类型

—>82(设置类型为swap)

mkswap /dev/sdb5

swapon /dev/sdb5 #启用新增加的交换分区

swapoff /dev/sdb5 #停用指定的交换分区

swapon -s #查看每个分区的swap状态

free -m #查看总的swap状态信息

image.png

image.png


五、挂载、卸载文件系统


5.1挂载文件系统、ISO镜像到指定文件夹


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

#用于指定文件系统类型,通常可以省略,由系统自动识别

示例:

[root@localhost /]# mount /dev/sr0 /mnt/

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

#挂载参数列表,以英文逗号分隔:如用来描述特殊设备,用loop指定

loop:用来把一个文件当成硬盘分区挂接上系统

image.png

1.最好挂空文件,不然文件可能丢失

2.如果挂载目录下,你不能解挂载的

3.不能一个目录挂载多个设备


5.2卸载已挂载的文件系统


卸载前提:挂载的设备或目录没有被正在使用中,要先退出挂载目录

加入参数 -lf ,表示强制卸载

格式:

umount 存储设备位置


umount 挂载点目录


5.3永久挂载


系统中的**/etc/fstab** 文件可以视为mount命令的配置文件,其中存储了文件系统的静态挂载数据。Linux在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统,默认的fstab文件中包括了根分区、/boot分区、交换分区及proc、tmpfs等伪文件系统的挂载配置。


在**/etc/fstab**文件中,每一行记录对应一个分区或设备的挂载配置信息,这些信息从左到右包括六个字段(使用空格或制表符分隔),各部分的含义如下所述。

 /dev/sdb1   /mailbox    xfs  defaults    0 0

第1字段:设备名或设备卷标名

第2字段:文件系统的挂载点目录的位置

第3字段:文件系统类型,如xfs、swap等

第4字段:挂载参数,即mount命令"-o"选项后可使用的参数。例如,defaults、rw、ro、noexec分别表示默认参数、可写、只读、禁用执行

程序 第5字段:表示文件系统是否需要dump备份(dump是一个备份工具)。一般设为1时表示需要,设为o时将被dump忽略

第6字段:该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查。根分区应设为1,其他分区设为2

image.png

利用uuid或者设备名或设备卷标名都可以挂载


相关文章
|
11月前
|
存储 监控 Linux
Linux: 检测磁盘坏块 你得会吧!
Linux: 检测磁盘坏块 你得会吧!
769 19
Linux: 检测磁盘坏块 你得会吧!
|
10月前
|
Linux
在线对Linux进行磁盘扩容的技术指南。
综上所述,Linux磁盘扩容的过程,重要的不仅是技术,更是对每一步骤的深刻理解和投入的爱心。只要手握正确的工具,我们不仅能满足"孩子"的成长需求,还能享受其中的乐趣和成就。
657 10
|
Ubuntu Linux Shell
Linux系统中如何查看磁盘情况
【9月更文挑战第3天】在Linux系统中,有多种方式查看磁盘情况。可通过命令行工具`df`查看文件系统磁盘使用情况,选项`-h`以人类可读格式显示,`-T`显示文件系统类型;`du`命令显示目录或文件磁盘使用情况,`-h`以人类可读格式显示,`-s`仅显示总计;`fdisk -l`列出磁盘和分区信息。此外,图形界面的磁盘管理工具和文件管理器也可用于查看磁盘使用情况。这些方法有助于更好地管理磁盘空间。
1557 4
|
11月前
|
监控 固态存储 Linux
如何判断Linux磁盘是SSD还是HDD?
总的来说,判断磁盘是SSD还是HDD并不复杂,只需要使用正确的命令和方法,就可以轻松得到结果。希望这些信息对你有所帮助,如果你还有其他问题,欢迎随时提问。
1362 15
|
自然语言处理 监控 Linux
Linux 内核源码分析---proc 文件系统
`proc`文件系统是Linux内核中一个灵活而强大的工具,提供了一个与内核数据结构交互的接口。通过本文的分析,我们深入探讨了 `proc`文件系统的实现原理,包括其初始化、文件的创建与操作、动态内容生成等方面。通过对这些内容的理解,开发者可以更好地利用 `proc`文件系统来监控和调试内核,同时也为系统管理提供了便利的工具。
651 16
|
Linux
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
1262 10
|
Ubuntu Linux 网络安全
Linux磁盘挂接教程
Linux磁盘挂接教程
316 14
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
752 15
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
3543 7
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
388 7