On Thu, Nov 21, 2019 at 12:04:18PM +0100, Tomáš Golembiovský wrote:
Instead of running firstboot scripts during early boot schedule a
task
delayed for 1-2 minute.
During the first boot, after virt-v2v conversion, Windows installs the
drivers injected by virit-v2v. When this installation is finished
Windows enforces some kind of internal reboot. This unfortunately
terminates any running firstboot scritps thus killing for example the
installation of qemu-ga MSI.
Hopefully delaying the installtion to some later time can also fix
problem we sometimes saw on Windows 2012R2 when installing RHEV-APT,
where the installer terminated immediately with the error:
Failed to connect to server. Error: 0x8007045B
Signed-off-by: Tomáš Golembiovský <tgolembi(a)redhat.com>
---
mlcustomize/firstboot.ml | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/mlcustomize/firstboot.ml b/mlcustomize/firstboot.ml
index c3ebfd9..b4ca181 100644
--- a/mlcustomize/firstboot.ml
+++ b/mlcustomize/firstboot.ml
@@ -286,10 +286,18 @@ set log=%%firstboot%%\\log.txt
set scripts=%%firstboot%%\\scripts
set scripts_done=%%firstboot%%\\scripts-done
-call :main >> \"%%log%%\" 2>&1
+call :main %%1 >> \"%%log%%\" 2>&1
exit /b
:main
+
+if not '%%1' == 'real' (
+ REM schedule delayed task
+ schtasks.exe /Delete /TN Firstboot /F
+ powershell.exe -command \"$d = (get-date).AddSeconds(119); schtasks.exe /Create
/SC ONCE /ST $d.ToString('HH:mm') /SD $d.ToString('MM/dd/yyyy') /RU SYSTEM
/TN Firstboot /TR \\\"%%~dpnx0 real\\\"\"
+ exit /b
+)
+
echo starting firstboot service
I have really no clue about this.
What is "~dpnx0"?
I wwill say that in general we do need a way that we can order
firstboot scripts so that some run before others. At the moment the
Windows static IP script sometimes runs before the network device is
created (see
https://bugzilla.redhat.com/1788823). I guess we could
hack that by making the sleep time above settable when registering a
firstboot script, but what we really need is some kind of dependency
system. I have no idea if Windows has a mechanism to do this already.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://people.redhat.com/~rjones/virt-df/