mkfs.ext4 -F - 将来如何避免数据丢失?

mkfs.ext4 -F - 将来如何避免数据丢失?

在我们运行此mkfs命令在设备上创建文件系统之前,例如/dev/sde

如何知道该设备上是否已存在某些数据?:

mkfs.ext4 -j -m 0 /dev/sde -F

我执行了mkfs.ext4on /dev/sde,但没有收到有关该驱动器上存在的数据(-ed)的任何警告,因此所有数据都丢失了。

今后如何避免这种情况呢?


# mkfs.ext4 -j -m 0 /dev/sde -F

mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
      32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
      4096000

Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

答案1

如何知道 /dev/sde 上是否已存在某些数据

你可以尝试挂载一下。您可以尝试检查磁盘分区表。但是,如果您不使用能够理解磁盘上实际内容的正确工具,那么您使用的任何工具都可能会报告磁盘上没有数据。因此,归根结底,在执行会破坏磁盘上数据的操作之前,您需要知道磁盘上有什么。

作为系统管理员,您有销毁数据的权力。因此,您需要小心谨慎。

因此所有数据都会丢失...如何避免这种情况?

别跑

mkfs.ext4  -j -m 0 /dev/sde -F

在包含您不想丢失的数据的磁盘上。

说真的 - 这就是“修复” -不要这样做。您运行了一个命令来创建一个新的文件系统/dev/sde,甚至使用-F“force”选项来确保该命令运行,无论它会做什么。每手册mkfs.ext4:

   -F     Force mke2fs to create a filesystem, even if the specified
          device is not a partition on a block special device, or if
          other parameters do not make sense. ...

数据没了。吸取这次教训,以后更加小心。

答案2

在我的计算机(Fedora 25)上,如果设备上的文件系统已安装,mkfs.ext4 将发出警告。它还会警告设备(eg)是否sde实际上包含分区表,建议您格式化设备(eg)的分区sde1

这与 GNOME 等流行的 GUI 结合起来效果很好,因为它们倾向于自动挂载文件系统。 但有一些例外

所以你不能在所有可能的情况下都依赖它。然而它表明有一些令人愉快的防止数据丢失的保护措施。

编辑:正如安德鲁所说,如果您使用该-F选项,那么您就是在要求删除此保护。由于您没有说明为什么添加它,-F option因此很难提供帮助。

相关内容