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


相关文章
|
2月前
|
Ubuntu Linux Shell
Linux系统中如何查看磁盘情况
【9月更文挑战第3天】在Linux系统中,有多种方式查看磁盘情况。可通过命令行工具`df`查看文件系统磁盘使用情况,选项`-h`以人类可读格式显示,`-T`显示文件系统类型;`du`命令显示目录或文件磁盘使用情况,`-h`以人类可读格式显示,`-s`仅显示总计;`fdisk -l`列出磁盘和分区信息。此外,图形界面的磁盘管理工具和文件管理器也可用于查看磁盘使用情况。这些方法有助于更好地管理磁盘空间。
550 4
|
3月前
|
存储 监控 安全
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
|
4天前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
41 8
|
9天前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
40 7
|
1月前
|
Unix Linux 对象存储
Linux 磁盘管理
Linux 磁盘管理
33 1
|
2月前
|
存储 Linux 5G
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
这篇文章介绍了LVM(逻辑卷管理)如何提供灵活的磁盘管理方式,允许动态调整逻辑卷的大小而不会丢失数据。
Linux 基于 LVM 逻辑卷的磁盘管理【简明教程】
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
55 0
|
1月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
38 0
|
2月前
|
存储 Linux 索引
Linux 下最主流的文件系统格式——ext
【9月更文挑战第8天】硬盘被划分为若干相同大小的块(Block),默认大小为4K,便于灵活管理文件数据。文件数据分散存放于这些块中,提高了数据添加、删除和插入的便利性。
|
3月前
|
编解码 Linux 程序员
深度探索Linux操作系统 —— 构建根文件系统2
深度探索Linux操作系统 —— 构建根文件系统
45 12