Wow, Windows 8!

“Wow!! Is that Windows 8?”, said my daughter (13). “That’s really cool! It looks so modern! Can I have an account?”

I had just installed it following my latest VMware workstation upgrade.

“My friends would love it too”, she said. Which just goes to show that my theory about crusty old IT types not liking Windows 8 because they took away their start menu and the next generation not giving a hoot is proven.

And finally

I decided the best solution was a strategic retreat to Ubuntu 11.04, which is the latest version which is a supported host for VMware workstation 8.06. VMware have a good compatability matrix tool for this kind of thing.

I had no strong like of Ubuntu 12.04 LTS (see earlier post) but I must confess I had more respect for it after using Windows 8. Nevertheless I originally installed it without knowing the VMware requirements for Workstation and ended up having to build a special kernel to support it. Something I don’t have time for now.

Since there was no data in the host layer itself, it was a relatively easy task to install 11.04 over the top of 12.04 although I did fall foul of the error:

(initramfs) Can not mount /dev/loop0 (/cdrom/casper/filesystem.squashfs) on //filesystem.squashfs

for which there are many online references but no clear solution. On a second attempt the install worked so I put it down to flakiness of Ubuntu.

Happily, the installation of Workstation 8 worked fine and I was able to bring up the original VMs. Not so happily, my daughter’s French homework wasn’t there after all. And I thought I had taught them to always make two copies. Well there’s another useful lesson.

The Saga continues…

I  managed to uninstall the old version of vmware using the recommended command! First I removed the /etc/init.d/vmware file which had the desired effect of stopping the kernel modules being loaded and the processes from being started.

After a reboot I ran the VMware-Workstation-Full-8.0.6-1035888.x86_64.bundle which was running along swimmingly until I got a kernel panic.

img-1

 

 

 

 

 

 

# ./vmware-installer -l
Product Name         Product Version
==================== ====================
#

So I can see the fun will continue trying to clean up this mess.

Frustration :-(

Allow me, once again, to vent my frustration on this blog. I am trying to upgrade VMware workstation from version 7.1.6 to 8.0.6 on Ubuntu 12.04. I am doing this so I can run windows 8 VMs.

There is no working upgrade path. You have to uninstall VMware workstation 7 and install VMware workstation 8 on Ubuntu. The command to uninstall is:

/usr/bin/vmware-installer -u vmware-workstation

but this starts a wizard which immediately fails with the message:

The VWMare Installer could not shut down all
running virtual machines. If you have ACE
VMs open, please shut them down or suspend
them now and press 'Retry' to continue.

Needless to say, I have no running VMs after a reboot. So, OK, lets shut down all VMware process and unload all kernel modules using:

/etc/init.d/vmware stop

Oh dear. That gives:

Stopping VMware services:
   VMware USB Arbitrator                     done
/etc/init.d/vmware: line 370: [: 18177068162212705687: integer expression expected
   VM communication interface socket family                           failed
   Virtual machine communication interface                            failed
   Virtual machine monitor                                            failed
   Blocking file system                                               failed
ERROR: Module vmnet is in use by [permanent]

Well, that doesn’t look good! Turning on some debugging leads to the following line in the vmmonUseCount() function:

   count=`/sbin/lsmod | awk 'BEGIN {n = 0} {if ($1 == "'"$driver"'") n = $3} END {print n}'`

which indeed when used with vmmon as $driver returns a silly number.

# count=`/sbin/lsmod | awk 'BEGIN {n = 0} {if ($1 == "'vmmon'") n = $3} END  {print n}'`
# echo $count
18177068162212705687

So, what is going on? Well, it’s not lsmod, because cat’ing /proc/modules gives a similar number, which means that the scripts is making bad assumptions. It thinks there are 18177068162212705687 VMware workstations are running. I think not. In fact, it can’t even know this since the number is so large, it’s bigger than the biggest integer that the shell test expression can handle, hence the error. See http://stackoverflow.com/questions/2965761/find-maximum-positive-integer-value-in-bourne-shell

My answer here is to comment out the block which begins with the integer -gt expression.

# /etc/init.d/vmware stop
Stopping VMware services:
   VMware USB Arbitrator                                               done
   VM communication interface socket family                           failed
   Virtual machine communication interface                            failed
   Virtual machine monitor                                            failed
   Blocking file system                                               failed
ERROR: Module vmnet is in use by [permanent]

Well, that gets rid of one thing. The rest will have to wait since it’s past my bedtime. Sigh.

 

 

Thinking about data

A few blogs ago I was musing about how to categorise and talk about applications. This post is about the other side of the coin: data. Throughout the industry, there has been a lot more work on how to organise data than applications and as a result there are plenty of good taxonomies. Everyone who has used a computer has used one of these taxonomies because every computer has a filesystem and a filesystem is an implementaiton of a data taxonomy.

However, there hasn’t really been much progress in filesystem design over the last few decades, at least not from the user’s perspective. There have been great innovations going on under the covers: de-dupe, indexing, encryption, copy on write etc. but in terms of   helping users organise and find their files it’s pretty much hierarchical files and directories for everyone who has a PC, Mac or Linux.

In the context of a personal computer, most people want to be able to find their files quickly, or just fine them, particularly when faced with the prospect of moving data from one system to another. Or even just to back them up—probably the best reason. I recently had this challenge with my laptop; where is all my data? I want to copy it to a new system. In Windows terms you can copy your profile, but is that enough? What about the times you wrote something on C: or D: and what about the data, such as private keys, that the operating system has written on your behalf?

There is great scope for storing and exposing to the user more metadata about their files than just size, dates, type.

I would like to see, as part of the filesystem and operating system, concise information about the owner of the data. Not the file mind, that’s just the container; the file could be owned by the operating system for protection but the data inside may be a users. In this scenario, the OS should always prompt the user about where to store the data, not put it in  some “built in” area of the subsystem. The OS can store it’s own data where it likes but the user should always get to choose where to put their own information. The OS can give  hints but ultimately it should be down to the user.

The filesystem should remember all locations that a user has specified so that it is easy to get all the users data. (In most cases it will all be on a single disk, which is fine if you can copy the disk at a block level but not fine if you just want your data.) A user can run a search which specifies “all my data”, perhaps with other information such as size and date.

To be fair, Windows search has the ability to look for metadata such as author or tag but the problem is that the metadata is application dependant and not built into the save dialog, I don’t get the option to specify author or tags in notepad. this leads us down the route of file formats. The filesystem should take more of the burden here and wouldn’t it be great if you could even specify your own types of metadata.

Just another lifetime needed to write a better filesystem.