增加多个FreeBSD切片的大小

我有一台运行FreeBSD 9.1的KVM虚拟机,带有一个典型的单分区布局,分区为swap,/,/ tmp,/ var,/ usr。 现在我需要升级虚拟服务器,除了其他虚拟服务器,更大的硬盘。

我不想重新安装整个系统和所有服务器应用程序,所以我宁愿增加现有系统的片大小。

我已经看到,使用fdisk,disklabel和growfs来增加分区中最后一个分区的大小非常容易,通常是/ usr。 不过,我也需要增加/ var slice的大小。

root@chaos ~ % bsdlabel /dev/vtbd0s1 # /dev/vtbd0s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 1048576 0 4.2BSD 0 0 0 b: 980816 1048576 swap c: 31456593 0 unused 0 0 # "raw" part, don't edit d: 2586624 2029392 4.2BSD 0 0 0 e: 1048576 4616016 4.2BSD 0 0 0 f: 25792001 5664592 4.2BSD 0 0 0 root@chaos ~ % gpart show -l vtbd0 => 63 31457217 vtbd0 MBR (15G) 63 31456593 1 (null) [active] (15G) 31456656 624 - free - (312k) root@chaos ~ % df -h Filesystem Size Used Avail Capacity Mounted on /dev/vtbd0s1a 495M 215M 240M 47% / devfs 1.0k 1.0k 0B 100% /dev /dev/vtbd0s1e 495M 12k 456M 0% /tmp /dev/vtbd0s1f 11G 2.5G 8.5G 23% /usr /dev/vtbd0s1d 1.2G 562M 562M 50% /var 

有没有什么“最佳实践”的方法如何做到这一点?
或者,这是除了最后一个以外的所有其他切片的禁止?

PS:系统使用UFS文件系统
PPS:通过端口的virtio驱动程序的磁盘I / O

夫妇的想法:

  • 没有办法将BSD Slice扩展到磁盘上的两个物理位置(磁盘上的新空间只在最后,不在末端的Slice不能扩展到新的空间)。 我不知道可以移动切片的工具,但如果不存在,我会感到惊讶。

  • 不需要 var在一个单独的分区。 笨重的旧安装程序将始终为您提供传统的分区布局,这与安装程序一样陈旧。 出于这些确切原因,我很less将文件系统分配给像安装程序那样的难以pipe理的块。

    实际上,您可以从/etc/fstab删除/ var的行,系统将在下一次重新启动根层面时重新创buildvar层次结构。 机会是你的根分区也是微小的,但又是一个安装程序默认。 这应该只是工作 ,但我已经看到应用程序软件扔在/var的文件被扔掉时适合。

  • 如果当前的var分片很小,那么在整个切片中抛出并在新的空闲空间中创build一个新切片可能会更容易。 应该有很多方向,但是如果你需要更多的细节,我可以填写空白。

  • 如果你的磁盘布局真的被弄坏了,那么通常只需要简单地把它放到单一模式下,创build一个乱七八糟的tar,然后重新创build分区/标签(使用启动CD或类似的东西),然后从tar中恢复。 我去过几次了。 在虚拟机上更容易,因为您通常可以挂载一个全新的vmdk / vhd / whatever,分区/分片/布局,放到单一模式,并使用双重tarpipe来复制系统,而不必占用现有的驱动器(方便如果你哎呀过程)。

  • 更新 – 你已经有了一个基本上未使用的var切片。 你可以卸载,删除/tmp文件夹,将其链接到var( ln -s /var/tmp /tmp ),删除tmp和var片,在该空间创build一个新的var片,重新安装,Bob是你的叔叔。