在 VMWare ESXi 下扩展 pfsense 上的磁盘大小

Azk*_*erM 4 freebsd vmware disk pfsense

我已经在ESXi上测试pfsense有一段时间了。现在我的空间快用完了。目前它大约有30GB,我想将它扩展到150GB,因为我计划安装鱿鱼进行缓存。到目前为止,我所做的是;

  • 尝试在 ESXi 上为 pfsense(它的厚置备驱动器)扩展磁盘,该磁盘扩展并显示为免费。
  • 通过引导和iso进入pfsense VM尝试gparted,这表明安装的分区是未知的,未分配的甚至没有显示调整大小的选项(猜测这是因为pfsense使用UFS文件系统)
  • 尝试安装一个成功的新副本,但用户界面很奇怪,因为我看不到总使用量、内存使用量……等等。甚至状态栏也看不到。

我的 pfsense 制造了很多麻烦。我所需要的只是在可能的情况下扩展旧 pfsense 上的磁盘,否则修复新磁盘(GUI 看起来非常缓慢)。

Ouk*_*uki 6

pfSense 当前基于 FreeBSD 8.x。实时扩展 UFS 文件系统的能力仅随 FreeBSD 10.x 一起提供,因此所有这些都应该在救援/安装模式下完成。

首先备份你的config.xml文件!

要扩大 pfSense 根文件系统,您必须首先正确调整 BSD 分区方案(又名“bsd 片”)的大小:

  • 重新调整 BSD 分区的大小

    在控制台模式或通过 ssh,启动一个Shell(示例只有 4GB 安装,4GB 可用磁盘):

    [admin]:gpart show

    =>      63  16777153  ad0  MBR  (8.0G)
            63   8388513    1  freebsd  [active]  (4G)
       8388576   8388640       - free -  (4.0G)
    
    =>      0  8388513  ad0s1  BSD  (4G)
            0       16         - free -  (8.0k)
           16  7339921      1  freebsd-ufs  (3.5G)
      7339937  1048576      2  freebsd-swap  (512M)
    
    Run Code Online (Sandbox Code Playgroud)

    (假设您的磁盘被视为ad0

    [admin]:gpart resize -i 1 ad0

    ad0s1 resized
    
    Run Code Online (Sandbox Code Playgroud)

    由于gpart有关旧 MBR 分区方案的错误,我们需要强制全局大小更新,因为 MBR 仍然具有旧的全局大小。

    获取freebsd实际分区大小(gpart show ad0输出的第二列):

    [admin]:gpart show ad0

    =>      63  16777153  ad0  MBR  (8.0G)
            63  16777152    1  freebsd  [active]  (8G)
      16777215         1       - free -  (512B)
    
    Run Code Online (Sandbox Code Playgroud)

    使用bsdlabel编辑这个值到的姿色c:行:

    [admin]:bsdlabel -e /dev/ad0s1

    # /dev/ad0s1:
    8 partitions:
    #          size     offset    fstype   [fsize bsize bps/cpg]
      a:   15728640         16    4.2BSD        0     0     0
      b:    1048496   15728656      swap
      c:    8388513          0    unused        0     0     # "raw" part, don't edit
    
    Run Code Online (Sandbox Code Playgroud)

    所以编辑它以匹配这个数字;在我们的例子中:16777152(编辑器是vi):

    # /dev/ad0s1:
    8 partitions:
    #          size     offset    fstype   [fsize bsize bps/cpg]
      a:   15728640         16    4.2BSD        0     0     0
      b:    1048496   15728656      swap
      c:   16777152          0    unused        0     0     # "raw" part, don't edit`
    
    Run Code Online (Sandbox Code Playgroud)

    分区现在已正确调整大小。

  • 不断增长的 pfSense 根文件系统

    由于默认的磁盘分区是在磁盘末尾设置交换,我们必须首先记下它的大小并在增长根文件系统之前将其删除:

    (只要确保它是输出中ad0s1第三列值的第二个文件系统gpart show

    [admin]:gpart delete -i 2 ad0s1

    重新调整我们的根分区大小,但交换分区大小(gpart-s选项只接受整数值,所以 7.5G = 7680M):

    [admin]:gpart resize -i 1 -s 7680M ad0s1

    ad0s1a resized
    
    Run Code Online (Sandbox Code Playgroud)

    [admin]:growfs /dev/ad0s1a

    We strongly recommend you to make a backup before growing the Filesystem
    
     Did you backup your data (Yes/No) ? Yes
    new file systemsize is: 3932160 frags
    Warning: 302144 sector(s) cannot be allocated.
    growfs: 7532.5MB (15426496 sectors) block size 16384, fragment size 2048
            using 41 cylinder groups of 183.72MB, 11758 blks, 23552 inodes.
    super-block backups (for fsck -b #) at:
     7525280, 7901536, 8277792, 8654048, 9030304, 9406560, 9782816, 10159072, 10535328, 10911584,
     11287840, 11664096, 12040352, 12416608, 12792864, 13169120, 13545376, 13921632, 14297888,
     14674144, 15050400
    
    Run Code Online (Sandbox Code Playgroud)

    并重新创建交换分区:

    [admin]:gpart add -t freebsd-swap ad0s1

    ad0s1b added
    
    Run Code Online (Sandbox Code Playgroud)

    完毕。我们的分区表现在如下所示,并且根文件系统已正确扩展以使用其完整分区:

    [admin]:gpart show

    =>      63  16777153  ad0  MBR  (8.0G)
            63  16777152    1  freebsd  [active]  (8G)
      16777215         1       - free -  (512B)
    
    =>       0  16777152  ad0s1  BSD  (8G)
             0        16         - free -  (8.0k)
            16  15728640      1  freebsd-ufs  (7.5G)
      15728656   1048496      2  freebsd-swap  (512M)
    
    Run Code Online (Sandbox Code Playgroud)

有关 FreeBSDgpartgrowfs命令的更多信息:

注意:gpart从 FreeBSD-10.0 开始,有关旧 MBR 分区方案的错误仍然存​​在。