我最近安装了 FreeBSD,但我不喜欢安装过程中接受的分区大小,并且想更改它们。我已按照手册页中的说明进行操作,因此我以 root 身份执行了此操作
# bsdlabel -e ad0s2
(ad0s2是安装FreeBsd的分区)。进行更改后,我尝试保存并退出,但收到以下消息:
/tmp/EdDk.RBNU2c8vnz: unmodified: line 1
bsdlabel: cannot open provider /dev/ad0s2 for writing label: Operation not permitted
re-edit the label? [y]:
如果我尝试重新编辑,我会再次收到相同的消息。如果我尝试保存而不进行任何更改,我什至会收到此消息。我是 FreeBSD 的新手,认为在更改磁盘标签之前我可能必须做一些事情,但我在任何地方都找不到任何此类信息。有人可以帮我吗?谢谢!
答案1
您是否在 GEOM 调试标志中启用了“足部射击”?
# sysctl kern.geom.debugflags=16
答案2
我不知道什么确切地您正在尝试这样做,但请注意您无法通过编辑磁盘标签来调整文件系统的大小。
这仅有的调整文件系统大小的方法是使用growfs(8),但这仅适用于将大小附加到末尾,如果有另一个文件系统妨碍,则这将不起作用。用一张图来解释一下:
Before: After:
+-----+ +-----+
| fs1 | + fs1 +
+-----+ | |
| | +-----+
| fs2 | | fs2 |
+-----+ +-----+
如您所见,扩大 fs1 意味着移动 fs2 的开头。这不是 FreeBSD 上的 UFS 可以做到的事情。因此,如果您像这样编辑磁盘标签,fs1 会没问题,但 fs2 会损坏。
换句话说:如果您不喜欢在安装时选择的文件系统大小,则需要备份并重新安装,或者接受它。
话虽这么说,您sysctl kern.geom.debugflags=16
无论如何都可以用来进行更改(这将允许您编辑已安装磁盘上的分区标签和/或磁盘标签)。
答案3
您始终可以用来gpart
修改 MBR 分区表和 BSD 磁盘标签。例如,要更改 ada0 类型的分片 1 的分区 b 的类型:
# gpart modify -i 2 -t freebsd-ufs /dev/ada0s1