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或者设备名或设备卷标名都可以挂载


相关文章
|
1月前
|
存储 监控 Shell
【Shell 命令集合 备份压缩 】Linux 备份文件系统 dump命令 使用指南
【Shell 命令集合 备份压缩 】Linux 备份文件系统 dump命令 使用指南
37 0
|
29天前
|
存储 算法 Linux
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
【Linux 应用开发 共享内存】深入理解和实践 ftruncate:共享内存的有效管理
62 5
|
1月前
|
搜索推荐 Shell Linux
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
【Shell 命令集合 系统管理 】Linux 管理用户配置文件 userconf命令 使用指南
37 2
|
5天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
16天前
|
Linux
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
Linux操作系统调优相关工具(三)查看IO运行状态相关工具 查看哪个磁盘或分区最繁忙?
21 0
|
30天前
|
存储 算法 Linux
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
45 0
|
17天前
|
网络协议 Linux
在Linux中,管理和配置网络接口
在Linux中管理网络接口涉及多个命令,如`ifconfig`(在新版本中被`ip`取代)、`ip`(用于网络设备配置)、`nmcli`(NetworkManager的CLI工具)、`nmtui`(文本界面配置)、`route/ip route`(处理路由表)、`netstat/ss`(显示网络状态)和`hostnamectl/systemctl`(主机名和服务管理)。这些命令帮助用户启动接口、设置IP地址、查看连接和路由信息。不同发行版可能有差异,建议参考相应文档。
19 4
|
3天前
|
Ubuntu Linux 芯片
Linux(2)ubuntu rootfs根文件系统制作
Linux(2)ubuntu rootfs根文件系统制作
19 0
|
11天前
|
消息中间件 监控 Linux
Linux进程和计划任务管理
通过这些命令和工具,你可以有效地管理Linux系统中的进程和计划任务,监控系统的运行状态并保持系统的稳定和可靠性。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
102 2
|
12天前
|
存储 运维 监控
深入理解 Linux 文件系统的层次结构
【4月更文挑战第14天】本文将探讨 Linux 操作系统的文件系统层次结构,这是每个系统管理员和开发人员必须掌握的核心知识。我们将从文件系统的顶层目录开始,逐步深入到每个目录的特定用途和重要性,以及它们如何协同工作以支持 Linux 系统的正常运行。