X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=resize%2Fvirt-resize.pod;h=9ee9c6f6e20e3f4503ebbe10f273d06cbf277415;hb=6032da66819b7ccf99001ba636926100f475cb89;hp=8ae4894f59cb9800dd71ad94214e891da929fd70;hpb=37cdd39ada139956f237b55c87c095bed622b5e3;p=libguestfs.git diff --git a/resize/virt-resize.pod b/resize/virt-resize.pod index 8ae4894..9ee9c6f 100644 --- a/resize/virt-resize.pod +++ b/resize/virt-resize.pod @@ -238,6 +238,27 @@ Similarly, to get non-sparse raw output use: (on older systems that don't have the L command use C
) +=head2 LOGICAL PARTITIONS + +Logical partitions (a.k.a. C on disks using DOS partition +tables) cannot be resized. + +To understand what is going on, firstly one of the four partitions +C will have MBR partition type C<05> or C<0f>. This is +called the B. Use L to see +the MBR partition type. + +Logical partitions live inside the extended partition. + +The extended partition can be expanded, but not shrunk (unless you +force it, which is not advisable). When the extended partition is +copied across, all the logical partitions contained inside are copied +over implicitly. Virt-resize does not look inside the extended +partition, so it copies the logical partitions blindly. + +You cannot specify a logical partition (C) at all on the +command line. Doing so will give an error. + =head1 OPTIONS =over 4 @@ -246,6 +267,28 @@ C
) Display help. +=item B<--align-first auto> + +=item B<--align-first never> + +=item B<--align-first always> + +Align the first partition for improved performance (see also the +I<--alignment> option). + +The default is I<--align-first auto> which only aligns the first +partition if it is safe to do so. That is, only when we know how to +fix the bootloader automatically, and at the moment that can only be +done for Windows guests. + +I<--align-first never> means we never move the first partition. +This is the safest option. Try this if the guest does not boot +after resizing. + +I<--align-first always> means we always align the first partition (if +it needs to be aligned). For some guests this will break the +bootloader, making the guest unbootable. + =item B<--alignment N> Set the alignment of partitions to C sectors. The default in @@ -286,6 +329,12 @@ since around 2008. Enable debugging messages. +=item B<--debug-gc> + +Debug garbage collection and memory allocation. This is only useful +when debugging memory problems in virt-resize or the OCaml libguestfs +bindings. + =item B<--delete part> Delete the named partition. It would be more accurate to describe @@ -590,10 +639,10 @@ not required by any modern operating system. In Windows Vista and later versions, Microsoft switched to using a separate boot partition. In these VMs, typically C is the -boot partition and C is the main (C:) drive. We have not -had any luck resizing the boot partition. Doing so seems to break the -guest completely. However expanding the second partition (ie. C: -drive) should work. +boot partition and C is the main (C:) drive. Resizing the +first (boot) partition causes the bootloader to fail with +C<0xC0000225> error. Resizing the second partition (ie. C: drive) +should work. Windows may initiate a lengthy "chkdsk" on first boot after a resize, if NTFS partitions have been expanded. This is just a safety check @@ -602,9 +651,7 @@ and (unless it find errors) is nothing to worry about. =head2 GUEST BOOT STUCK AT "GRUB" If a Linux guest does not boot after resizing, and the boot is stuck -after printing C on the console, try reinstalling grub. This -sometimes happens on older (RHEL 5-era) guests, for reasons we don't -fully understand, although we think is to do with partition alignment. +after printing C on the console, try reinstalling grub. guestfish -i -a newdisk > cat /boot/grub/device.map @@ -687,4 +734,4 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.