世界都没见过
谈什么世界观

在Linux中使用mkfs命令格式化磁盘或分区上的文件系统

mkfs是Linux中的命令行工具,用于在您选择的特定文件系统中格式化磁盘或分区。本篇文章分享了如何在Linux中使用mkfs命令格式化磁盘或分区上的文件系统

mkfs代表“ make file system”的字母。该命令通常用于在Linux中管理存储设备。您可以将mkfs视为用于将磁盘格式化为特定文件系统的命令行工具。

mkfs -t [fs type] [target device]

您还可以按以下方式使用mkfs命令。

mkfs.[fs type] [target device]

在本教程中,我将通常讨论什么是文件系统。我还将提供有效使用mkfs命令的示例。

由于mkfs命令处理磁盘和分区,因此它需要您是root用户或sudo用户,并且有权运行admin命令。

mkfs是功能强大的工具。重要的是要了解更改文件系统的潜在后果。选择错误的设备节点将删除该设备上的所有数据。使用此命令需要您自担风险。你被警告了

同样,什么是文件系统?

文件系统(fs)是指在设备上管理数据的结构和逻辑。文件系统控制数据的存储和检索方式。

文件系统有很多类型,每种都有各自的优缺点。这是最常见的文件系统类型:

  • FAT*
  • NTFS
  • ext*
  • APFS
  • HFS*

您可能之前遇到过一种或多种这些文件系统类型。您甚至可以将类型与各自的操作系统关联。

一般而言,FAT / NTFS是为Windows设计的,Ext与Linux系统一起使用,而APFS / HFS是macOS文件系统。这些文件中的每一个都以不同的方式处理文件结构的逻辑,这可能会导致问题。

这就是为什么在声明文件系统类型或“格式化”设备之前考虑这一点至关重要的原因。每个用例都不同,由您决定哪种文件系统最适合您的需求。

mkfs命令示例

让我向您展示mkfs命令的一些最常见用法。

请不要在您的实际系统上盲目尝试任何这些命令。它将格式化目标设备/磁盘分区,擦除所有数据。

没有任何选项的mkfs创建ext2文件系统

如果您没有为目标设备指定文件系统类型,它将使用默认的ext2文件系统。

sudo mkfs /dev/sdb1

用mkfs指定文件类型

使用ext2并不是很方便或不可取。如今,大多数Linux系统建议使用ext4。您可以通过以下方式指定文件系统:

sudo mkfs -t ext4 /dev/sdb1

您也可以像这样使用它:

sudo mkfs.ext4 /dev/sdb1

检查设备上的坏块

您还可以检查设备上的坏块,但请记住,检查通常需要很长时间。

sudo mkfs -c /dev/sdb1

温馨提示:检查设备的文件系统类型

您可能要检查刚刚使用mkfs命令格式化的设备的文件系统类型。您可以将file命令用于此目的。

sudo file -sL /device

这是一个示例,显示了它可以显示什么样的输出:

linux@handbook:~$ sudo file -s /dev/nvme0n1p2/dev/nvme0n1p2: Linux rev 1.0 ext4 filesystem data, UUID=34daa4b7-a2c4-4983-b5cc-df9baa6a6543 (extents) (64bit) (large files) (huge files)

实际用例:使用mkfs命令在USB设备上创建文件系统

现在您已经有了一些背景信息,您可以开始使用mkfs。

我能想到的最实用的演示是格式化USB闪存驱动器。这些相同的原理将适用于您选择的任何类型的存储。

查找您的设备

首先,您需要找到您的设备。您可以使用的一种方法是sudo fdisk -l。这将列出当前已安装的所有磁盘节点。

christopher@linux-handbook:~$ sudo fdisk -lDisk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectorsDisk model: VBOX HARDDISK   Units: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x3c62c49cDevice     Boot    Start      End  Sectors  Size Id Type/dev/sda1  *        4096  1023998  1019903  498M 83 Linux/dev/sda2        1024000 44036094 43012095 20.5G 83 Linux/dev/sda3       44036096 52424702  8388607    4G 82 Linux swap / SolarisDisk /dev/sdb: 28.93 GiB, 31040995328 bytes, 60626944 sectorsDisk model: Patriot Memory  Units: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: gptDisk identifier: 91A34D6F-E67B-E54D-B19C-5CC828DAAB9ADevice     Start      End  Sectors  Size Type/dev/sdb1   2048 60626910 60624863 28.9G Linux filesystem

您的输出显然会有所不同。在确定所需的驱动器时,非常小心。如果不确定,请卸下磁盘,然后fdisk -l再次运行命令。如果您拥有正确的设备,则断开连接时不会列出该设备。

验证分区

我使用的设备是Patriot Memory USB,位于/dev/sdb。除了标识正确的磁盘外,您还需要确保更改了所需分区的fs。

我使用fdisk工具删除现有数据并编写新的分区表。在执行此操作时,我创建了一个要写入的新分区。该分区将成为我们的目标:/dev/sdb1

卸载

在尝试更改文件系统之前,需要使用以下umount命令将其卸载。

christopher@linux-handbook:~$ sudo umount /dev/sdb1

创建文件系统

既然您已经验证了目标并卸载了驱动器,则可以继续创建文件系统。

我在-v此处添加了详细选项,以在运行时显示更多信息。

christopher@linux-handbook:~$ sudo mkfs.ext4 /dev/sdb1 -vmke2fs 1.45.5 (07-Jan-2020)fs_types for mke2fs.conf resolution: 'ext4'Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks1896832 inodes, 7578107 blocks378905 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=2155872256232 block groups32768 blocks per group, 32768 fragments per group8176 inodes per groupFilesystem UUID: 73882769-7599-4c79-a00b-ef317ccd921dSuperblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000Allocating group tables: done                            Writing inode tables: done                            Creating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: done 

此过程可能需要一些时间,但除非目标大于2 TB,否则应在20分钟内完成。

我在程序的最后一个项目上挂了几个问题。不幸的是,没有进度指示器,也没有抛出任何错误。

验证新创建的文件系统

首先,检查您刚刚使用的设备的文件系统。是您想要的那个吗?

sudo file -sL /dev/sdb1

重要的是要确保将在使用该设备的系统上识别该设备。我创建了一个名为test的文件夹,并在其中创建了一个名为test.txt的文件。

为了节省时间,您可以在此处复制并粘贴我的命令。

mkdir test && cd testtouch test.txtecho "THIS IS ONLY A TEST" > test.txtcat test.txt

如果一切正常,则应该能够将驱动器安装到所需的系统上并访问文件。如果您无法访问系统上的文件,则可能存在兼容性问题。

结论

我希望您对本mkfs命令快速指南有所帮助。

赞(0) 打赏
未经允许不得转载:VPS排行榜 » 在Linux中使用mkfs命令格式化磁盘或分区上的文件系统
分享到: 更多 (0)
标签:

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏