
So in my previous blog I said I used iSCSI to mount the VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd disk dump included in the VMWare ESXi install...I recieved a few comments about this as it is a heavy handed way of getting the support you need, so I figured out a non-iscsi way of mounting the VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd file.
If you haven't read my other blog the VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd file is on the VMWare installer media inside the install.tgz file as VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd.bz2. This file is a bziped disk dump of a complete hard drive...it has 6 partitions defined inside of it. The first thing you need to do is determine the offset to the parttition you wish to mount..in our case that is most likely partition 5 as it contains the oem.tgz file:
This should print out the following:
[root@cbrunner-f8 installer]# fdisk -ul VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd You must set cylinders. You can do this from the extra functions menu. Disk VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd: 0 MB, 0 bytes 64 heads, 32 sectors/track, 0 cylinders, total 0 sectors Units = sectors of 1 * 512 = 512 bytes Disk identifier: 0x00000000 Device Boot Start End Blocks Id System VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd1 8192 1535999 763904 5 Extended VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd4 * 32 8191 4080 4 FAT16 <32M VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd5 8224 106495 49136 6 FAT16 VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd6 106528 204799 49136 6 FAT16 VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd7 204832 430079 112624 fc Unknown VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd8 430112 1535999 552944 6 FAT16 Partition table entries are not in disk order
As you can see the sector size is 512 bytes...so now you can mount any of the partions by passing the "offset" option to mount with a value equal to the start block * 512. Here are the steps...
The $((512*8224)) automatically does the multiplication for you...isn't that nice. (Note 8224 is the start block for partition 5). At this point if you do a "ls /tmp/esx-5" you get:
[root@cbrunner-f8 installer]# ls /tmp/esx-5/ binmod.tgz boot.cfg cim.tgz environ.tgz license.tgz oem.tgz vmkernel.gz
You can now update the oem.tgz file. When you are done you need to "umount /tmp/esx-5 ", bzip the disk image "bzip2 VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd", and then rebuild install.tgz (cd /tmp/esx-temp/; tar czvf ../install.tgz sbin/ usr/).
-Cameron
Comments
Info on a "gotcha"
FYI: I just ran into problems over and over trying to modify the oem.tgz . Turns out it didn't like doing it on a FreeBSD system's tar. I move the .tgz I made on FreeBSD over to Linux, "tar xvpf", then "tar cvf" and put it onto the CD and it likes it!
An Exelent guid! however i
An Exelent guid!
however i have a question.
Is it possible to add Adaptec ASC-39320u(B) scsi controller support so when i try to install esxi it will find they hard disks (in raid0) and allow the installation to complete.
currently i get "no starge found" error.
i am trying to install on Dell SC-1425 server using esxi install CD.
and if possible please explain how to "rearchive" and re"zip" .dd file with necesery updates.
thanx
Scsi Controller
I don't have any experience with that controller so I don't know if it will work. If it isn't being detected by default then ESXi probably doesn't include a RAID driver for the controller...in this case you should try to configure your controller to run in a non-raid mode. As for updating the dd file...My comment
You can now update the oem.tgz file. When you are done you need to
"umount /tmp/esx-5 ", bzip the disk image "bzip2
VMware-VMvisor-big-3.5.0_Update_2-103909.i386.dd", and then rebuild
install.tgz (cd /tmp/esx-temp/; tar czvf ../install.tgz sbin/ usr/).
Covers that process...(after changing oem.tgz)
The install.tgz is now in /tmp and can be copied to the USB thumbdrive.
ESXi can detect the SATA disk drives but the installer doesn't
Hi Cameron,
Thanks to your instructions I was able to create a usb install media with support for my Asus CrossHair's nvidia SATA mass storage controller. (MCP55 Sata Controller)
Upon booting up from the usb flash drive, I can switch over to an alternate console and log in as root.
I see the two sata disks installed in the system as vmhba33 and vmhba100. esxcfg-vmbhadevs sees these disks as well. There are device files in the /dev/disks folder for these disks.
fdisk -l shows the partition layouts on the disk and as far as I can tell, the vmkernel seems to be happy about these two disks in /var/log/messages
However, the ThinESXi installer does not see these disks and complains about there being no storage.
I tried following the python code for the ThinESXi installer but the *meat* of the the hardware detection bit is somewhere in a compiled python module and I can't trace what is happening any further.
I was wondering if you had any ideas on how to diagnose or progress the install of ESXi.
Many thanks for the information the in the article as it was very useful.
regards
JC
Driver issues
There is something in ESX that lists which types of drivers are valid for use as installation drives...i don't know where this is. When I was getting my boxes working I added the PCI ids for all of the ways that the ICH8 could be configured in the BIOS (Based on how the bios was configured the system would report different PCI id's). While some of the IDE settings would work enough for the disk to be detected only the AHCI mode worked for me. I would make sure that your NVida SATA controller is in a RAID mode if possible...make sure you stay away from anything IDE.
-Cameron
Re: Driver Issues
>
>There is something in ESX that lists which types of drivers are valid
>for use as installation drives...i don't know where this is.
>
You are correct and I was working on the same assumption because I could patently see that my two sata disks were being detected by the vmkernel fine and every utility that I could find in the ESXi install environment could actually make use of the storage on my disks. E.g. fdisk
I hence spent a lot of time trying out different things.
Firstly, I tried to be clever and created a python script, roughly 7 lines which used the /usr/lib/vmware/installer/Core/DD.py and other handy scripts in the installer(/usr/lib/vmware/installer/Core) folder, in the install environment, to dd the bzip2'ed image(VMware-VMvisor-big-3.5.0_Update_2-110271.i386.dd.bz2) onto my disk directly.
Doing this resulted in the various partitions in the image being laid out on my disk and I thought that if I rebooted, this should boot me into the main esx installation. Nope! Didn't work! The ESXi installer must be doing some more stuff to make a bootable install. (maybe it added a mbr or something like that)
So I started looking at the python scripts in detail. Trying to follow the various stages of installation and came across one script which looked like it was determining the interface type of the devices detected.
The /usr/lib/vmware/installer/Core/TargetFilter.py script has a function which returns True if the specified lun is an IDE Lun. I changed the function as follows:
-----------------Original-----------------
def IDEFilter(lun):
"""IDEFilter(lun)
Returns True if the specified lun is an IDE Lun, False otherwise."""
interface = __GetSCSIInterface(lun)
if not interface:
return False
return interface.GetInterfaceType() == ScsiInterface.SCSI_IFACE_TYPE_IDE
-----------------Original-----------------
-----------------Modified-----------------
def IDEFilter(lun):
"""IDEFilter(lun)
Returns True if the specified lun is an IDE Lun, False otherwise."""
interface = __GetSCSIInterface(lun)
if not interface:
return False
#return interface.GetInterfaceType() == ScsiInterface.SCSI_IFACE_TYPE_IDE
return interface.GetInterfaceType() == ScsiInterface.SCSI_IFACE_TYPE_ISCSI
-----------------Modified-----------------
after saving the file, I re-ran the installer (type in: install) and it worked!!! :-) I was able to see both my SATA disks and install ESXi without any issues.
I've just been testing out my ESXi install right now to ensure that I don't have any compatibilty issues and I can confirm that my install is stable!
I can see the possible problems of doing this, the installer will treat ALL ide devices(cdroms/hdds etc) as SCSI devices but doing this was my ONLY way of getting ESXi installed. I had tried changing the BIOS configuration as you suggested and trying different combination of PCI ids but none of it worked.
Anyway, by posting to your blog I hope someone else will pick up the above information and confirm whether it worked for them or not.
-Jinesh
is that for every machine setup ? or any certain ?
hi, I am kin d of confused that I should also modify this TargetFilter file too ?
ESXi On IDE Drives
Great find! I hope the perfomance is good. You solution could potentially open up VMWare ESX for virutally any PC using the ata_piix and ide modules.
-Cameron
Will test performance in a few hours
VMTN: http://communities.vmware.com/thread/166002
Got it booting, now for the NIC
this, and the associated article, were very helpful. I ended up having to do
dd if=mbr.bin of=/dev/XXX
instead of
cat mbr.bin > /dev/XXX
to get my system to boot from the memory stick, don't know why.
i'm still having a problem getting the e1000 driver to work with my onboard Intel 82566DM-2, it's detected at startup but i get a non-0 return from the driver as it's being loaded. i'm guessing it's some config problem with the driver as i had to add this card to the pci.ids and simple.map. If you have any other hints along this line, I would appreciate hearing (reading) them.
e1000 Driver
Doing some quick searching it appears that the Intel 82566DM-2 has been causing problems for linux users as it appears it needs a newer version of the e1000 driver than other/older Intel e1000 cards. That being said I would imagine you would need to get an updated version of the e1000 module on your esxi box...unfortunately I do not know how to build a new driver for the esxi kernel. I would imagine that this would be an issue addressed in an upcoming release, though, as it is a high performance NIC and VMWare should be interested in keeping their e1000 driver up to date.
82566dm-2 NOT e1000
after some more digging, i had to backburner this for a while, i figured out that the problem i'm having has to do with the fact that the DM-2 is not an e1000 card but rather an e1000e, which is not included with the ESXi distro.
i've been struggling with getting the e1000e driver, in fact all of the VMWare ESXi code, to compile under RedHat 7.2 and gcc 3 - with very little luck so far - so i can repackage and redeploy.
i think this will be the solution to the problem, but i just have to figure out why VMWare's makefiles and build scripts don't want to compile on my system.
Toolchain
Is Redhat 7.2/gcc 3 the standard build machine/toolchain for esxi?
82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller
I read your 2 articles carefully and decided to give it a try for my own test setup. I have a spare HP Compaq 6710b at this moment with a 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (PCI ID 8086:2829).
I'm booting ESXi directly from my USB key, so I figured I only need to update the .dd image file. I'm using the new Update 2 (VMware-VMvisor-big-3.5.0_Update_2-110271.i386.dd). I've checked the partition offset for partition 5, and it's the same.
I've extracted the oem.tgz file to a directory /oem, and the simple.map and pci.ids files from binmod.tgz in the same directory structure under /oem. I only recreated the directory structure to these 2 files, not all the other directories. I've updated simple.map and pci.ids with your lines and my lines for the 82801HBM/HEM.
I've tarred a new oem.tgz file containing:
./oem.txt
./etc/
./etc/vmware/
./etc/vmware/simple.map
./usr/
./usr/share/
./usr/share/hwdata/
./usr/share/hwdata/pci.ids
I copy the new oem.tgz file to /tmp/esx-5 (the .dd file that's mounted according to your instructions) and umount esx-5. I sync everything and write the updated .dd image to a 1 GB USB stick using WinImage (on Windows).
The USB stick boots, VMware ESXi starts and crashes somewhere after 'Initializing interupts':
Cannot set up ramdisk: Boot image is corrupted
...
0x1402da0:[0x62b07c] Panic+0x17 stack: 0x843fa, 0x1402dbc, 0x1402ed0
0x1402db0:[0x62b07c] Panic+0x17 stack: 0x843fa, 0x1402dc4, 0x14993a8
...
0:00:00:03.308 cpu0:1024)VisorFSObj: 2219 Directory is . for .
No place on disk to dump data
And I wonder what I did wrong. Any clues?
The only thing I can see is
The only thing I can see is the leading "./" in your oem.tgz. Normally this wouldn't be a problem in linux but the esxi host os is really picky. I would try re-running your steps making sure that "./" is not on your path...Follow the example I used for repacking the install.tgz...(using your structure with /oem)
~ # cd /oem/
/oem # tar czvf ../oem.tgz oem.txt etc/ usr/
usr/
usr/share/
usr/share/hwdata/
usr/share/hwdata/pci.ids
etc/
etc/vmware/
etc/vmware/simple.map
oem.txt
notice how there isn't a leading "./" in the names. Now copy /oem.tgz to the partition 5 mount and give it a shot.
It works!
Rebuilding the oem.tgz file according to your instructions worked. I can now boot VMare ESXi on my Compaq 6710b from my USB stick AND it recognizes the internal SATA harddisk for storage. Created my first virtual appliance as a test and everything seems to run fine. It does not yet see the internal CD-ROM drive on the host however, but I'll tackle that problem another time.
Thank you for sharing your knowledge in your blog and the assistance!
Good to hear! I am glad
Good to hear! I am glad that you got it working :)
60-day trial???
ALL INSTALLED AND WORKING FINE!! thanks for this great guide!!
If anyone want the modified files contact me.
After installing, it says 60-day trial.... WTF? I got a s/n, where can I enter it or what sould I do??
Trial
When you signed up for the download vmware should have sent you some registration keys that you can use to remove the 60 trial license. If they didn't, or thats not how you got the binaries, simply go to their site, sign up with a valid email, and they will send you some. You enter the key under the "Licensed Features" of the Configuration tab in VMWare Infrastructure Client (click edit next to License Source). Using the free license keys deactivates the VMMotion support I believe, so if you want to test that out you should probably wait to activate your ESXi install. Here is the link to obtain your VMWare keys:
https://www.vmware.com/tryvmware/login.php?eval=esxi&t=1