OZ customize windows iamge

1、之前通过修改auto文件和windows.py文件可实现自动安装OS,但是disk bus只能以IDE模式启动,进入系统自动下载运行bat文件,安装cloudbase-init和qga,及清理日志等操作

2、winodws2008.tdl无法定义file注入系统

3、通过Oz官方社区了解到,之前有人奉献过部分代码但是未合并,按照官方社区修改代码,测试报错

参考链接:https://github.com/clalancette/oz/pull/54/commits

4、找到Oz的windows的branch,代码比较老,2011年的。在物理机上搭建virtualenv测试,缺少各种包的依赖。

按照提示按照各种依赖包,再进行测试报console port和key的问题,修改windows.py和Guest.py部分代码,修改disk bus在hd模式下为virtio启动。

现在能够跑起来,但是卡在应答文件这块。修改windows2008.atuo也无济于事。

附上安装输出的日志

(oz-w2k8)[root@10e131e69e14 oz-win2k8customize]# oz-install -p -u -d3  win2008.tdl
libvirt bridge name is virbr0, host_bridge_ip is 192.168.122.1
Name: Windows-gushiren-2, UUID: 717e7faa-5e5a-4ffa-b886-c4bfbf6771fd
MAC: 52:54:00:98:d0:80, distro: Windows
update: 2008, arch: x86_64, diskimage: /data/nvme0n1/oz/images/Windows-gushiren-2.dsk
nicmodel: rtl8139, clockoffset: localtime
mousetype: usb, disk_bus: virtio, disk_dev: hda
icicletmp: /var/lib/oz/icicletmp/Windows-gushiren-2, listen_port: 14028
Original ISO path: /var/lib/oz/isos/Windows2008x86_64-iso.iso
Modified ISO cache: /var/lib/oz/isos/Windows2008x86_64-iso-oz.iso
Output ISO path: /data/nvme0n1/oz/images/Windows-gushiren-2-iso-oz.iso
ISO content path: /var/lib/oz/isocontent/Windows-gushiren-2-iso
Cleaning up guest named Windows-gushiren-2
Generating install media
Fetching the original media
Original install media available, using cached version
Copying ISO contents for modification
Setting up guestfs handle for Windows-gushiren-2
Adding ISO image /var/lib/oz/isos/Windows2008x86_64-iso.iso
Launching guestfs
Mounting ISO
Checking if there is enough space on the filesystem
Extracting ISO contents
Modifying ISO
/data/nvme0n1/oz-w2k8/lib/python2.7/site-packages/oz/Guest.py:969: RuntimeWarning: overflow encountered in ushort_scalars
  s = numpy.uint16(numpy.uint16(s) + numpy.uint16(w))
Generating new ISO
Cleaning up old ISO data
Generating 10GB diskimage for Windows-gushiren-2
Running install for Windows-gushiren-2
Generate XML for guest Windows-gushiren-2 with bootdev cdrom
Generated XML:
<?xml version="1.0"?>
<domain type="kvm">
  <name>Windows-gushiren-2</name>
  <memory>1048576</memory>
  <currentMemory>1048576</currentMemory>
  <uuid>717e7faa-5e5a-4ffa-b886-c4bfbf6771fd</uuid>
  <clock offset="localtime"/>
  <vcpu>1</vcpu>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <os>
    <type>hvm</type>
    <boot dev="cdrom"/>
  </os>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>destroy</on_reboot>
  <on_crash>destroy</on_crash>
  <devices>
    <graphics port="-1" type="vnc" listen="0.0.0.0"/>
    <interface type="bridge">
      <source bridge="virbr0"/>
      <mac address="52:54:00:98:d0:80"/>
      <model type="virtio"/>
    </interface>
    <input type="tablet" bus="usb"/>
    <console type="pty">
      <target port="0"/>
    </console>
    <disk device="disk" type="file">
      <target dev="hda" bus="virtio"/>
      <source file="/data/nvme0n1/oz/images/Windows-gushiren-2.dsk"/>
    </disk>
    <disk type="file" device="cdrom">
      <source file="/data/nvme0n1/oz/images/Windows-gushiren-2-iso-oz.iso"/>
      <target dev="hdc"/>
    </disk>
  </devices>
</domain>
 
Waiting for Windows-gushiren-2 to finish installing, 6000/6000
Waiting for Windows-gushiren-2 to finish installing, 5990/6000
Waiting for Windows-gushiren-2 to finish installing, 5980/6000
Waiting for Windows-gushiren-2 to finish installing, 5970/6000
Waiting for Windows-gushiren-2 to finish installing, 5960/6000
Waiting for Windows-gushiren-2 to finish installing, 5950/6000
Waiting for Windows-gushiren-2 to finish installing, 5940/6000
^CCleaning up guest named Windows-gushiren-2
Cleaning up after install
Removing modified ISO
^CTraceback (most recent call last):
  File "/data/nvme0n1/oz-w2k8/bin/oz-install", line 140, in <module>
    guest.cleanup_install();
  File "/data/nvme0n1/oz-w2k8/lib/python2.7/site-packages/oz/Guest.py", line 1084, in cleanup_install
    os.unlink(self.output_iso)
KeyboardInterrupt

https://github.com/clalancette/oz/tree/win2k8customize

原文地址:https://www.cnblogs.com/gushiren/p/9512104.html