01-Linux-磁盘分区与目录配置

news2024/9/20 16:56:13

1. 主引导纪录和磁盘分区表

1.1 MBR分区表

启动引导程序记录区与分区表都放在磁盘的第一个扇区(512B)
在这里插入图片描述
由于分区表仅占 64B,因此最多能有四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。

  • 缺点如下:
    • 操作系统无法使用 2TB 以上的磁盘容量
    • MBR 仅有一个区块,若被破坏后,经常无法或很难恢复
    • MBR 内的存放启动引导程序的区块仅 446B,无法存储较多的程序代码

1.2 GPT 磁盘分区表

在这里插入图片描述

(1)LBA0(保护MBR)

出于兼容性考虑,LBA0 存储了一份传统的 MBR 信息,用来防止不支持 GPT 的硬盘管理工具错误识别并破坏硬盘中的数据。

在支持从 GPT 启动的操作系统中,这里也用于存储第一阶段的启动代码。在这个 MBR 中,只有一个标识为 0xEE 的分区,以此来表示这块硬盘使用 GPT 分区表。不能识别 GPT 硬盘的操作系统通常会识别出一个未知类型的分区,并且拒绝对硬盘进行操作,除非用户特别要求删除这个分区。这就避免了意外删除分区的危险。另外,能够识别 GPT 分区表的操作系统会检查保护 MBR 中的分区表,如果分区类型不是 0xEE 或者 MBR 分区表中有多个项,也会拒绝对硬盘进行操作。

(2)LBA1(EFI 信息)

作用:定义分区表的位置和大小,还包含头和分区表的校验和,这样就可以及时发现错误。
在这里插入图片描述

(2)LBA2-33(分区表)

分区表中的每个分区项由起始地址、结束地址、类型值、名字、属性标志、GUID值组成。分区表建立后,128位(16B)的GUID对系统来说是唯一的。
在这里插入图片描述
从 LBA2 区块开始,每个 LBA 都可以记录 4 组分区记录,所以在默认的情况下,总共可以有 4 × 32 = 128 4\times 32=128 4×32=128 组分区纪录。因为每个 LBA 有 512B,因此每组记录用到 128B 的空间,除了每组记录所需要的标识符与相关的记录之外,GPT 在每组记录中分别提供了 64位来记载开始/结束的扇区号码,因此,GPT分区表对于单一分区来说,它的最大容量限制在 2 64 × 512 B = 8 Z B 2^{64}\times 512B=8ZB 264×512B=8ZB

2. BIOS 与 UEFI 启动检测程序

2.1 BIOS 搭配 MBR/GPT 的启动流程

  • CMOS:记录各项硬件参数且嵌入在主板上面的存储器。
  • BIOS:写入到主板上的一个固件(固件就是写入到硬件上的一个软件程序),BIOS 是启动时计算机系统会主动执行的第一个程序。
    • BIOS 会寻找启动盘,并到该硬盘里面去读取第一个扇区的 MBR 位置。MBR 这个仅有 446B 的硬盘容量里面会放置最基本的启动引导程序。

启动流程如下

  • BIOS:启动主动执行的固件,会认识第一个可启动的设备
  • MBR:第一个可启动设备的第一个扇区内的主引导记录块,内含启动引导代码
  • 启动引导程序(Boot Loader):一个可读取内核文件来执行的软件
    • 提供选项:用户可以选择不同的启动选项,这也是多重引导的重要功能
      • 选项一:直接加载 Windows 或 Linux 的内核文件来开机
      • 选项二:将开机管理工作交给第二个分区的启动扇区
    • 加载内核文件:直接指向可使用的程序区段来启动操作系统
    • 转交其它启动引导程序:将启动管理功能转交给其它启动引导程序负责
      • 启动引导程序除了可以安装在 MBR 之外,还可以安装在每个分区的启动扇区
  • 内核文件:开始启动操作系统

2.2 UEFI BIOS 搭配 GPT 启动的流程

在这里插入图片描述

3. Linux 安装模式下,磁盘分区的选择

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

  • 挂载:利用一个目录当成进入点,将磁盘分区的数据放置在该目录下。

4. Linux 目录配置

4.1 Linux 目录配置的依据-FHS

  • 根目录的意义与内容:根目录与启动、还原、系统修复等操作有关。根目录所在分区应该越小越好,且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。如此不但性能较佳,根目录所在的文件系统也较不容易发生问题。
目录应放置文件内容
第一部分FHS要求必须存在的目录
/bin放置的是在单人维护模式下还能被使用的命令,主要有:cat、chmod、chown、date、mv、mkdir、cp、bash等常用命令
/boot放置启动会使用到的文件,包括 LInux 内核文件以及启动选项与启动所需配置文件等。Linux 内核常用文件名为:vmlinuz。若使用的是grub2启动引导程序,则还会存在/boot/grub2/这个目录。
/dev放置的是所有设备与接口设备。读写这个目录下面的某个文件就等于读写某个设备,比较重要的文件有/dev/null、/dev/zero、/dev/tty、/dev/loop*、/dev/sd*等
/etc系统主要的配置文件几乎都放在这个目录中,例如人员的账号密码文件、各种服务的启动文件等。FHS 建议不要放置可执行文件在此目录。比较重要的文件有:/etc/modprobe.d/、/etc/passwd、/etc/fstab、/etc/issue等。另外FHS还规范几个重要的目录最好要存在/etc/目录下:
* /etc/opt(必要):这个目录放置第三方辅助软件 /opt 的相关配置文件
* /etc/X11(建议):与 X Window 有关的个汇总配置文件都在这里,其中xorg.conf是X Server的配置文件
* /etc/sgml/(建议):与 SGML 格式有关的各项配置文件
* /etc/xml(建议):与 XML 格式有关的各项配置文件
/lib放置的是在启动时会用到的函数库以及在/bin或/sbin下面的命令会调用的函数库。FSH要求下面的目录必须要存在:
* /lib/modules/:放置可抽换式的内核相关模块(驱动程序)
/media放置的是可删除的设备,包括软盘、光盘、DVD等设备都暂时挂在于此。常见的文件名有:/media/floppy、/media/cdrom等
/mnt放置的是暂时挂载某些额外的设备。早期本目录的作用同/media,现暂时用来挂载
/opt放置第三方辅助软件。
/run放置系统启动后所产生的各项信息。
/sbin放置启动过程中所需要的启动、修复、还原系统等命令。
/srv存放一些网络服务所产生的数据。
/tmp让一般用户或是正在执行的程序暂时放置文件的地方。
/usr第二层 FHS 设置。是linux系统核心所在,包含了所有的共享文件。
/var第二层 FHS 设置,主要存放变动性的数据。
第二部分FHS建议可以存在的目录
/home系统默认的用户家目录。在新增一个一般用户账号时,默认的用户家目录都会规范到这里来,比较重要的是家目录有两种代号:
* ∼ \sim :代表目前这个用户的家目录
* ∼ \sim dmtsai:代表 dmtsai 的家目录
/lib用来存放与/lib不同格式的二进制函数库,例如支持 64 位的 /lib64 函数库等。
/root系统管理员的家目录,之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时,该目录就能拥有 root 的家目录。
第三部分其它比较重要的目录
/lost+found使用标准的ext2、ext3、ext4文件系统格式才会产生的一个目录,目的在于当文件系统发生错误时,将一些遗失的片段放置到这个目录下;如果使用的是xfs文件系统,则不会存在这个目录。
/proc这个目录本身是一个虚拟文件系统,存放的数据都是在内存当中的,例如:系统内核、进程信息、外接设备的状态及网络状态等。因为这个目录下的数据都是在内存当中,所以本身不占任何硬盘空间。比较重要的文件如:/proc/cpuinfo、/proc/dma、/proc/interrupts、/proc/ioports、/proc/net/*等。
/sys也是一个虚拟文件系统,主要也是记录内核与系统硬件信息相关的内容。包括目前已加载的内核模块与内核检测到的硬件设备信息等,这个目录同样不占硬盘容量。
  • /usr的意义与内容:/usr 里面存放的数据属于可分享与不可变动,主要存放操作系统软件资源。这个目录会占用最多的硬盘容量。
目录应放置文件内容
第一部分FHS要求必须存在的目录
/usr/bin/存放所有的用户命令和/bin的链接文件。FHS要求在此目录下不应该有子目录。
/usr/lib/基本上与/lib功能相同。
/usr/local/存放本地安装的软件。
/usr/sbin/非系统正常运行所需要的系统命令,最常见的就是某些网络服务器软件的服务命令(daemon)。
/usr/share/主要放置只读的数据文件,当然也包括共享文件。常见的子目录有:
* /usr/share/man:在线帮助文件
* /usr/share/doc:软件的说明文档
* /usr/share/zoneinfo:与时区有关的时区文件
第二部分FHS建议可以存在的目录
/usr/games/存放与游戏相关的数据。
/usr/include/存放 C/C++ 等程序语言的头文件与包含文件。当我们以Tarball方式(*.tar.gz的方式安装软件)安装某些程序时,会使用到里面的许多文件。
/usr/libexec/存放一般用户不常用的执行文件或脚本等。例如大部分的 X Windows 下面的操作命令。
/usr/lib/与 /lib 功能相同,因此目前 /lib 就是链接到此目录中。
/usr/src/存放源代码。至于内核源代码建议放置到 /usr/src/Linux/ 目录下。
  • /var 的意义与内容:/var 目录主要针对经常性变动的文件,包括缓存、日志文件以及某些软件运行所产生的文件。
目录应放置文件内容
第一部分FHS要求必须存在的目录
/var/cache/应用程序运行过程中会产生的一些缓存。
/var/lib/存放程序执行过程中需要用到的数据文件。在此目录下各软件应该有各自的目录。
/var/lock/存放上锁的文件。某些设备或是文件资源一次只能被一个应用程序使用,若同时又两个程序使用该设备,就可能产生一些错误,因此就得将该设备上锁。
/var/log/存放日志文件。比较重要的文件有:/var/log/messages、/var/log/wtmp(记录登录信息)等。
/var/mail/存放个人电子邮箱。
/var/run/存放某些程序或是服务启动后产生的 PID。
/var/spool/存放一些队列数据,这些数据被使用后会被删除。举例来说:系统收到新邮件会放到/var/spool/mail/中,但用户收下该邮件后该封信原则上就会被删除,邮件如果暂时寄不出去会被放到/var/spool/mqueue/中,等到被送出后就被删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/432309.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式-创建型模式之工厂方法模式(Factory Method Pattern)

3.工厂方法模式(Factory Method Pattern)3.1. 模式动机现在对该系统进行修改,不再设计一个按钮工厂类来统一负责所有产品的创建,而是将具体按钮的创建过程交给专门的工厂子类去完成,我们先定义一个抽象的按钮工厂类,再定义具体的工…

vue项目导入excel成功后下载导入结果(后端返回的list数组)

需求: 点击批量导入按钮,弹出弹窗。 下载模板如图二 上传后,如果有错误,会弹出提示,如图三 点击查看失败原因,会自动下载失败的excel如图四。 请求参数和返回结果 1. vue项目导出表格功能实现步骤 np…

十七、市场活动明细:添加备注

功能需求 用户在市场活动明细页面,输入备注内容,点击"保存"按钮,完成添加市场活动备注的功能. *备注内容不能为空 *添加成功之后,清空输入框,刷新备注列表 *添加失败,提示信息,输入框不清空,列表也不刷新 功能分析 流程图 代码实现 一、ActivityRemarkMapper 1.Ac…

笔记-Samba服务器的安装与配置

引言 代码编写我们是在Windows系统下的VS Code来编辑,但是代码在虚拟机的Ubuntu系统中,所以我们要先实现如何将在Ubuntu下的项目映射到Windows系统中,这时我们可以使用到samba服务器。 一、安装samba服务器 sudo apt-get install samba我这里…

【瑞吉外卖】003 -- 后台退出功能开发

本文章为对 黑马程序员Java项目实战《瑞吉外卖》的学习记录 目录 一、需求分析 二、代码开发 三、功能测试 四、分析后台页面构成和效果展示 1、Vue & Element 2、iframe 一、需求分析 前端页面分析: 前端页面,点击事件 点击事件 logout()&#x…

使用vscode写UML图

文章目录 环境配置关键字多图注释Title多行title图注头部或尾部添加注释多行header/footer放大率类图接口抽象类枚举 类型关系泛化关系,箭头指向父类实现关系,箭头指向接口依赖关系,箭头指向被依赖关系关联关系,指向被拥有者可以双…

QML控件--DelayButton

文章目录 一、控件基本信息二、控件使用三、属性四、信号 一、控件基本信息 Import Statement:import QtQuick.Controls 2.14 Since:Qt 5.9 Inherits:AbstractButton 二、控件使用 DelayButton是一个延时按钮,需要长按才能触发&…

WPF教程(二)--Application WPF程序启动方式

1.Application介绍 WPF与WinForm一样有一个 Application对象来进行一些全局的行为和操作,并且每个 Domain (应用程序域)中仅且只有一个 Application 实例存在。和 WinForm 不同的是WPF Application默认由两部分组成 : App.xaml 和 App.xaml.…

SpringBoot单元测试断言 assertions

断言 断言(assertions)是测试方法中的核心部分,用来对测试需要满足的条件进行验证。这些断言方法都是 org.junit.jupiter.api.Assertions 的静态方法。JUnit 5 内置的断言可以分成如下几个类别: 1、简单断言 2、数组断言 通过 …

类型转换-空间配置器

文章目录 类型转换C语言的类型转换隐式类型转换:强制类型的转换:C类型转换缺点 C强制类型转换static_castreinterpret_castconst_castdynamic_cast explicit 空间配置器(STL专用内存池)SGI-STL空间配置器实现原理一级空间配置器二级空间配置器内存池SGI-…

stm32启动过程(以F1为例)

文章目录 STM32启动模式STM32启动过程(以内部flash启动为例)启动文件功能启动文件常用汇编指令及说明 STM32启动模式 M3/M4/M7等内核复位后,做的第一件事: 从地址 0x0000 0000 处取出 堆栈指针 MSP 的初始值,该值为栈…

接踵而至,昆仑万维天工大语言模型发布

目录 天工大语言模型对标GPT3.5对话能力多模态应用同行对比后言 天工大语言模型 国产ChatGPT再次迎来新成员,4月17日下午,昆仑万维正式发布千亿级大语言模型“天工”,同时宣布即日起启动邀请测试,并注册了chatgpt.cn作为域名。天…

认真复习c语言1

最近好好写总结了(不能在偷懒了):这一次绝对认真,写总结写了三个多小时,学了一个小时左右TAT; 今天来复习一下c语言的多文件操作: 经过我这几天的摸索,我算是明白了: …

Typora (windows/MacOs版) 你未曾见过的Markdown编辑器

简介 Typora的设计理念非常人性化,与传统编辑器相比,更注重用户的视觉效果和阅读体验。它的编辑界面非常简洁,用户可以就近编辑,随时查看效果,避免频繁地转换预览模式,提高了工作效率和灵活性。 此外&…

d2l解码编码器与seq2seq

seq2seq难死了,卡了好久,好不容易有些头绪了。。。 目录 1.编码器与解码器 1.1原理 1.2实现 2.seq2seq 2.1构造编码器 2.2构造解码器 repeat与cat探索 总结nn.rnn\GRU\LSTM输入输出 看一下解码器的输出 2.3损失计算 2.4训练 2.5预测 2.6预…

【C++】多态---上( 概念、条件及性质)

来前言: 我们之前提到过,C是一门面向对象的语言,它有三大特性——封装、继承、多态。 封装和继承我们已经详细学习过了,本章将进入多态的学习。 目录 (一)多态的概念 (二)多态的定…

Vector - CAPL - Panel面板_02

Button 功能:触发指定的操作 说明:Button 是一个控件,使用它可以触发指定的操作。 适用场景: 1、按下启动按钮会使电机启动。 2、启动锁定开关时,所有车门都会自动锁定。 3、启动TestModule测试模块、回放模块等 设…

单机部署MongoDB

文章目录 一、Windows 环境1.1 安装1.2 启动和连接1.3 Compass 图形化客户端 二、Linux 环境2.1 安装2.2 启动和连接 提示:以下是本篇文章正文内容,MongoDB 系列学习将会持续更新 一、Windows 环境 1.1 安装 ①下载安装包,官方下载地址&am…

OldWang带你了解MySQL(七)

文章目录🔥多表查询🔥SQL92标准中的查询🔥非等值连接🔥自连接🔥SQL99标准中的查询🔥SQL99中的自然连接(NATURAL JOIN)🔥SQL99中的内连接(INNER JOIN)🔥外连接查询(OUTER JOIN)&#…

行业那么多,为什么计算机领域这么火?

行业那么多,为什么计算机领域这么火?计算机领域火已经不是一天两天了,从开始的进入互联网时代、到“互联网”、再到大数据、人工智能时代、数字化经济……计算机技术从行业内部的自我发展逐渐渗透到各行各业,甚至成为社会整体经济…