如何在 FreeBSD 上使用引导驱动器上未使用的空间

dav*_*dcl 5 freebsd partition fdisk scsi

我有一个旧的 FreeBSD 服务器(运行 7.3-RELEASE),它迫切需要额外的存储空间。事实上,它有一些——原来的 20G SCSI 驱动器已被 300G SCSI 驱动器取代,因此理论上有 280G 可用。

我想利用这个空间。我认为最好的方法是将未使用的空间格式化为现有驱动器上的新切片,但我不清楚如何在不破坏现有切片上的数据的情况下执行此操作。我能找到的大多数有关执行此操作的文档都涉及初始安装。我知道如何在初始安装期间设置切片和分区,但不知道如何在初始安装后声明驱动器上未使用的空间。

(我也很乐意扩展切片并向现有切片添加其他分区,但我听说这样做风险更大)。

我认为最简单的方法可能是使用/stand/sysinstall,但是当我进入 Configure -> FDisk 或 Configure -> Label 时,我收到以下消息:

No disks found!  Please verify that your disk controller is being
properly probed at boot time.  See the Hardware Guide on the
Documentation menu for clues on diagnosing this type of problem.
Run Code Online (Sandbox Code Playgroud)

这显然是不正确的,因为当我收到这条消息时,我实际上正在运行磁盘,但也许 sysinstall 只是不喜欢弄乱启动磁盘?

的输出fdisk da0

******* Working on device /dev/da0 *******
parameters extracted from in-core disklabel are:
cylinders=2235 heads=255 sectors/track=63 (16065 blks/cyl)

Figures below won't work with BIOS for partitions not in cyl 1
parameters to be used for BIOS calculations are:
cylinders=2235 heads=255 sectors/track=63 (16065 blks/cyl)

Media sector size is 512
Warning: BIOS sector numbering starts with sector 1
Information from DOS bootblock is:
The data for partition 1 is:
sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD)
    start 63, size 35905212 (17531 Meg), flag 80 (active)
        beg: cyl 0/ head 1/ sector 1;
        end: cyl 1023/ head 254/ sector 63
The data for partition 2 is:
<UNUSED>
The data for partition 3 is:
<UNUSED>
The data for partition 4 is:
<UNUSED>
Run Code Online (Sandbox Code Playgroud)

输出 bsdlabel da0s1

# /dev/da0s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:  2097152        0    4.2BSD     2048 16384    89
  b:  2097152  2097152      swap
  c: 35905212        0    unused        0     0         # "raw" part, don't edit
  e:  2097152  4194304    4.2BSD     2048 16384    89
  f: 29613756  6291456    4.2BSD     2048 16384    89
Run Code Online (Sandbox Code Playgroud)

更新:

我提出了为此目的使用萨德的建议。不幸的是,sade 看不到多少空白空间:

         0         63         62        -     12     unused        0
        63   35905212   35905274    da0s1      8    freebsd      165
  35905275      10501   35915775        -     12     unused        0
Run Code Online (Sandbox Code Playgroud)

这可能是一个死胡同。我是否需要以某种方式弄清楚驱动器几何?可能需要提及驱动器是 RAID 1 镜像集;最初的镜像驱动器都是 20G SCSI 驱动器,但它们都被替换为 300G 驱动器。如果有帮助,我愿意暂时打破镜子。

Ste*_*lls 0

因此,听起来当您更换旧磁盘时,您基本上只是使用 dd 将整个旧磁盘复制到新磁盘。因此,您应该能够创建另一个 fdisk 分区,即 da0s2,然后在其中放置另一个 BSD 分区,即 da0s2a。我会使用 geom 来完成此操作,而不是 sysinstall 或 sade。如果您可以显示 的输出gpart list,我可能可以引导您创建新分区。当然,一定要做好备份等。

当然,更好的做法是升级到9.1,扩大分区,然后使用growfs扩大现有的FS,这样新的磁盘空间就属于同一个FS。(通常我喜欢通过有一个单独的 /var 和 /usr (至少)来将事情分开一点,但我知道现在大多数人不这样做,并且在那个大小的磁盘上,管理起来可能会变得有点麻烦东西存放的地方。)

(哦,我想最好的办法是切换到 ZFS,但我想如果系统中有一个 20GB 磁盘,它可能是 32 位并且没有很多 RAM,所以对于 ZFS 来说并不理想......)

编辑:完全错过了关于镜子的部分。是的,打破镜子可能是实现这一目标的一种途径。是硬件RAID镜像还是软件RAID镜像?