在我们运行此mkfs
命令在设备上创建文件系统之前,例如/dev/sde
:
如何知道该设备上是否已存在某些数据?:
mkfs.ext4 -j -m 0 /dev/sde -F
我执行了mkfs.ext4
on /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
因此很难提供帮助。