Using FOG to install VMware Mirage client
-
Sorry if this is the incorrect place to post this question but here is the backstory. I am currently using FOG to manage our intern laptops which use a Lubuntu desktop to connect to our virtual desktop infrastructure and it works great for that. I am trying to integrate our current windows 7 deployment with Mirage into FOG so that we can manage physical laptops all from one source instead of two. I have the Mirage winPE image built and working from a usb stick but would like to be able to boot to it from the FOG menu. I followed the instructions on the wiki ( https://wiki.fogproject.org/wiki/index.php?title=Include_any_ISO_in_the_FOG_Bootmenu ) to add the iso to the FOG menu but I get the following error (https://drive.google.com/file/d/1suXUBxdqFHop8WWsPYrGSFIELG7Hw0c5bg/view?usp=sharing) when I attempt to boot from it. Any help or a point in the right direction would be greatly appreciated.
edit - forgot this might be helpful also here is a my boot.php config
#!ipxe set fog-ip x.x.x.x set fog-webroot fog set boot-url http://${fog-ip}/${fog-webroot} cpuid --ext 29 && set arch x86_64 || set arch i386 goto get_console :console_set colour --rgb 0x00567a 1 || colour --rgb 0x00567a 2 || colour --rgb 0x00567a 4 || cpair --foreground 7 --background 2 2 || goto MENU :alt_console cpair --background 0 1 || cpair --background 1 2 || goto MENU :get_console console --picture http://x.x.x.x/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console :MENU menu colour --rgb 0xff0000 0 || cpair --foreground 1 1 || cpair --foreground 0 3 || cpair --foreground 4 4 || item --gap Host is NOT registered! item --gap -- ------------------------------------- item fog.local Boot from hard disk item fog.memtest Run Memtest86+ item fog.reginput Perform Full Host Registration and Inventory item fog.reg Quick Registration and Inventory item fog.deployimage Deploy Image item fog.multijoin Join Multicast Session item fog.sysinfo Client System Information (Compatibility) item Mirage Mirage WinPE x64 choose --default fog.local --timeout 3000 target && goto ${target} :fog.local sanboot --no-describe --drive 0x80 || goto MENU kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 imgfetch init_32.xz boot || goto MENU :fog.memtest kernel memdisk iso raw initrd memtest.bin boot || goto MENU kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 imgfetch init_32.xz boot || goto MENU :fog.reginput kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=manreg imgfetch init_32.xz boot || goto MENU :fog.reg kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=autoreg imgfetch init_32.xz boot || goto MENU :fog.deployimage login params param mac0 ${net0/mac} param arch ${arch} param username ${username} param password ${password} param qihost 1 isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme :fog.multijoin login params param mac0 ${net0/mac} param arch ${arch} param username ${username} param password ${password} param sessionJoin 1 isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme :fog.sysinfo kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=sysinfo imgfetch init_32.xz boot || goto MENU :Mirage :MIRAGE kernel ${boot_url}/mirage/sources/boot.wim boot :bootme chain -ar http://x.x.x.x/fog/service/ipxe/boot.php##params || goto MENU autoboot```
-
@Wayne-Workman thanks for the reply. I stumbled upon that documentation yesterday right before l left the office, and that was my problem. I needed to use initrd to boot the wim file. I am going to upload my fixed and working boot.php for anybody else that might have this problem or setup. Thanks for the help.
Also I intentionally removed my ip addresses and replaced them with x’s (im slightly paranoid).
#!ipxe set fog-ip x.x.x.x set fog-webroot fog set boot-url http://${fog-ip}/${fog-webroot} cpuid --ext 29 && set arch x86_64 || set arch i386 goto get_console :console_set colour --rgb 0x00567a 1 || colour --rgb 0x00567a 2 || colour --rgb 0x00567a 4 || cpair --foreground 7 --background 2 2 || goto MENU :alt_console cpair --background 0 1 || cpair --background 1 2 || goto MENU :get_console console --picture http://x.x.x.x/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console :MENU menu colour --rgb 0xff0000 0 || cpair --foreground 1 1 || cpair --foreground 0 3 || cpair --foreground 4 4 || item --gap Host is NOT registered! item --gap -- ------------------------------------- item fog.local Boot from hard disk item fog.memtest Run Memtest86+ item fog.reginput Perform Full Host Registration and Inventory item fog.reg Quick Registration and Inventory item fog.deployimage Deploy Image item fog.multijoin Join Multicast Session item fog.sysinfo Client System Information (Compatibility) item Mirage Mirage WinPE x64 choose --default fog.local --timeout 3000 target && goto ${target} :fog.local sanboot --no-describe --drive 0x80 || goto MENU kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 imgfetch init_32.xz boot || goto MENU :fog.memtest kernel memdisk iso raw initrd memtest.bin boot || goto MENU kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 imgfetch init_32.xz boot || goto MENU :fog.reginput kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=manreg imgfetch init_32.xz boot || goto MENU :fog.reg kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=autoreg imgfetch init_32.xz boot || goto MENU :fog.deployimage login params param mac0 ${net0/mac} param arch ${arch} param username ${username} param password ${password} param qihost 1 isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme :fog.multijoin login params param mac0 ${net0/mac} param arch ${arch} param username ${username} param password ${password} param sessionJoin 1 isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme :fog.sysinfo kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=sysinfo imgfetch init_32.xz boot || goto MENU :Mirage :MIRAGE kernel ${boot_url}/Mirage_WinPE_x64/wimboot initrd ${boot_url}/Mirage_WinPE_x64/BOOT/BCD BCD initrd ${boot_url}/Mirage_WinPE_x64/BOOT/BOOT.SDI BOOT.SDI initrd ${boot_url}/Mirage_WinPE_x64/SOURCES/BOOT.WIM BOOT.WIM boot :bootme chain -ar http://x.x.x.x/fog/service/ipxe/boot.php##params || goto MENU autoboot```
-
-
What version of FOG?
-
Make sure the files you placed on your FOG server are actually accessible via http. In your web browser open a new tab, try to go to this address, where x.x.x.x is your fog server’s IP address:
x.x.x.x/mirage/sources
If you get permission denied, ensure apache has access to the files. For me to help you with that, I need to know exactly what OS the fog server is running. -
Briefly reading over the ipxe article about boot.wim files, it looks like you should be using
initrd
instead ofkernel
for the line specifying the .wim file. See this as a reference:
http://ipxe.org/wimboot
-
-
@Wayne-Workman thanks for the reply. I stumbled upon that documentation yesterday right before l left the office, and that was my problem. I needed to use initrd to boot the wim file. I am going to upload my fixed and working boot.php for anybody else that might have this problem or setup. Thanks for the help.
Also I intentionally removed my ip addresses and replaced them with x’s (im slightly paranoid).
#!ipxe set fog-ip x.x.x.x set fog-webroot fog set boot-url http://${fog-ip}/${fog-webroot} cpuid --ext 29 && set arch x86_64 || set arch i386 goto get_console :console_set colour --rgb 0x00567a 1 || colour --rgb 0x00567a 2 || colour --rgb 0x00567a 4 || cpair --foreground 7 --background 2 2 || goto MENU :alt_console cpair --background 0 1 || cpair --background 1 2 || goto MENU :get_console console --picture http://x.x.x.x/fog/service/ipxe/bg.png --left 100 --right 80 && goto console_set || goto alt_console :MENU menu colour --rgb 0xff0000 0 || cpair --foreground 1 1 || cpair --foreground 0 3 || cpair --foreground 4 4 || item --gap Host is NOT registered! item --gap -- ------------------------------------- item fog.local Boot from hard disk item fog.memtest Run Memtest86+ item fog.reginput Perform Full Host Registration and Inventory item fog.reg Quick Registration and Inventory item fog.deployimage Deploy Image item fog.multijoin Join Multicast Session item fog.sysinfo Client System Information (Compatibility) item Mirage Mirage WinPE x64 choose --default fog.local --timeout 3000 target && goto ${target} :fog.local sanboot --no-describe --drive 0x80 || goto MENU kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 imgfetch init_32.xz boot || goto MENU :fog.memtest kernel memdisk iso raw initrd memtest.bin boot || goto MENU kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 imgfetch init_32.xz boot || goto MENU :fog.reginput kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=manreg imgfetch init_32.xz boot || goto MENU :fog.reg kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=autoreg imgfetch init_32.xz boot || goto MENU :fog.deployimage login params param mac0 ${net0/mac} param arch ${arch} param username ${username} param password ${password} param qihost 1 isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme :fog.multijoin login params param mac0 ${net0/mac} param arch ${arch} param username ${username} param password ${password} param sessionJoin 1 isset ${net1/mac} && param mac1 ${net1/mac} || goto bootme isset ${net2/mac} && param mac2 ${net2/mac} || goto bootme :fog.sysinfo kernel bzImage32 loglevel=4 initrd=init_32.xz root=/dev/ram0 rw ramdisk_size=127000 web=x.x.x.x/fog/ consoleblank=0 rootfstype=ext4 loglevel=4 mode=sysinfo imgfetch init_32.xz boot || goto MENU :Mirage :MIRAGE kernel ${boot_url}/Mirage_WinPE_x64/wimboot initrd ${boot_url}/Mirage_WinPE_x64/BOOT/BCD BCD initrd ${boot_url}/Mirage_WinPE_x64/BOOT/BOOT.SDI BOOT.SDI initrd ${boot_url}/Mirage_WinPE_x64/SOURCES/BOOT.WIM BOOT.WIM boot :bootme chain -ar http://x.x.x.x/fog/service/ipxe/boot.php##params || goto MENU autoboot```
-
While its a bit of a moot point now. There is a tutorial on pxe booting the MDT wim image: https://forums.fogproject.org/topic/6284/booting-mdt-2013-litetouch-with-fog/6