我正在使用 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
如果没有,我建议您使用fdisk
forMBR partition tables
或gdisk
forGPT partition tables
来代替编辑为partition table
你想要的然后执行:mkswap partition
,swapon 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
.
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 来恢复引导加载程序。无论您做什么,请确保您知道自己在做什么,因为您可能会失去对数据的访问权限,甚至无法挽回地丢失数据。在这种情况下,备份总是合适的。