Here is a possible solution. Bear with me or go to the end.
I also and the "No WiFi Hardware" problem after upgrading to 10.7.4 and visited the Genius Bar and after the guy couldn't figure out what was going on I was advised to do a clean install of 10.7.4 and restore from Time Machine. This seemed outrageous so I tried to figure out what was going on.
In addition to the symptom of the "no wifi hardware" message, I also noticed in the "About This Mac" box that the software was listed as 10.7.3. Check that. Then, I noticed some kernel logs that showed a bunch of messages like:
May 16 14:12:46 periodot kernel[0]: Refusing new kext com.apple.kpi.bsd, v11.4: already have loaded v11.3.
And I found a telltale:
May 16 14:11:45 periodot com.apple.kextcache[1584]: Error copying //System/Library/Caches/com.apple.corestorage/EncryptedRoot.plist.wipekey to /Volumes/Boot OS X/com.apple.boot.P/System/Library/Caches/com.apple.corestorage/EncryptedRoot.pl ist.wipekey
May 16 14:11:45 periodot com.apple.kextcache[1584]: ucopyRPS - Error copying files used by the booter. errno 28 No space left on device
I used diskutil list to view:
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *480.1 GB disk0
1: EFI 209.7 MB disk0s1
2: Apple_CoreStorage 479.8 GB disk0s2
3: Apple_Boot Boot OS X 134.2 MB disk0s3
I saw that the kext files from 10.7.4 that were trying to be copied could not possibly fit in the "Boot OS X" partition after replacing the old versions. I saw that the files together were nowhere near 134MB. I checked and saw an item .com.apple.NetBootX that was taking up over 90MB. I removed this directory since I never do net booting and then rebooted. All my problems immediately disappeared and I was able to use WiFi again. The About This Mac box now showed 10.7.4.
Where did this 90MB directory come from?? The previous time I was in the Genius Bar there was a net-booted hardware diagnostic that was run. This probably left that NetBootX directory in my boot cache, leaving only about 8KB of free space with 10.7.3. Since 10.7.4 is slightly bigger than 10.7.3, trying to update the boot cache failed since there was not enough space. The old kernel extensions were still in the boot cache and that caused the system to be messed up but partially working. Removing the extraneous NetBootX directory allowed the copy/update job to complete, thus fixing the upgrade problem. So it appears to me that this is a problem that would hit anyone who has visited a Genius Bar and had a hardware diagnostic or other NetBoot operation done, then tried to upgrade to 10.7.4. My solution avoids having to do a fresh install and restoring from time machine.
To carry out this fix,
make sure Diskutility is not running then enable the Debug Menu in from the command line:
write com.apple.DiskUtility DUDebugMenuEnabled 1
- launch Disk Utility.
- Go to the Debug menu and enable Show Every Partition.
- You should be able to see "Boot OS X". Mount that partition. On some machines that partition may not exist, in which case this solution may not apply to you.
- Go to the mount point /Volumes/Boot OS X and then look for .com.apple.NetBootX.
- Copy it somewhere safe like your home directory, just in case something bad happens, and delete it from /Volumes/Boot OS X. (If you can't find that directory then maybe this solution doesn't apply. If you're wondering, run "df" in a terminal and check how much free space is on that volume.)
- Quit Disk Utility, then reboot.
With luck the upgrade will then complete.
I filed a bug report when I figured this out 2 weeks ago but haven't gotten any feedback from Apple.