如何在Linux上使用mkfs命令

时间:2020-01-09 10:39:55  来源:igfitidea点击:

我们必须先创建文件系统,然后才能使用连接到Linux计算机的任何数据存储设备。了解如何使用mkfs和其他实用程序针对各种文件系统执行此操作。我们向我们展示如何。

mkfs制作文件系统

mkfs命令用于创建文件系统。在其他操作系统上,创建文件系统称为格式化。无论其名称如何,都是准备分区以使其可以存储数据的过程。是的,分区需要一种存储文件的方式。但是它还需要一种机制来存储这些文件的名称和位置以及它们的元数据,例如文件创建时间戳,文件修改时间戳,文件大小等等。在处理和存储文件元数据的框架中,我们可以开始将文件添加到分区。

语法非常简单。我们只需告诉mkfs我们要在其上创建文件系统的设备分区以及所需的文件系统类型即可。在幕后,有点不同。一段时间以来,在大多数Linux发行版中,mkfs一直是mke2fs的包装。 mkfs命令调用mke2fs命令并将其传递给我们指定的选项。可怜的老mke2fs可以完成所有工作,但是却一无所获。

mkfs的语法已被更新,旧格式已被弃用。两种形式都可以使用,但是在本文中我们将使用现代风格。

文件系统的选择

使用mkfs的现代方法是键入mkfs。然后是我们要创建的文件系统的名称。

要查看mkfs可以创建的文件系统,请键入mkfs,然后按两次Tab键。 mkfs之后没有空格,只需按两次Tab键即可。

可用文件系统的列表显示在终端窗口中。屏幕截图来自Ubuntu 18.04 LTS。其他发行版可能会提供更多或者更少的选项。我们将逐一介绍这些选项,并简要介绍每个选项。简要介绍日记之后。

日志记录是文件系统中的重要概念。文件系统将挂起的文件写入日志记录。在写入每个文件时,将更新日志,并更新未决的写记录。这允许文件系统修复由于灾难事件(例如断电)而发生的损坏的,部分写入的文件。一些较旧的文件系统不支持日记功能。那些不这样做的人则不需要频繁地写入磁盘,因为它们不需要更新日志。它们的执行速度可能更快,但是由于文件写入中断而更容易造成损坏。

  • Ext2:Linux的第一个文件系统是MINIXfile系统。后来,它被专门为Linux编写的第一个文件系统wasExt取代。 Ext2是Ext的后继者。 Ext2不是日记文件系统。

  • Ext3:这是Ext2的后继产品,可以被认为是带有日志功能的Ext2,它可以保护文件系统免受崩溃和突然断电导致的数据损坏。

  • Ext4:Ext4是可能的Linux发行版的标准文件系统。它是一个可靠,可靠的可靠文件系统。它具有减少文件碎片的功能,并且与Ext3相比,可用于更大的驱动器,分区和文件。

  • BFS:这是引导文件系统,仅针对一项作业而设计:处理引导分区中的文件。很少会手工创建启动文件系统。Linux安装过程将为我们完成此任务。

  • FAT:文件分配表文件系统是由计算机行业的重量级组织为软盘设计的。它于1977年引入。我们使用此非日志文件系统的唯一原因是为了与非Linux操作系统兼容。

  • NTFS:新技术文件系统是Windows NT引入的Microsoft日记文件系统。它是FAT的后继产品。我们使用此文件系统的唯一原因是为了与非Linux操作系统兼容。

  • MINIX:最初由Andrew S. Tanenbaum创建,目的是作为一种教育工具,MINIX是一个微型Unix操作系统。如今,其目的是提供一种自我修复和容错的操作系统。 MINIX文件系统被设计为Unix File System的简化版本。也许如果我们正在Linux计算机上进行交叉开发并以MINIX平台为目标,则可以使用此文件系统。或者,由于其他原因,我们可能需要与MINIX计算机兼容。 Linux计算机上此文件系统的用例并没有引起我的兴趣,但可以使用。

  • VFAT:虚拟文件分配表,是Windows 95引入的,删除了文件名的八个字符的限制。最多可以使用255个字符的文件名。我们使用此文件系统的唯一原因是为了与非Linux操作系统兼容。

  • CRAMFS:Compressed ROM File System是一个压缩的文件系统,专门用于嵌入式系统和专门的只读用途,例如Linux计算机的启动过程中。通常,首先加载一个小型的临时文件系统,以便启动引导过程来为要安装的实际引导系统做准备。

  • MSDOS:Microsoft磁盘操作系统的文件系统。它发布于1981年,是一个基本的基本文件系统。第一个版本甚至没有目录。它在计算历史上占有举足轻重的地位,但除了与传统系统兼容以外,今天没有理由使用它了。

相关:我们应该使用哪个Linux文件系统?

实验文件系统的安全方法

在分区上创建文件系统会破坏该分区上可能已经存在的所有数据。使用备用硬盘驱动器甚至是备用计算机都是尝试创建和使用不同文件系统的理想方式。但是,当然,很多人没有多余的硬件在等待实验。

但是,我们可以创建一个镜像文件并其中创建文件系统。一旦挂载它,就可以像使用常规分区一样使用它。我们可以在不需要备用硬件的情况下探索和试验文件系统。我们将使用dd命令创建镜像文件。

图像文件是通过获取源数据并将其放入图像中创建的。我们需要告诉dd其中获取其源数据。我们将使用if(输入文件)选项来告诉dd使用/ dev / zero作为输入数据源。这将是零流。

of(输出文件)选项允许我们为图像文件提供名称。我们将其称为theitroad.img。

图像文件的大小由我们添加到其中的块的大小和数量决定。使用bs(块大小)选项请求1 MB的块大小,使用count选项请求250个块。这将为我们提供250 MB的文件系统。发出此命令时,请调整块数以适合需求以及Linux计算机上的备用容量。

dd if=/dev/zero of=~/theitroad.img bs=1M count=250

该文件是为我们创建的,dd报告说,根据要求为我们创建了250个块。

我们可以用ls查看我们的图像文件:

ls -hl

预期达到250 MB,这令人鼓舞。

创建文件系统

让我们选择一个要使用的文件系统。我们将回到过去,使用Ext2,这是mkfs实现可以创建的Ext的最早版本。这是一个非日志文件系统,因此,如果没有其他地方的备份,请不要其中存储任何珍贵的文件。我们使用mkfs命令的mkfs.ext2变体,并告诉它使用图像文件作为目标。

mkfs.ext2 ~/theitroad.img

创建文件系统,并显示文件系统的一些详细信息。

从突出显示的文本中可以看到,mke2fs出现了。

现在,我们有了文件系统的容器,即镜像文件,在这种情况下该镜像文件将用于硬盘驱动器。在该容器内,我们创建了一个文件系统。现在我们需要挂载文件系统,以便可以使用它。

这是一个临时设置,因此我们将在/ mnt中创建一个称为data的安装点。完成后,我们将其删除。

sudo mkdir /mnt/data

现在我们可以挂载镜像文件了。

sudo mount ~/theitroad.img /mnt/data

我们需要更改挂载点的文件所有权,以便我们对其具有读写权限。

sudo chown dave:users /mnt/data/

现在,我们应该能够使用我们的新文件系统了。让我们转到文件系统,然后将一些文件复制到其中。

cd /mnt/data
cp ~/Documents/Code/*.? .

这会将所有带有单字母扩展名的文件从~/ Documents / Code目录复制到我们的新文件系统。让我们检查一下它们是否已被复制。

ls

文件已被复制,因此我们的文件系统已创建,安装和使用。还是我们认为。让我们仔细检查一下。从主目录中,我们将卸载文件系统。请注意,umount中只有一个n。

sudo umount /mnt/data

现在,如果我们跳回到/ mnt / data并检查文件,我们将找不到任何文件,因为它们在我们的镜像文件中,并且已经卸载。

cd /mnt/data
ls

进一步探索

现在我们已经确定了流程,尝试另一个文件系统应该很容易。这次我们将使用MINIX文件系统。在我们的主目录中,我们可以在现有镜像文件中创建一个新的文件系统。

小心!如果镜像文件中文件系统上有重要文件,请挂载镜像文件,然后在创建新文件系统之前对其进行检索。

mkfs.minix ~/theitroad.image

毫无疑问,我们不会确定是否会在旧文件系统上创建新文件系统。我们可以使用与之前完全相同的命令挂载镜像文件:

sudo mount ~/theitroad.img /mnt/data

让我们转到/ mnt / data的新文件系统,看看是否可以创建文件。

touch data.txt
ls -ahl data.txt

而且,如此简单快捷地,我们创建了一个新的文件系统,将其挂载,我们可以使用它。

卸下安装点

完成所有操作后,我们可以删除怪胎安装点。为此,我们将使用rmdir:

cd /mnt
sudo rmdir data