解释Linux文件系统:Boot Loading, 磁盘分区,BIOS,UEFI和文件系统类型

本文介绍了Linux系统中的Bootloading、磁盘分区、分区表、BIOS与UEFI的区别以及文件系统类型。讲解了BIOS和UEFI的引导流程,强调了UEFI的安全引导特性。同时,讨论了多种Linux文件系统如ext2、ext3、ext4、JFS、ReiserFS、XFS和Btrfs的特点与适用场景。还提到了在RHEL/CentOS/Fedora中挂载Windows/USB NTFS分区的方法。最后,简述了磁盘分区、LVM、Swap分区和加密的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Boot loading,磁盘分区,分区表,BIOS,UEFI,文件系统类型等概念对我们来说所知甚少。我们经常遇到这些术语,但很少花费力气详细地了解这些术语和它们的含义。本文努力用最简单的方式填补这一差距。

1、分区表

在安装一个Linux发行版时我们遇到的第一个决定之一是其磁盘分区,要使用的文件系统,为安全实现加密,这根据架构和平台变化而变化。最广泛使用的架构之一,Intel正在经历一些变化并且理解这些变化是重要的,其在另一方面需要了解启动过程。

很多开发者在相同机器上运行Windows和Linux,这可能是喜好或需求的问题。今天的大部分boot-loaders足够智能得识别在相同机器上任何数目的操作系统并且提供菜单来引导到首选操作系统。另一种实现相同目标的方式是使用Xen, QEMU, KVM或者任何其它选取的虚拟化工具使用虚拟化。

BIOS VS UEFI

到90年代末期,代表基本输入/输出系统的BIOS是引导Intel系统的唯一方式。BIOS在一个称作主启动记录(MBR)的特殊区域中保存分区信息,因而在每个可启动分区的第一个扇区中存储了其它代码。

在90年代末,微软介入Intel产生了通用可扩展固件接口(UEFI),其初始目的是安全地引导。这种引导机制经证明对根工具包是一个挑战,尤其那个连接了引导扇区并且用BIOS难于探测。

用BIOS引导

用BIOS引导要求在位于引导磁盘第一个扇区中的MBR中放置引导代码或者引导过程。在安装了多个操作系统时,已安装的boot loader在安装和更新过程中自动地被一个通用boot loader替代,这个通用boot loader在每个可引导磁盘上放置引导代码,这意味着用户能够选择引导到任何已经安装的OS。

用UEFI引导BIOS

UEFI是微软和Intel紧密合作开发的最新启动技术。UEFI需要被装载的固件是数字签名的,一种阻止根工具包连接引导分区的方法。但在使用UEFI引导Linux的问题是复杂的。在UEFI中引导Linux要求使用的密钥对在GPL下公开,这违反了Linux协议。

通过禁止'Secure boot'并且启用'Legacy Boot'在UEFI规范上安装Linux仍然是可能的。在UEFI中的引导代码被放置在/EFI子目录,磁盘第一个扇区中的特殊分区。

Linux系统系统类型

一个标准Linux发行版用以下列出的文件格式提供分区磁盘的选择,其中每一个有与他相关联的含义。

  1. ext2
  2. ext3
  3. ext4
  4. jfs
  5. ReiserFS
  6. XFS
  7. Btrfs

Ext2,ext3,ext4

这些是可扩展文件系统(ext)渐进版本,其主要为MINX开发。第二个可扩展版本(ext2)是一个改进版。Ext3增加了性能增强。Ext4一个性能增强而且补充提供的其它特性。

JFS

日志文件系统(JFSS)由IBM为AIX UNIT开发,其用于替代ext。JFS当前是ext之外另一种选择并且在使用很少资源需要稳定性的地方使用。当CPU能力受限时,JFS很方便。

ReiserFS

作为ext3之外另一种选择被引入,其增强了性能和高级特性。曾经有一段时间SuSE Linux的默认文件格式是ReiserFS,但之后Reiser不使用了并且SuSe除了重新使用ext3外没有选择。ReiserFS支持文件系统动态扩展,这是一个很高级的特性但这个文件系统缺少某些性能领域。

XFS

XFS是高速JFS,其目标在于并行I/O处理。NASA仍然在它们300+TB存储服务器上使用这个文件系统。

Btrfs

B-树文件系统(Btrfs)专注于容错,功能管理,修复系统,大型存储配置并且仍然在开发中。不推荐生产系统使用Btrfs。

集群文件格式

引导不需要集群文件系统,但从存储视角,非常适合在共享环境中。

非Linux文件格式

有很多文件格式在Linux不可用但被其它OS使用,即:NTFS用于微软,HFS用于Apple/Mac os等。通过在Linux下使用像挂载NFTS的nfts-3g文件系统的某种工具挂载这些文件系统,可以使用它们,但在Linux下不是首选。

如何在RHEL/CentOS/Fedora中访问或挂载Windows/USB NTFS分区

首先需要使能EPEL仓库。要哦挂载任何基于NTFS的文件系统,你需要安装称作NTF3G的工具。在继续安装前,了解一下NTF3G:NTF3G是什么?NTF3G是一个在Linux中开源跨平台,稳定的,GPL授权,POSIX,NTFS R/W驱动。它提供Windows NTFS文件系统的安全处理,即:创建,重命名,移动文件,目录,硬链接等。

一旦安装和启用了EPEL,以root用户使用一下命令安装ntfs-3g包。

[root@areadetector blctrl]# dnf install ntfs-3g

Fuse安装:接着用以下命令安装和装载FUSE驱动来挂载探测到的设备。在2.6.18-164或更新内核中包括了FUSE模块。

[root@areadetector blctrl]# dnf install fuse
[root@areadetector blctrl]# modprobe fuse

识别NTFS分区:一旦装载了fuse模块,输入以下命令在Linux中查找NTFS分区。

[root@areadetector blctrl]# fdisk -l
Disk /dev/sdc: 931.5 GiB, 1000170586112 bytes, 1953458176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 56F073CF-A62E-44CC-B306-9C17AE3FDC43

Device     Start        End    Sectors   Size Type
/dev/sdc1   2048 1953456127 1953454080 931.5G Microsoft basic data

挂载NTFS分区:首先创建一个挂载点来挂载NTFS分区:

[root@areadetector blctrl]# mkdir /mnt/ntfs

只要运行以下命令来挂载这个分区。用你找到的实际分区替代/dev/sdc1:

[root@areadetector blctrl]# mount -t ntfs-3g /dev/sdc1 /mnt/ntfs

一旦在/mnt/ntfs上挂载了它,使用正常的Linux ls命令列出挂载文件系统的内容:

[root@areadetector blctrl]# ls /mnt/ntfs/
'$RECYCLE.BIN'
 2020-08-20-raspios-buster-armhf-full.img
 BLC.tar
 CAENGECO2020-1.9.1-build20190708.zip
 CentOS-7-x86_64-Minimal-2009.iso
'EPICS software'
 hadoop-3.2.2.tar.gz
 hello.sh
 jdk-8u311-linux-x64.tar.gz
 mysql-workbench-community-8.0.25-winx64.msi
 prod_software_v3.8.0.14.zip
 Python
'System Volume Information'
 tif
 ubuntu-mate-20.04.1-beta2-desktop-arm64+raspi.img
 信号发生器
 示波器

如果你想要在启动时就进行挂载,只要在/etc/fstab文件末尾添加以下一行:

/dev/sdc1 /mnt/ntfs ntfs-3g defaults 0 0

卸载NTFS分区:使用以下命令来卸载挂载的分区

[root@areadetector blctrl]# umount /dev/sdc1
[root@areadetector blctrl]# ls /mnt/ntfs/

Unix文件系统

有某些文件格式在Linux中广泛使用但在Linux下不是首选,尤其对于安装Linux根系统,例如BSD的UFS。

Ext4是首选并且在Linux文件系统中使用最广泛。在某些特殊情况中,使用XFS和ResierFS。Btrfs仍然在实验环境中使用。

磁盘分区

第一阶段是磁盘分区。在分区时,我们应该记住以下点。

  • 分区维护备份和恢复
  • 在分区中空间限制标记
  • 磁盘管理--管理功能

逻辑卷管理

LVM时一个在大型存储安装中使用的复杂的分区。LVM结构是在位于实际物理磁盘分区之上。

Swap

Swap是在Linux中系统休眠过程中用于内存分页。当系统在一个时间点被暂停(休眠)时,系统当前阶段被写到Swap。

一个从不进入休眠的系统需要一个大小等于其RAM的swap空间。

加密

最后阶段是加密,其确保数据安全。加密可以在磁盘级别和目录级别。在磁盘加密中,整个磁盘被加密需要某类特殊代码来解密它。

但这是一个复杂问题。解密代码不能仍然位于经过加密的相同磁盘,因而我们需要某种特殊硬件或者让主板做这件事。

目录加密相对简单实现并且复杂度低。在这种情况中,解密代码仍然位于相同磁盘不同目录中某处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值