创建 BTRFS 文件系统时出错

创建 BTRFS 文件系统时出错

我正在尝试使用btrfs文件系统安装 Arch Linux。我正处于安装过程的开始准备我的驱动器,但遇到了问题。

首先,我开始使用以下命令清除之前安装尝试中的所有 GTP 和 MBR 记录:

gdisk /dev/sda

然后我使用命令进入专家模式x,然后使用z删除 GTP 和/或 MBR。

然后,我fdisk使用驱动器上的整个空间(即 119GB)创建一个新分区。

创建分区并写入分区后,我尝试使用以下命令创建文件系统:

mkfs.btrfs /dev/sda1

但我收到一个错误:

/dev/sda1 appears to contain an existing filesystem (btrfs)

怎么会这样呢?我所做的只是创建了一个分区,那么 btrfs 怎么可能已经作为文件系统类型存在呢?

答案1

当您创建分区时,它包含以前存在的任何内容。例如,如果您删除包含文件系统的分区并在完全相同的位置重新创建分区,而没有写入其间的空间,那么您将获得之前存在的完整文件系统。如果新分区与旧分区起始位置相同但更大,您可以继续使用文件系统或(如果文件系统支持)扩展它以填充额外的空间。如果新分区较小,您可以继续使用文件系统 - 但在删除旧分区之前,您需要将其缩小到新分区大小。

因此,这里有一个文件系统,或者可能只是文件系统的开始,是在同一位置启动的分区留下的。许多版本mkfs拒绝覆盖看似现有的文件系统,因为这通常表明您指定了错误的分区,并且错误可能是灾难性的。如果你想覆盖现有的文件系统,你需要先擦除它的一部分,足以使其无法识别。 Linux 附带了wipefs这样做的实用程序。

wipefs /dev/sda1

在分区开头将足够的字节(例如几兆字节)清零往往会产生相同的效果。

答案2

使用 dd 我们可以擦除分区表。我记得 dd 取得了成功,而 gdisk 的零功能却失败了。 (确保您已备份数据)。

# dd if=/dev/zero of=/dev/sda bs=512 count=1024

相关内容