首页 > 系统相关 >Linux之磁盘分区

Linux之磁盘分区

时间:2024-08-20 16:54:29浏览次数:5  
标签:分区 扇区 分区表 Linux GPT 磁盘 磁盘分区

Linux中设备的文件名

linux秉持着万物皆是文件的思想,各类硬件设备也被当成文件对待,以下是常用设备的文件名

0

中括号 [ ] 表示设备的序列名,比如/dev/sd[a-p],就表示有多个同类型的设备,他们的文件名分别是 /dev/sda, /dev/sdb, ...... .dev/sdp

总之,我们可以先理解为,访问这些文件就等于访问对应的设备了

磁盘组成

要想了解磁盘分区,我们得先了解磁盘的组成
1

物理结构:

  • 盘片:就是上图中左边的圆盘,就是我们的盘片了
  • 主轴马达:上图中右边的侧面图,每一个长方形就是一个盘片(侧面),然后通过一个像棍子一样的东西串在一起,这个棍子就是主轴马达了,盘片会跟着主轴旋转
  • 机械臂:上图中右边的侧面图,蓝色的部分就是机械臂了,就像个夹子一样,可以进行伸缩运动,简单来说就是靠近主轴和远离主轴
  • 磁头:上图中右边的侧面图,红色的部分就是磁头了,相当与是位于机械臂的末端,像是夹住盘片一样,我们就是通过这个来访问磁盘的

逻辑结构:

  • 磁道:上图中左边的俯视图,黄色的部分就是磁道了,它就是一个圆圈,当然盘片不止一个磁道,这里黄色的部分是最外圈磁道
  • 扇区:上图中左边的俯视图,绿色的部分就是扇区了,简单来说就是一个磁道被划分得到的就是扇区啦
  • 柱面:这个立体图不好画,柱面就是多个盘片的同一位置的磁道的组合就是柱面了,举个例子就是我们用过的卷纸,卷纸的一圈其实就像是一个柱面,或者说卷纸用完后留下的那个轴就像是一个柱面

磁盘连接的方式与设备名的关系

由于SATA/USB/SAS等磁盘接口都是使用SCSI模块来驱动的,因此这些接口的磁盘设备文件名都是/dev/sd[a-p]的格式(参考上图的设备名)

所以SATA/USB接口的磁盘根本就没有一定的顺序,那如何决定他的设备文件名呢?这个时候就得要根据 Linux核心侦测到磁盘的顺序

简单来说就是,我们找到谁谁的名字顺序就靠前,这个与实际插槽的代号没关系

这里是个例题
1

磁盘分区

磁盘分区有两种不同的格式

MSDOS(MBR)分区表格式

这种格式下,磁盘的第一个扇区很重要,存放着 开机管理程序纪录区与分区表,通常是512字节

  • 主要开机记录区(Master Boot Record, MBR):可以安装开机管理程序的地方,有446Bytes
  • 分区表(partition table):记录整颗硬盘分区的状态,有64 Bytes

由于分区表所在区块仅有64 Bytes容量,因此最多仅能有四组记录区,每组记录区记录了该区段的启始与结束的柱面号码

举个例子,我们将磁盘分成4个分区,如下所示
3

假设磁盘的设备名是 /dev/sda1, 那么这些分区名就是 /dev/sda[1-4]

书里写得很好,我就直接照搬了

4

这里说一下主要分区和延伸分区,主要分区就是以为着整个就是一个分区,延伸分区是利用额外的扇区来存储分区记录,简单来说,就是延伸分区可以进一步分为逻辑扇区,数量不限,这样我们实际的分区数量就突破4个了

如下是一个例子,我们可以看到总共有1个主要分区和1个延伸分区,延伸分区又细分为5个逻辑扇区,而这些逻辑扇区的分区记录就是在延伸分区使用的那个扇区中(图中的小黑块)
4

那这些分区的命名又是怎样的呢:
5

我们可以看到逻辑分区的数字编号是从5开始,这是因为前4个编号要留给主要分区或延伸分区,逻辑分区是无法使用的

这里是关于MBR分区的特性的总结:
6

MBR磁盘空间整合

磁盘空间整合,只是对于主分区和逻辑分区而言,延伸分区无法被格式化,也就无法存储数据

  • 只需要记住同类型的可以直接整合(合并)---相当于删掉原来的分区,然后新增一个分区,这样就能达到类似合并的效果了
  • 不同类型的,其实也就是逻辑分区和主分区的合并,这时候只能删掉原来的延伸分区(所有的逻辑分区都会被删除),然后再新建分区(总体的思路还是从不同类型转换到同类型)

MBR分区的限制
6

GUID partition table, GPT 磁盘分区表

LBA 逻辑区块位址
过去默认的扇区大小是512字节,为了相容所有的磁盘,因此在扇区的定义上,大多使用 LBA来处理

GPT 将磁盘所有区块以此LBA(默认为 512Bytes喔!)来规划,而第一个 LBA 称为LBA0(从 0 开始编号)

GPT格式

与MBR仅使用第一个512Bytes区块来纪录不同,GPT使用了 34个LBA区块 来纪录分区信息!GPT除了前面 34个LBA之外,整个磁盘的最后33个LBA也拿来作为另一个备份(34个区块中,只有后33块是关于分区记录的)

如下图所示,GPT分区表的结构

7

  • LBA0:MBR 相容区块,基本与MBR模式下的第一个扇区一致,开机管理程序仍是446字节,不同的是原本的分区表的纪录区内,这个相容模式仅放入一个特殊标志的分区,用来表示此磁盘为 GPT 格式之意
  • LBA1:GPT 表头纪录,这个部份纪录了分区表本身(包含备份)的位置与大小, 以及放置了分区表的检验机制码(CRC32)
  • LBA2-33:实际纪录分区信息处,每个 LBA 都可以纪录 4 笔分区纪录,所以在默认的情况下,总共可以有 4x32=128 笔分区纪录

GPT分区已经没有所谓的主、延伸、逻辑分区的概念,既然每笔纪录都可以独立存在,当然每个都可以视为是主分区!每一个分区都可以拿来格式化使用喔

挂载

目录树结构

目录树架构(directory tree)就是以根目录为主,然后向下呈现分支状的目录结构的一种文件架构
8

比如我们要访问 mydata 文件,就要通过 /home/dmtsai/mydata 这个路径

Linux内的所有数据都是以文件的形态来呈现的,它使用的也是目录树架构

但我们的文件数据都是放在磁盘分区中的,如何结合目录树的架构与磁盘内的数据,这个就是挂载的作用所在

文件系统与目录树的关系(挂载)

  • 挂载:利用一个目录当成进入点,将磁盘分区的数据放置在该目录下;也就是说,进入该目录就可以读取该分区的意思
  • 挂载点:那个进入点的目录我们称为“挂载点”

判断文件所在分区

9

假设有以上这个例子,分区1被挂载到 根目录 下,分区2被挂载到 home目录

要判断文件所在的分区,通过 反向追踪 即可,也就是说,从当前文件往上找进入点,谁先被找到,文件就在这个进入点所对应的分区下

结合我们给的例子,当我想要知道/home/vbird/test这个文件在哪个partition时,由 test-->vbird-->home-->/,我们先找到 home目录 这个进入点,所以这个文件在分区2中

标签:分区,扇区,分区表,Linux,GPT,磁盘,磁盘分区
From: https://www.cnblogs.com/winter-z/p/18369318

相关文章

  • python ssh上传文件到linux并解压
    importparamikoimportosdefupload_and_unzip(local_file,remote_file,zip_dir):#创建SSH客户端ssh=paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())private_key_path=r'F:\mysite.pem'#加载私钥文件......
  • linux sudo提权
    方法一、1.创建普通用户usernameuseraddusername2.执行以下命令以编辑sudoers文件,实际是vi/etc/sudoersvisudo找到该行内容rootALL=(ALL)ALL,添加username用户,保存退出:wqrootALL=(ALL)ALLusernameALL=(ALL)ALL方法二、1.创建普通用户u......
  • Liya Linux:Arch 的又一尝试,提供 Cinnamon 和 MATE 桌面,底层为 Btrfs
    LiyaLinux是一个相对较新的Linux发行版,基于广受欢迎的ArchLinux构建。LiyaLinux的出现,为那些希望体验ArchLinux强大功能但又不想从头构建系统的用户提供了一个更为简单的选择。它默认提供Cinnamon和MATE两种桌面环境,并且采用Btrfs文件系统作为底层支持。......
  • AlmaLinux release 9.4 安装docker环境
    1.安装docker环境1.1查看系统环境[root@AlmaLinux-9~]$cat/etc/redhat-release;uname-rs移除旧版本的Docker(如果有):sudoyumremovedocker\docker-client\docker-client-latest\docker-common\......
  • linux系统,环境变量配置
    linux系统,环境变量配置把握以下几个原则1、临时变量在当前shell会话中设置的变量,退出会话后失效exportVARIABLE_NAME=value2、用户变量只对当前登录会话的用户有效,退出会话,下次登录依然有效,修改用户主目录下的.bashrc或者.bash_profile文件,添加exportVARIABLE_NAME=va......
  • 哇!0.8秒启动!Linux快速启动方案分享,全志T113-i国产平台!
    本文主要介绍基于创龙科技TLT113-EVM评估板(基于全志T113-i)的系统快速启动方案,适用开发环境如下。Windows开发环境:Windows764bit、Windows1064bit虚拟机:VMware15.5.5Linux开发环境:Ubuntu18.04.464bitU-Boot:U-Boot-2018.07Kernel:Linux-5.4.61、Linux-RT-5.4.61LinuxSDK......
  • ArchLinux配置OpenCV C++环境
    本文将简单介绍在ArchLinux中安装OpenCVC++库并运行一个简单的OpenCV程序的过程。参考:https://github.com/donaldssh/Install-OpenCV我的环境最新的ArchLinuxKDEPlasma6桌面环境OpenCV4.10.0clang18.1.8gcc14.2.1安装安装以下包:sudopacman-Shdf5vtk......
  • linux(arm)移植 macchanger
    在ARMLinux平台上移植macchanger工具主要涉及从源代码编译该工具,‌并确保它在目标ARM设备上正确运行。‌macchanger是一个用于操纵网络接口MAC地址的小工具,‌常用于增强网络隐私和安全性。‌移植步骤1.‌准备开发环境‌:‌确保你有一个交叉编译环境,‌包括针对你的ARM设备......
  • Linux(CentOS)挂载数据盘(小于2T)
    将网站文件,数据库等信息放在数据盘中,万一需要重装系统时,数据还在。就像我们的电脑,把资料放在D盘,重装C盘后资料还在一样。安全又方便。购买数据盘后默认是没有挂载的,需要手工挂载。以下是挂载数据盘的操作步骤。本教程服务器环境为LinuxCentOS,运营商为腾讯云,数据盘小于2T(......
  • Linux ARM生成随机的MAC地址
    背景有一批产品ARM板出来全都是同一个MAC地址:00:00:35:00:11:55这就导致获取的IP都是一样的,需要让他们启动后获取各自不一样的IP,因此每个板子都需要获得其自己的MAC地址(后三个BYTE区分身份):“00:00:35:XX:XX:XX”设置MAC解决此问题1、临时设定网卡的MAC地址(重启后......