Linux 文件系统说明:引导加载、磁盘分区、BIOS、UEFI 和文件系统类型
大多数人对引导加载、磁盘分区、分区表、BIOS、UEFI、文件系统类型等概念知之甚少。我们经常遇到这些术语,但很少费心去详细了解它们及其含义。本文旨在以最简单的方式填补这一空白。
分区表
在安装 Linux 发行版时,我们首先要做出的决定之一是磁盘分区、要使用的文件系统、实施安全加密,这些都随着架构和平台的变化而变化。作为最广泛使用的架构之一,英特尔正在经历一些变化,了解这些变化很重要,另一方面,这需要了解启动过程。
许多开发人员在同一台机器上运行Windows和Linux,这可能是个人喜好或需要的问题。当今的大多数引导加载程序都足够智能,可以识别同一台机器上的任意数量的操作系统,并提供菜单以引导到首选操作系统。实现相同目标的另一种方法是使用虚拟化,使用Xen、QEMU、KVM或任何其他首选可视化工具。
BIOS 与 UEFI
如果我没记错的话,直到90年代末,BIOS(代表基本输入/输出系统)是启动英特尔系统的唯一方法。BIOS 将分区信息保存在一个称为主引导记录( MBR ) 的特殊区域中,以便将附加代码存储在每个可引导分区的第一个扇区中。
20 世纪 90年代末,微软与英特尔合作,推出了通用可扩展固件接口 ( UEFI ),其最初目的是实现安全启动。这种启动机制对 rootkit 来说是一个挑战,特别是那些与启动扇区相连、难以被 BIOS 检测到的 rootkit。
使用 BIOS 启动
使用BIOS启动需要将启动代码或启动顺序放入MBR,而 MBR 位于启动盘的第一个扇区中。如果安装了多个操作系统,则已安装的启动加载程序将被一个通用启动加载程序替换,该加载程序会在安装和更新期间自动将启动代码放入每个可启动盘中,这意味着用户可以选择启动任何已安装的操作系统。
然而,特别是在 Windows 上,非 Windows 引导加载程序不会更新系统,特别是某些程序,即IE,但同样,没有硬性规定,也没有任何地方记录。
使用 UEFI 启动
UEFI是微软与英特尔密切合作开发的最新启动技术。UEFI 要求加载的固件经过数字签名,这是一种阻止 rootkit 附加到启动分区的方法。但是使用 UEFI 启动 Linux 的问题很复杂。在 UEFI 中启动 Linux 需要将使用的密钥在 GPL 下公开,这违反了 Linux 协议。
但是,仍然可以通过禁用“安全启动”并启用“传统启动”来在 UEFI 规范上安装 Linux。UEFI 中的启动代码位于/EFI的子目录下,位于磁盘第一个扇区中的特殊分区。
Linux 文件系统的类型
标准 Linux 发行版提供了使用下面列出的文件格式对磁盘进行分区的选择,每种格式都有其特殊的含义。
- 扩展2
- 扩展
- ext4
- 杰夫斯
- 雷泽文件系统
- 西弗斯
- 文件系统
ext2、ext3、ext4
这些是扩展文件系统( ext )的渐进版本,主要为MINIX开发。第二个扩展版本 ( ext2 ) 是一个改进版本。ext3增加了性能改进。ext4不仅提供了附加功能,还提高了性能。
另请阅读:什么是 Ext2、Ext3 和 Ext4,以及如何创建和转换 Linux 文件系统
捷豹路虎
日志文件系统( JFS )由 IBM 为 AIX UNIX 开发,用于替代系统 ext。JFS 目前是ext4的替代品,用于需要稳定性且占用极少资源的场合。当 CPU 能力有限时,JFS 就派上用场了。
雷泽文件系统
它作为ext3的替代品推出,具有更好的性能和高级功能。SuSE Linux曾经一度将ReiserFS作为默认文件格式,但后来 Reiser 倒闭了,SuSe 别无选择,只能回归ext3。ReiserFS支持动态文件系统扩展,这是一个相对高级的功能,但文件系统在某些方面性能欠缺。
西弗斯
XFS是一种高速JFS,旨在实现并行I/O处理。NASA 仍在其300+ TB 存储服务器上使用此文件系统。
文件系统
B-Tree 文件系统( Btrfs ) 专注于容错、有趣的管理、修复系统、大存储配置,并且仍在开发中。不建议将 Btrfs 用于生产系统。
群集文件格式
集群文件系统不需要用于启动,但从存储角度来看最适合共享环境。
非Linux文件格式
有很多文件格式在 Linux 下不可用,但被其他操作系统使用。例如,微软的NTFS 、苹果/Mac OS 的 HFS 等。大多数文件格式都可以在 Linux 下使用,方法是使用某些工具(如ntfs-3g 来安装 NTFS文件系统)安装它们,但在 Linux 下并不受欢迎。
Unix 文件格式
某些文件格式在 Linux 中广泛使用,但并不适用于安装 Linux 根系统,例如BSD的UFS。
Ext4是首选且使用最广泛的 Linux 文件系统。在某些特殊情况下,使用XFS和ReiserFS。Btrfs仍在实验环境中使用。
磁盘分区
第一阶段是磁盘分区。分区时,我们应该牢记以下几点。
- 分区时要牢记备份和恢复。
- 分区中的空间限制标记。
- 磁盘管理-管理功能。
逻辑卷管理
LVM是用于大型存储安装的复杂分区。LVM 结构覆盖实际的物理磁盘分区。
交换
Swap用于 Linux 中的内存分页,特别是在系统休眠期间。当系统在某个时间点暂停(休眠)时,系统的当前阶段将被写入 Swap。
永不进入休眠状态的系统需要与其RAM大小相等的交换空间。
加密
最后阶段是加密,确保数据安全。加密可以在磁盘级别进行,也可以在目录级别进行。在磁盘加密中,整个磁盘都被加密,需要某种特殊代码才能解密。
但这是一个复杂的问题。解密代码不能保留在正在加密的同一磁盘上,因此我们需要某些特殊硬件或让主板来做这件事。
磁盘加密相对容易实现,不太复杂。在这种情况下,解密代码仍保留在同一磁盘的不同目录中。
磁盘加密在服务器构建中是必要的,并且根据您实施加密的地理位置,可能存在法律问题。
在本文中,我们尝试以更深入的方式阐明文件系统管理以及磁盘管理。现在就这些。我会再次在这里发布另一篇值得了解的有趣文章。在此之前,请继续关注并关注示例,不要忘记在下面的评论部分向我们提供您宝贵的反馈。
另请参阅:Linux 目录结构和重要文件路径说明