扩大...就地增加虚拟磁盘

您必须定期操作KVM guest虚拟机的虚拟磁盘。

但是由于不必经常执行此操作,因此每次您都必须重写RTFM时,我就这样写了。

今天,我使用CentOS 7主机增加了Windows guest虚拟机的NTFS磁盘,因此下面是直播。



我们将手动执行所有操作-无需鼠标和其他即插即用功能。



在操作之前,必须非常仔细地进行所有操作,对目标磁盘进行备份(如果可能;我今天做了)或祈祷良好(如果没有空间;上一次是这种情况)。

对于工作,您将需要:

  • dd(coreutils)

  • fdisk(util-linux)

  • kpartx(kpartx)

  • ntfsresize(ntfsprogs)

我们将“磁盘” ws_e.img从64 KGB增加到16 KGB(最大80 KGB)。

注意:1 KGB(kakbygigabyte)= 1008 MB(由于历史原因为63的倍数),嗯,这在我中间是接受的,不一定要考虑在内。

1.扩大磁盘

首先,让我们扩展实际的磁盘。

它是:

[root@ext images]# ls -l ws_e.img 
-rw-r--r-- 1 root root 67645734912  25 14:31 ws_e.img

操作方式:

[root@ext images]# dd if=/dev/zero of=ws_e.img bs=1008M count=16 oflag=append conv=notrunc
16+0  
16+0  
  16911433728  (17 GB), 69,638 c, 243 MB/c

或更灵活的选择(我自己还没有尝试过):

fallocate -i -l 16128M -o 64512M ws_e.img

成为:

[root@ext images]# ls -l ws_e.img 
-rw-r--r-- 1 root root 84557168640  25 14:54 ws_e.img

注意:在铁盘之间传输数据时,该位置应类似于dd if=/dev/sdb of=/dev/sdc

2.扩大分区

man ntfsresize:

To enlarge an NTFS filesystem, first you must enlarge the size of the underlying partition. This can be done using fdisk(8) by deleting the partition and recreating it with a larger size.

:
[root@ext images]# fdisk ws_e.img 
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


 (m  ): p

Disk ws_e.img: 84.6 GB, 84557168640 bytes, 165150720 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc617554d

-                       Id  
ws_e.img1            2048   132116479    66057216    7  HPFS/NTFS/exFAT

 (m  ): d
Selected partition 1
Partition 1 is deleted

 (m  ): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
  (1-4, default 1): 
 sector (2048-165150719,   2048): 
    2048
Last sector, +sectors or +size{K,M,G} (2048-165150719,   165150719): 
    165150719
Partition 1 of type Linux and of size 78,8 GiB is set

 (m  ): t
Selected partition 1
Hex code (type L to list all codes): 7
Changed type of partition 'Linux' to 'HPFS/NTFS/exFAT'

 (m  ): p

Disk ws_e.img: 84.6 GB, 84557168640 bytes, 165150720 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc617554d

-                       Id  
ws_e.img1            2048   165150719    82574336    7  HPFS/NTFS/exFAT

 (m  ): w
   !

 .

.. fdisk , .

3. Enlarge your FS

, . ext? resize2fs ( ), NTFS - ntfsresize.

.. ntfsresize --, "":

[root@ext images]# kpartx -av ws_e.img 
add map loop0p1 (253:0): 0 165148672 linear /dev/loop0 2048

:

[root@ext images]# fdisk -l /dev/loop0
...
-                       Id  
/dev/loop0p1            2048   165150719    82574336    7  HPFS/NTFS/exFAT
[root@ext images]# ls /dev/mapper
control  loop0p1

enlarge:

[root@ext images]# ntfsresize /dev/mapper/loop0p1
ntfsresize v2017.3.23 (libntfs-3g)
Device name        : /dev/mapper/loop0p1
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 67642585600 bytes (67643 MB)
Current device size: 84556120064 bytes (84557 MB)
New volume size    : 84556116480 bytes (84557 MB)
Checking filesystem consistency ...
100.00 percent completed
Accounting clusters ...
Space in use       : 64255 MB (95,0%)
Collecting resizing constraints ...
WARNING: Every sanity check passed and only the dangerous operations left.
Make sure that important data has been backed up! Power outage or computer
crash may result major data loss!
Are you sure you want to proceed (y/[n])? y
Schedule chkdsk for NTFS consistency check at Windows boot time ...
Resetting $LogFile ... (this might take a while)
Updating $BadClust file ...
Updating $Bitmap file ...
Updating Boot record ...
Syncing device ...
Successfully resized NTFS on device '/dev/mapper/loop0p1'.

(Note: ( - 5- ), .)

:

[root@ext images]# kpartx -dv /dev/loop0
del devmap : loop0p1

好,飞:

[root@ext images]# virsh start win2k8r2
 win2k8r2   

聚苯乙烯

  • 可以使用Windows本身(磁盘管理-扩展卷)来执行操作3(甚至可能是2),但是a)它不适用于系统磁盘,并且b)本文无关。

  • 收缩虚拟磁盘的顺序相反(FS→分区→磁盘),但要引起更多注意。

  • 大多数操作适用于铁盘之间的传输。




All Articles