如何使用 gpart 修改 FreeBSD 10 中的分区

如何使用 gpart 修改 FreeBSD 10 中的分区

我正在使用 FreeBSD。我的硬盘有这组分区:

root@core:/media # gpart show
=>       63  390721905  ada0  MBR  (186G)
         63       1985        - free -  (993K)
       2048   13365248     1  !39  (6.4G)
   13367296         44        - free -  (22K)
   13367340  174063519     2  freebsd  [active]  (83G)
  187430859      57397        - free -  (28M)
  187488256  203231232     3  ebr  (97G)
  390719488         23        - free -  (12K)
  390719511       2394     4  freebsd  (1.2M)
  390721905         63        - free -  (32K)

=>        0  174063519  ada0s2  BSD  (83G)
          0  174063518       1  freebsd-ufs  (83G)
  174063518          1          - free -  (512B)

=>        0  203231232  ada0s3  EBR  (97G)
          0   14485504       1  linux-swap  (6.9G)
   14485504  188745728  229929  linux-data  (90G)

=>   0  2394  ada0s4  BSD  (1.2M)
     0  2394          - free -  (1.2M)

我想为 FreeBSD 添加交换驱动器通过修改linux交换区。事实上我根本不使用linux驱动器,也不关心它是否被删除。

我这样做是为了修改分区:

root@core:/media # sudo gpart modify -i1 -t freebsd-swap ada0s3
gpart: pre-check failed: Operation canceled

我究竟做错了什么?任何意见都会受到赞赏。

答案1

据我所知,您已经有一个 linux-swap 分区 ( ada0s3)。

如果是这种情况,只需将分区添加到/etc/fstab

如果没有,我建议您使用fdiskforMBR partition tablesgdiskforGPT partition tables来代替编辑partition table你想要的然后执行:mkswap partitionswapon partition然后将分区添加到/etc/fstab

例如

#add /dev/ada0s3 to /etc/fstab as swap partition
echo "/dev/ada0s3   swap    swap    defaults    0   0" >> /etc/fstab

答案2

EBR 分区类型被称为“扩展分区”或“逻辑分区”(它是一种仅 MBR 的分区类型,并且相当古老;来自古老的 MS-DOS 时代)。这在 FreeBSD 上并不常见,因为逻辑分区是用bsdlabel.

来自gpart(8) 联机帮助页:

 MBR        Master Boot Record is used on PCs and removable media.
            Requires the GEOM_PART_MBR kernel option.  The GEOM_PART_EBR
            option adds support for the Extended Boot Record (EBR), which
            is used to define a logical partition.  The
            GEOM_PART_EBR_COMPAT option enables backward compatibility for
            partition names in the EBR scheme.  It also prevents any type
            of actions on such partitions.

最后一句话清楚地表明,FreeBSD 的 GEOM 部分模块将阻止此类分区上的操作。你呢不应该添加 ada0s3作为交换,因为它是逻辑分区这可能会让其他操作系统感到困惑(甚至 FreeBSD 也可能有问题)。据我了解,您肯定不打算拥有 97 GB 的交换分区。

如果您根本不需要 EBR 上的 Linux 系统,您可以启动 Linux Live CD 并使用您最喜欢的fdisk工具完全删除逻辑分区。然后它会被标记为可用空间,你可以回到FreeBSD并用gpart修改它。

进一步警告:请注意,FreeBSD 已经安装了其引导管理器,因为如果主引导系统是 Linux,则在删除 EBR 分区后,您可能需要使用 FreeBSD Live CD 来恢复引导加载程序。无论您做什么,请确保您知道自己在做什么,因为您可能会失去对数据的访问权限,甚至无法挽回地丢失数据。在这种情况下,备份总是合适的

相关内容