cloudbase / cloudbase-init

Cross-platform instance initialization
http://openstack.org
Apache License 2.0
414 stars 150 forks source link

extend volum failed on windows10 #71

Open alaludan opened 3 years ago

alaludan commented 3 years ago

Dear Experts: I was created windows10.qcow2 and install cloudinit-base on windows10_x64.iso

windows10 version:latest 2021-05. virtio version:virtio-win-0.1.196.iso

cloudbase-init version:CloudbaseInitSetup_1_1_2_x64

cloudbase-init.conf [DEFAULT] username=jenkins groups=Administrators inject_user_password=false config_drive_raw_hhd=true config_drive_cdrom=true config_drive_vfat=true bsdtar_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\bsdtar.exe mtools_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\bin\ verbose=true debug=true logdir=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\log\ logfile=cloudbase-init.log default_log_levels=comtypes=INFO,suds=INFO,iso8601=WARN,requests=WARN logging_serial_port_settings=COM1,115200,N,8 mtu_use_dhcp_config=true ntp_use_dhcp_config=true local_scripts_path=C:\Program Files\Cloudbase Solutions\Cloudbase-Init\LocalScripts\ check_latest_version=true

But when boot on openstack return as below error: 2021-07-12 07:56:02.477 2564 INFO cloudbaseinit.init [-] Executing plugin 'SetUserSSHPublicKeysPlugin' 2021-07-12 07:56:02.477 2564 DEBUG cloudbaseinit.metadata.services.base [-] Using cached copy of metadata: 'openstack/latest/meta_data.json' _get_cache_data C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\metadata\services\base.py:74 2021-07-12 07:56:02.493 2564 DEBUG cloudbaseinit.plugins.common.sshpublickeys [-] Public keys not found in metadata execute C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\plugins\common\sshpublickeys.py:34 2021-07-12 07:56:02.493 2564 INFO cloudbaseinit.init [-] Executing plugin 'ExtendVolumesPlugin' 2021-07-12 07:56:02.508 2564 DEBUG cloudbaseinit.utils.classloader [-] Loading class 'cloudbaseinit.osutils.windows.WindowsUtils' load_class C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\utils\classloader.py:27 2021-07-12 07:56:02.524 2564 DEBUG cloudbaseinit.utils.classloader [-] Loading class 'cloudbaseinit.utils.windows.storage.vds_storage_manager.VDSStorageManager' load_class C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\utils\classloader.py:27 2021-07-12 07:56:06.712 2564 INFO cloudbaseinit.utils.windows.storage.vds_storage_manager [-] Extending volume "\?\GLOBALROOT\Device\HarddiskVolume2" with 351232 bytes 2021-07-12 07:56:06.727 2564 ERROR cloudbaseinit.init [-] plugin 'ExtendVolumesPlugin' failed with error '(-2147212237, None, (None, None, None, 0, None))': _ctypes.COMError: (-2147212237, None, (None, None, None, 0, None)) 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init [-] (-2147212237, None, (None, None, None, 0, None)): _ctypes.COMError: (-2147212237, None, (None, None, None, 0, None)) 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init Traceback (most recent call last): 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\init.py", line 67, in _exec_plugin 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init shared_data) 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\plugins\windows\extendvolumes.py", line 30, in execute 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init storage_manager.extend_volumes(volumes_indexes) 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\utils\windows\storage\vds_storage_manager.py", line 147, in extend_volumes 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init self._extend_volumes(pack, volume_indexes) 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\utils\windows\storage\vds_storage_manager.py", line 63, in _extend_volumes 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init self._extend_volume(pack, volume, volume_prop) 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init File "C:\Program Files\Cloudbase Solutions\Cloudbase-Init\Python\lib\site-packages\cloudbaseinit\utils\windows\storage\vds_storage_manager.py", line 94, in _extend_volume 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init extend_job = volume.Extend(input_disks_ar, len(input_disks)) 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init _ctypes.COMError: (-2147212237, None, (None, None, None, 0, None)) 2021-07-12 07:56:06.742 2564 ERROR cloudbaseinit.init

dvo-rak commented 3 years ago

Isn't Recovery Partition blocking the space between your C and free space?

Currently solving the same issue

alaludan commented 3 years ago

Ok. I got it. Thanks I found the space was extand. But in the free space area. Not add the space into C partition.

ader1990 commented 2 years ago

Hello,

This error is also present when using the diskmgmt user interface. The API that returns the maximum extend size has an issue and sometimes returns a small number (usually hundreds of KB), altough the extend size is zero.

I have made a patch so that cloudbase-init continues with the next volume increase in this context. https://review.opendev.org/c/x/cloudbase-init/+/814417

I will keep you updated when the patch is merged.