如何在 Linux 上使用 mkfs 命令如何在 Linux 上使用 mkfs 命令如何在 Linux 上使用 mkfs 命令如何在 Linux 上使用 mkfs 命令
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 上使用 mkfs 命令

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

mkfs 制作文件系统

mkfs 命令创建文件系统。在其他操作系统上,创建文件系统称为格式化。不管它的名字是什么,它都是准备分区以便它可以存储数据的过程。分区需要一种存储文件的方式,是的。但它还需要一种机制来存储这些文件的名称和位置,以及它们的元数据,例如文件创建时间戳、文件修改时间戳、文件大小等。一旦 mkfs 构建了处理和存储文件元数据的必要框架,您就可以开始将文件添加到分区中。

语法非常简单。您只需告诉 mkfs 您想要在其上创建文件系统的设备分区,以及您想要的文件系统类型。这是表面上的。在幕后,它有点不同。一段时间以来,在大多数 Linux 发行版上,mkfs 一直是 mke2fs 的包装器。 mkfs 命令调用 mke2fs 命令并将您指定的选项传递给它。可怜的旧 mke2fs 做了所有的工作,但没有得到任何荣耀。

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

文件系统的选择

使用 mkfs 的现代方法是输入“mkfs”。然后是您要创建的文件系统的名称。

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

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

日志记录是文件系统中的一个重要概念。文件系统将挂起的文件写入记录到日志中。在写入每个文件时,日志会更新,待处理的写入记录也会更新。这允许文件系统修复由于停电等灾难性事件而发生的损坏的、部分写入的文件。一些较旧的文件系统不支持日志记录。那些不这样做的,写入磁盘的频率较低,因为它们不需要更新日志。它们可能执行得更快,但更容易因文件写入中断而损坏。

  • Ext2:Linux 的第一个文件系统是 MINIX 文件系统。它后来被第一个专门为 Linux 编写的文件系统所取代,即 Ext。 Ext2 是 Ext 的后继者。 Ext2 不是日志文件系统。
  • Ext3:这是 Ext2 的继承者,可以被认为是带有日志功能的 Ext2,它可以保护您的文件系统免受崩溃和突然断电导致的数据损坏。
  • Ext4:Ext4 是许多 Linux 发行版的标准文件系统。它是一个可靠、久经考验且值得信赖的文件系统。它具有减少文件碎片的功能,并且可以用于比 Ext3 更大的驱动器、分区和文件。
  • BFS:这是引导文件系统,专为一项工作而设计:处理引导分区中的文件。您很少会手动创建引导文件系统。您的 Linux 安装过程将为您执行此操作。
  • FAT:文件分配表文件系统是由计算机行业重量级人物组成的联盟为软盘设计的。它于 1977 年推出。您使用这种非日志文件系统的唯一原因是为了与非 Linux 操作系统兼容。
  • NTFS:新技术文件系统是随 Windows NT 引入的 Microsoft 日志文件系统。它是 FAT 的继任者。您使用此文件系统的唯一原因是为了与非 Linux 操作系统兼容。
  • MINIX:MINIX 最初由 Andrew S. Tanenbaum 作为教育辅助工具创建,是一个“迷你 Unix”操作系统。如今,它的目标是提供一个自我修复和容错的操作系统。 MINIX 文件系统 被设计为 Unix 文件系统的简化版本。也许如果您在 Linux 计算机上进行交叉开发并以 MINIX 平台为目标,您可能会使用这个文件系统。或者您可能出于其他原因需要与 MINIX 计算机兼容。这个文件系统在 Linux 计算机上的用例并没有突然出现在我面前,但它是可用的。
  • VFAT:虚拟文件分配表,随 Windows 95 引入,并取消了文件名的八个字符限制。最多 255 个字符的文件名成为可能。您使用此文件系统的唯一原因是为了与非 Linux 操作系统兼容。
  • CRAMFS:压缩 ROM 文件系统是一种只读文件系统,专为嵌入式系统和专门的只读用途而设计,例如在 Linux 计算机的启动过程中。通常首先加载一个小的、临时的文件系统,以便可以启动引导程序进程,为要安装的“真正的”引导系统做准备。
  • MSDOS:微软磁盘操作系统的文件系统。它于 1981 年发布,是一个基本的文件系统。第一个版本甚至没有目录。它在计算历史上占有重要地位,但除了与遗留系统的兼容性之外,今天没有理由使用它。

试验文件系统的安全方法

在分区上创建文件系统会破坏可能已驻留在该分区上的任何数据。使用备用硬盘驱动器——甚至是备用计算机——是尝试创建和使用不同文件系统的完美方式。但是,当然,许多人并没有闲置的备用硬件等待进行试验。

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

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

of(输出文件)选项允许我们为图像文件提供名称。我们称之为“howtogeek.img”。

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

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

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

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

ls -hl

正如预期的那样是 250 MB,这令人鼓舞。

创建文件系统

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

mkfs.ext2 ~/howtogeek.img

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

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

现在我们有了文件系统的容器——图像文件——在这个场景中它代表硬盘驱动器。在该容器内,我们创建了一个文件系统。现在我们需要挂载文件系统以便我们可以使用它。

这是一个临时设置,所以我们将在 /mnt 中创建一个名为“geek”的挂载点。我们会在完成后将其删除。

sudo mkdir /mnt/geek

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

sudo mount ~/howtogeek.img /mnt/geek

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

sudo chown dave:users /mnt/geek/

现在我们应该可以使用我们的新文件系统了。让我们切换到文件系统,并将一些文件复制到其中。

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

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

ls

文件已经复制,所以我们的文件系统已经创建、挂载和使用。或者我们认为。让我们仔细检查一下。从我们的主目录中,我们将卸载文件系统。注意umount中只有一个“n”。

sudo umount /mnt/geek

现在,如果我们返回 /mnt/geek 并检查文件,我们应该找不到任何文件,因为它们在我们的图像文件中,并且已经卸载。

cd /mnt/geek
ls

进一步探索

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

小心!如果图像文件中的文件系统中有任何重要文件,请挂载图像文件并在创建新文件系统之前检索它们。

mkfs.minix ~/howtogeek.image

没有任何询问您“是否确定”的暗示,新文件系统是在旧文件系统之上创建的。我们可以使用与之前完全相同的命令来挂载我们的图像文件:

sudo mount ~/howtogeek.img /mnt/geek

让我们在 /mnt/geek 切换到新的文件系统,看看我们是否可以创建一个文件。

touch geek.txt
ls -ahl geek.txt

而且,就这么简单快速地,我们创建了一个新的文件系统,挂载了它,我们就可以使用它了。

移除挂载点

完成后,我们可以删除“极客”挂载点。为此,我们将使用 rmdir:

cd /mnt
sudo rmdir geek

玩火杂耍

与大多数事情一样,使用 Linux,您可以边做边学。一些命令的问题在于它们具有潜在的破坏性。难题是如何练习使用它们而不会使您的系统或数据面临风险?

现在,您有了一种使用 mkfs 创建和试用文件系统的简单方法,不会影响您的计算机。

Linux Commands
Files tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc
Processes alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap
Networking netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

RELATED: Best Linux Laptops for Developers and Enthusiasts

©2015-2025 艾丽卡 support@alaica.com