ESX / ESXi Bios Tools

Discussion in 'Virtualization' started by pix, Nov 22, 2009.

  1. blaloc

    blaloc MDL Novice

    Mar 22, 2016
    8
    15
    0
    Just worked on the same problem an found a solution:

    you don't need to unpack s.v00, because ESXi makes that for you and shows the unpacked vmtar in /tardisks
    so all you have to do ist copy /tardisks/s.v00 to /vmfs/volumes/{datastore}/s.tar and convert it into a "normal" tar with vmtar (vmtar -x s.tar -o output.tar)
    the rest ist like in older ESXi-Versions, the only thing ist, you must not pack it with xz, but it also works if you just make a tar.gz like in ESXi 5.5 or 6.0
    my first test did work, so i am happy :clap:
     
  2. Turbotim

    Turbotim MDL Novice

    Nov 8, 2016
    21
    0
    0
    Hi Blaloc,
    Please would you be able to post step by step right from the begining everything you did.

    Thanks
     
  3. blaloc

    blaloc MDL Novice

    Mar 22, 2016
    8
    15
    0
    ok, so here's the whole procedure:
    1. Enable SSH on your ESXi
    2. Connect with Putty
    3. Paste the following commands into your Putty:

    cp /tardisks/s.v00 /vmfs/volumes/datastore1/s.tar
    cd /vmfs/volumes/datastore1/
    vmtar -x s.tar -o output.tar
    rm s.tar
    mkdir tmp
    mv output.tar tmp/output.tar
    cd tmp
    tar xf output.tar
    rm output.tar

    4. connect with Filezilla or WinSCP to your ESXi
    5. copy "/vmfs/volumes/datastore1/tmp/bin/vmx" to Windows-Machine
    6. inject new BIOS440.rom into vmx with ESXiBIOSTOOL
    7. upload modded vmx to ESXi (same path where you downloaded it!)
    8. paste following commands into Putty:

    tar -cf /vmfs/volumes/datastore1/FILE.tar *
    cd ..
    vmtar -c FILE.tar -o s.vtar
    mv s.vtar s.tar
    xz -z s.tar
    gzip s.tar.xz
    mv s.tar.xz.gz s.v00
    rm FILE.tar

    9. copy your new s.v00 to bootbank:

    cp /vmfs/volumes/datastore1/s.v00 /bootbank/s.v00

    REBOOT ESXi
    DONE!
     
  4. Turbotim

    Turbotim MDL Novice

    Nov 8, 2016
    21
    0
    0
    Thank you Blaloc, truely appreciated, I will try this today.:worthy:
     
  5. Math3s

    Math3s MDL Novice

    Oct 6, 2009
    10
    1
    0
    #385 Math3s, Jan 30, 2017
    Last edited by a moderator: Apr 20, 2017
    Hi blaloc, thank you for step-by-step manual, but it didn't work for me.

    Everything to injecting BIOS was fine, but I think this command:
    Code:
    tar -cf /vmfs/volumes/datastore1/FILE.tar *
    should be:
    Code:
    tar -cf /vmfs/volumes/datastore1/tmp/FILE.tar *
    To create FILE.tar with subfolders/files under "tmp" folder

    And when I pasted vmtar -c FILE.tar -o s.vtar
    got:
    not a valid exec file
    not a valid exec file
    not a valid exec file
    not a valid exec file
    not a valid exec file

    All next commands went fine, I uploaded s.v00 to /bootbank but after reboot I got PSOD. I had backup, so ESXi is working fine for me now.

    Can you please upload your already modded "s.v00" file?

    Thank you.
     
  6. blaloc

    blaloc MDL Novice

    Mar 22, 2016
    8
    15
    0
    #386 blaloc, Jan 31, 2017
    Last edited by a moderator: Apr 20, 2017
    well, no, because i don't want the tar to be in the tmp-folder, for the scenario when the tmp-folder is used again just by uploading a new vmx... when pasting the command, it is only important do be in directory /vmfs/volumes/datastore1/tmp, but not where the tar is created
    after this command the next one is "cd.."
    i think in fact it doesn't really matter

    yes, i remember that i also had this message, but i ignored it...

    well, thats bad, i think something must have gone wrong... :g:
    i tested the whole procedure many times on older ESXi-Versions (5.0, 5.5, 6.0), always first in a VM (yes you can install ESXi in a VM!!) before putting the s.v00 in my life systems
    the only difference now ist the first command sequence (3.) where s.v00 is extracted
    backup the system before doing such changes is always a good idea, an i highly recommend testing it on an uncritical system like in a VM extra installed for testing - snapshots are a very good thing... :biggrin:

    well... if you post the BIOS440.rom, you want to inject...
     
  7. Math3s

    Math3s MDL Novice

    Oct 6, 2009
    10
    1
    0
    #387 Math3s, Feb 1, 2017
    Last edited by a moderator: Apr 20, 2017
  8. blaloc

    blaloc MDL Novice

    Mar 22, 2016
    8
    15
    0
    oh dammit......
    sorry, my fault... first i tell you, you must not xz-compress the fiel , then i post the wrong command-sequence, where xz is still included... (from my testing..)

    so here's the right way:

    tar -cf /vmfs/volumes/datastore1/FILE.tar *
    cd ..
    vmtar -c FILE.tar -o output.vtar
    gzip output.vtar
    mv output.vtar.gz s.v00
    rm FILE.tar

    @Math3s:
    BUT... i saw your BIOS440.rom is way old.... i assert you should build a newer one using the orignal version from ESXi 6.5
     
  9. blaloc

    blaloc MDL Novice

    Mar 22, 2016
    8
    15
    0
    #389 blaloc, Feb 1, 2017
    Last edited by a moderator: Apr 20, 2017
  10. Math3s

    Math3s MDL Novice

    Oct 6, 2009
    10
    1
    0
    Have no idea how to mod original BIOS.

    I tried to download modded BIOSes "vmware bios mega pack 397", injected DELL BIOS and uploaded to bootbank, ESXi booted up without any problem but got error message when starting VMs, something like:
    Check if ESXi is installed properly and you have permissions to start VMs......

    After that I uploaded s.v00 modded by you and it is working like a charm :)

    So again, thank you :cool:
     
  11. blaloc

    blaloc MDL Novice

    Mar 22, 2016
    8
    15
    0
    #391 blaloc, Feb 1, 2017
    Last edited by a moderator: Feb 1, 2017
  12. blaloc

    blaloc MDL Novice

    Mar 22, 2016
    8
    15
    0
    i don't know which BIOS versions they have included, but the file date was from 2013... :g:
    i don't remember if VMWare included EFI function already with ESXi 5.5 or with 6.0, but if you want to have latest functions/bug fixes/blablabla, the latest BIOS is the best to use
     
  13. Tito

    Tito Super Mod / Adviser
    Staff Member

    Nov 30, 2009
    18,682
    18,581
    340
  14. 3sidedcube

    3sidedcube MDL Member

    Oct 1, 2009
    166
    24
    10
    ESXI is a bitch I need to manually build an image for my Motherboard which i cannot be arsed with also I wanted to use seabios or coreboot but again have to manually do that as well ... would take to long to research and the solution I have atm is win 7 with VMware better than M$'s hypervisor on sever which is the biggest pile of bobbins I have come across tryed it on sever 2008 R2 with win 7 on hyper .... what a nightmare that was M$ have a lot to learn from VMware.
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  15. Turbotim

    Turbotim MDL Novice

    Nov 8, 2016
    21
    0
    0
    Thanks Blaloc, after changing the sequence to match the above, this worked perfectly for me on three of my servers.
     
  16. ttmax

    ttmax MDL Member

    Oct 27, 2009
    168
    44
    10

    Your proc worked fine for me, but I did light modifications to limit thin device Datastore expansion:

    tar -cf /vmfs/volumes/datastore1/FILE.tar *
    cd ..
    rm -r tmp
    vmtar -c FILE.tar -o output.vtar
    rm FILE.tar
    gzip output.vtar
    mv output.vtar.gz s.v00

    9. copy your new s.v00 to bootbank:

    mv /vmfs/volumes/datastore1/s.v00 /bootbank/s.v00
     
  17. Turbotim

    Turbotim MDL Novice

    Nov 8, 2016
    21
    0
    0
    Hi Gents,
    I seem to have a problem implementing this on ESXi Version 6.5.0 Build 4564106 and ESXi Version 6.5.0 Build 5310538.

    I carried out the following:

    1. Enable SSH on ESXi
    2. Connect with Putty
    3. Paste the following commands into Putty:

    cp /tardisks/s.v00 /vmfs/volumes/datastore1/s.tar
    cd /vmfs/volumes/datastore1/
    vmtar -x s.tar -o output.tar
    rm s.tar
    mkdir tmp
    mv output.tar tmp/output.tar
    cd tmp
    tar xf output.tar
    rm output.tar

    4. connected with Filezilla to ESXi
    5. copied "/vmfs/volumes/datastore1/tmp/bin/vmx" to my local Windows PC
    6. injected new BIOS440.rom into vmx with ESXiBIOSTOOL 2.1.1
    7. upload modded vmx to ESXi (same path where I downloaded it)
    8. pasted the following commands into Putty:

    tar -cf /vmfs/volumes/datastore1/FILE.tar *
    cd ..
    vmtar -c FILE.tar -o output.vtar
    gzip output.vtar
    mv output.vtar.gz s.v00
    rm FILE.tar

    9. copied my new s.v00 to bootbank:

    cp /vmfs/volumes/datastore1/s.v00 /bootbank/s.v00

    REBOOTED ESXi

    Unfortunately in each case ESXi would not boot correctly, the error message displayed is "The system has found an error on your machine and cannot continue. Could not load boot modules: failure"

    Anyone manage to get this working please, any advice appreciated.

    Thanks
     
  18. mosipd

    mosipd MDL Novice

    Sep 10, 2011
    3
    4
    0
    Just a heads up for anyone receiving an error about not being able to load boot modules or not enough permissions when starting a VM. Depending on how you copy the modded VMX file to ESXi, there's a good chance the file permissions and owner/group will not be preserved. I realized this when the original modification I made stopped working after I patched ESXi a few a days ago. I followed the same procedure as last time only this time I used FileZilla on a Windows box. That's when I noticed that both the permissions and ownership were wrong. Once I changed those back to the original settings everything worked fine on reboot. Here's the procedure in case you're not familiar with chmod and chown:
    • Once you copy the modded VMX back to ESXI, check file ownership and permissions with ls -la
    • If the owner/group is root:root and the permissions are -rw-r--r-- (644) change them back to the original
      • chown 201:201 vmx
      • chmod 755 vmx
    • The correct owner/group is 201:201 and the correct permissions are -rwxr-xr-x (755)
    • Reboot and all should be well.
    Also, I'm fairly certain that if you use the embedded host client to copy the VMX directly off the datastore you don't have this owner/permission issue. I haven't tested that as changing the owner/permission from the console is easy enough, but I think that's how I did it the first time when it worked. Anyway, hope this helps!
     
  19. krisotff1313

    krisotff1313 MDL Novice

    Oct 29, 2009
    1
    0
    0

    Thank you so much.. this has been bugging me for a month! Never thought about perms and ownership changing.
     
  20. David77

    David77 MDL Novice

    Mar 16, 2017
    9
    3
    0
    #400 David77, Aug 2, 2017
    Last edited: Aug 3, 2017
    Very Cool .... Worked like a charm using WinSCP and Putty...

    The next step is to extract s.v00 from the working system and make a custom install CD ;)

    For example:
    After the reboot.
    Use WinSCP to copy /bootbank/s.v00 to local folder
    Use 7zip to open s.v00 and rename s to vmvisor-sys.vtar
    Extract WMware instillation iso to a new source folder
    Copy in the modified s.v00 to the new source folder
    Use UltraISO to rebuild the new source folder into a usb stick

    :cool: