Strategic Informatics

A blog about the strategic application of technology

By

Recovering a hard driving using SpinRite on a Mac using VMWare Fusion

I recently found myself faced with a 2.5″ NTFS formatted laptop hard drive from a 5 year old laptop that wouldn’t cooperate and would constantly fail so I decided to try and recover what I could from the drive by running SpinRite, a great application from Steve Gibson of Gibson Research that I have used successfully many times in the past to recover damaged or unreadable magnetic based media.  The last time I actually used it was about 12 years ago over the course of several days to recover a failing HD.  Computing and hard drive technology has changed a lot since then but they are still very much part of our day-to-day IT lives.  When I encounter a problem that needs extensive evaluation I would just run SpinRite on the x86 based PC from which the hard drive came.  However, after creating a bootable CD and USB key with SpinRite for use on the 5 yo laptop neither one would work so I decided to take a different route.  Without another PC handy I decided to assess my options…  My daily laptop is a MacBook Pro, doesn’t (thankfully) have an internal 2.5″ SATA bay and is sealed tighter than the sub in the Hunt for Red October…  So what’s a Mac user to do with an NTFS formatted magnetic HD that can’t be read, an old Laptop that won’t boot SpinRite, and no other PC’s within easy reach?  Try to run SpinRite from a Virtual Machine on a Mac of course….

Now for those of you who don’t know SpinRite was written in assembly and does very low level reads and writes against a computers magnetic mass storage drives.  FreeDOS has been incorporated into SpinRite distribution to allow it to boot to a bare-metal PC and mount any connected drives so you can exercise the individual bits of 1’s and 0’s stored on the drive, exercising it enough to get a magnetic drive in as good a working condition as the physical hardware will allow.  With any luck it will operate just well enough to get your information to a readable state and backed up before you have complete hardware failure…   Running SpinRite from a VM was a bit more involved to configure via VMWare Fusion on a Mac and I wasn’t completely sure it would work… so I thought I would share my experiences.

 

I created a spinrite.iso file from another Windows VM I use.  I then created a new MS-DOS based VM mounting the SpinRite.iso created from the SpinRite.exe file.  It booted to a familiar screen without any issues.

SpinRite_and_Blank_website__Blank_site__Nothing_to_see_here_

SpinRite_and_Blank_website__Blank_site__Nothing_to_see_here_

Now the challenge was to get the physical hard drive mounted to the VM…  Looking through the settings there was no way to get RAW access to a physical HD.  I used a SATA to USB adapter and had to connect the drive to my Macbook Pro ensuring it was mounted to the Mac not the VM.

I needed to create a Raw Disk vmdk to make the RawDisk accessible to the VM so I did the following:

From a Mac terminal (I prefer iTerm) type:

diskutil list

In my case the 160GB HD came up as /dev/disk2 but your particular configuration may be different.

1__bash

 

Next from the terminal run the following command to list the partitions that rawdiskCreator can see:

/Applications/VMware Fusion.app/Contents/Library/vmware-rawdiskCreator print /dev/disk#

Note: Ensure that the last entry /dev/disk# is changed to the drive you are targeting for raw access.  In my case it was /dev/disk2

1__bash

What you should see next is your drive partitions…  My particular drive was split into two partitions (#1 was very small and #2 made up the bulk of my 160G HD)

With your partitions known and visible by the rawdiskCreator tool you can create the vmdk file that refers to the physical hard disk you are trying to mount and make it available to the existing SpinRite VM you created earlier.  You will need to know the location of the Disk and the partitions you want to mount from the previous command, which in my case is /dev/disk2 1,2 which says it’s disk2 and both partitions 1 & 2.  You will also need the path to the actual SpinRite .vmwarevm Virtual Machine that you created earlier (in my case ~/Documents/Virtual Machines/SpinRite.vmwarevm/rawDiskFile).  Now I used rawDiskfile but this is the name of your vmdk file and can be called whatever you like.  Make sure to include the ide designator at the end so the VM knows how to mount the drive.

/Applications/VMware Fusion.app/Contents/Library/vmware-rawdiskCreator create /dev/disk2 1,2 ~/Documents/Virtual Machines/SpinRite.vmwarevm/rawDiskFile ide

After you execute this command successfully you can option click the SpinRite.vmwarevm file and choose Show Contents.  Here you should see the files that makeup the .vmwarevm file including the new .vmdk file (if that’s what you named it) for each partition you listed above (1,2).  In my case it was rawDiskFile.vmdk & rawDiskFile-pt.vmdk

If you boot the VM now you won’t see the additional drive so you have to manually edit the configuration file for the VM to recognize the drive.  With the VMWare file contents still being displayed in finder you need to edit the .vmx virtual machine configuration file.  In my case it was called SpinRite.vmx because SpinRite is what I named my VM…  You should probably back up this file incase there is a problem and you need to start over.  Use your favorite editor (BBEdit, TextWranger, TextEdit, etc…) to edit the .vmx configuration file.  You want to insert the following lines to your configuration file being careful not to duplicate an existing ide#:# entry:

ide0:1.present = “TRUE”
ide0:1.fileName = “rawDiskFile.vmdk”
ide0:1.deviceType = “rawDisk”
suspend.disabled = “TRUE”

If the VM already has in its .vmx configuration ide0:1, use another port such as ide1:1.  It is also possible to use scsi#:# or sata#:# if the VM is somehow configured to use a SATA or SCSI controller.   The suspend.disabled=”TRUE” entry prevents the VM from suspending and being out of sync with the attached HD.  Important since most of SpinRite’s scans can take a long time to run.

The last step is to power on the VM and select your HD…  You may be prompted to enter your administrators password to get RAW access to the HD as the VM powers up.

Screenshot_4_30_15__4_12_PM

If you run into trouble it may be necessary to unmount the HD from your Mac by ejecting or un-mounting from Disk Utility prior to turning the VM on.

I won’t go into detail on how to use SpinRite as the tool is pretty self explanatory but the 160GB HD partition did appear in the interface ready to begin SpinRite’s operations.

SpinRite

SpinRite_and_Blank_website__Blank_site__Nothing_to_see_here_

SpinRite

 

Again this certainly isn’t an ideal setup as SMART access to the HD wasn’t available from within SpinRite menu options because, and I’m guessing here, of the SATA to USB setup but it might work in a pinch.  Hopefully it proves useful to your IT Toolkit and helps you extend the life of your SpinRite license which is worth every penny…

Update:  I tried a couple of drives and while it worked for one drive there was an error that completely stopped SpinRite and the VM in it’s tracks…   It only occurred on a specific section of the hard drive where there was clearly an issue…

SpinRite

SpinRite

By

User Interface Design using Silverlight Rich Internet Application (RIA) Technologies

March 16th will mark one year since we generated our first formal wireframe comp for what has now become a very robust enterprise application for physicians and their clinical staff.  This journey through building an initial prototype, development of a solid service oriented architecture,  building the project, analyst and development teams, generating a solid user experience, engaging our customers and more importantly engaging everyone in a new agile methodology has been nothing short of an amazing journey to which I’m very proud of what we have all accomplished.  As we approach formal implementation of a project kicked off just one year ago I would like to recognize some great vendors who helped us along our journey…  Xby2, Seamgen, and Cynergy Systems and especially my development staff at WellMed who kicked us off in this new agile development effort.

My recent visit to HIMSS ’11 in Orlando, FL validated what I already knew…that our user interface, which sits atop the underpinnings of a service oriented architecture, is far and away more usable and interactive than anything else on the market today.  The tool our customers use does not need to get in the way of doing business…  Cynergy Systems has created a showcase video highlighting their approach to User Interface design with our product and shows how good UX design can go a long way in helping ease complex tasks.  Below is the showcase video they produced and demo’ed at the Health Information Management System Society (HIMSS) meeting last month.

By

What makes a successful mobile device?

I typically don’t title my posts with a question but it begs to be answered with the imminent release of Apple’s iPad.  Frankly… I’m frustrated with all the media fanfare around how tablet based computing is “now” going to revolutionize the industry.  Tablet PC’s have been around for for 10-15 years.  It’s not the hardware in as much as it is the software running on these devices that have been the problem with adoption.  Software also being inclusive of the operating systems that power the devices.  Initial incarnations of the slate based devices tried to take a desktop OS like Windows, and with the help of some task bar utilities (and who doesn’t love more of those cluttering your interface) would create a platform for mobile professionals.  The result was that year over year software vendors continued to make their mouse and keyboard driven desktop applications function in the confines of a cumbersome keyboard and mouse driven OS by pecking at a temperamental resistive touch screen display on a mobile device.  And we wonder why software solution have a hard time getting used by providers and clinicians.

What was needed was a truly mobile and touch driven OS and SDK like Apple provided in their iPhone to help developers conform to building applications that did not rely on technologies that didn’t exist on the hardware like a mouse.  This was needed because no one had stepped up to the challenge in a market dominated almost exclusively by Microsoft.  Linux was in its infancy in the mobile space back then but today the Android OS has certainly stepped up to the challenge the iPhone has presented in the mobile device space and is providing a competitive platform against which Apple may have a hard time competing if the innovations in the open source world continue to leapfrog apple.

My issues with mobile computing in healthcare revolve around technologies that get in the way of providers and clinicians doing their core job which is attending to patients and not fumbling through hundreds of check boxes and interfaces designed to be used on a desktop.  Vendors need to realize just because you can run your application on a tablet PC doesn’t mean you should.  Let me repeat….Just because you CAN run your application on a tablet based device DOESN’T mean you should.  If an application is architected properly then there should always be a layer of abstraction between the interface and the underlying core enterprise services that drive that interface.  I’m not hating on Microsoft for providing Windows Tablet OS as I think they have considerably innovated in this area to help vendors use their legacy applications on mobile slate and convertible based platforms.  Multiple modalities for inputting data such as handwriting, voice, and predictive text recognition are all very good tools.  I think they were smart to merge these functions into the standard Windows 7 build and not offer a separate OS as they have in the past.

More interesting is the total rewrite of their mobile platform with Windows Mobile 7.  This ground-up initiative from Redmond is akin to becoming more like iPhone and Android operating systems but paves the way for more svelte hardware with mobile chip sets that can extend battery life without sacrificing performance.  Microsoft is bringing XAML to the mobile platform and leveraging their gaming SDK for development which eliminates any backward compatibility with pre-Windows Mobile 7 apps but I don’t view this as a bad thing.  New platform new apps…  Microsoft has long since reached the breaking point at which they need to support legacy applications and this new direction and outlook toward supporting the mobile user should be a refreshing change for developers.  A lot of our new development revolves around innovating in the user interface with Rich Internet Application (RIA) technologies such as Silverlight.  It makes us think differently about how applications are used and more importantly how it enables our users (physicians and clinical staff)  to do their job more effectively not insert yet another technology that gets in their way.

It has been a while since I posted an entry but my entire team and I have been hard at work maintaining existing applications and plugging away at UI and WCF service development.   Stay tuned…as we plug through our iterations and get ready to deploy our app I’ll share with you some of what WellMed is doing to “change the face of healthcare for seniors…”

By

Configure Evolution on Ubuntu 9.10 for use with Exchange

I downloaded and installed the final release of Ubuntu 9.10 Karmic Koala on my Dell M4400.  So far I’m very impressed with the fit and finish of this latest Linux release.  Evolution is one of the many e-mail clients avaialble for Linux but one of the very few with the ability to access your corporate Microsoft Exchange Server by default.  It is very similar to Outlook on your Windows desktop so you will feel right at home with this release.  Below is a walkthrough of how to connect Evolution to your Exchange 2003 server.

When you launch Evolution you will be presented with the following setup screens:

Screenshot-Evolution Setup Assistant

The first dialog box presented is “Restore from backup” which, as the title suggests, restore from a previous backup.  I skipped this step as this is a new installation.

 

2-Screenshot-Evolution Setup Assistant-1

The next dialog box is “Identity” which is where you enter your Full Name and e-mail address associated with the Exchange account you are trying to setup.   If this is your primary account you can leave the checkbox checked for “Make this my default account” as I did above.

3-Screenshot-Evolution Setup Assistant-1

In the “Receiving Email” dialog bx that appears next you will enter your Outlook username and Outlook Web Address URL.  If you are unsure what it is it will typically take the form of  https://domain name/exchange/.  Be sure to include /exchange after the URL if applicable.  Then press Authenticate to enter your Exchange password.  If successful you will see your Exchange mailbox username appear in he Mailbox: field.

 

5-Screenshot-Evolution Setup Assistant-1

In the “Receiving Options” dialog box you will see several options to set the frequency and limits of your Exchange e-mail box.  You can simply leve the defaults or modify them to your liking as I did above to improve security and frequency of e-mail delivery.

6-Screenshot-Evolution Setup Assistant-1

In the “Account Management” dialog box you configure the name of your newly configured account.  Work, Personal, or your Company Name works well here. 

7-Screenshot-Evolution Setup Assistant-1

 

Then that’s it…  Just press the Apply button and you are immediately brought to the Evolution application with its new configuration.  It will immediately start downloading your e-mail and associated folders, including Calendar, Tasks, Memos (Notes in Outlook), and Contacts.

By

Installing Windows 7 from a USB Drive

The installation for Windows 7 is much faster via USB than CD so I decided to cut as much time off any install as possible by installing the distribution media onto USB rather than the old-school circa 1998 CD-ROM method.  If you want to install Windows 7 via a portable USB key then read on…

NOTICE:  Pay close attention to each step.  Every installation is different so be sure to read through all steps before attempting to format your USB key.  It is easy to type the wrong drive ID when formatting.  I will not be responsible formatting the drive so proceed at your own risk.  If you don’t feel comfortable doing these steps then stop and do the install via DVD instead.

Blah…Blahh…Blahhhh….OK, now that the disclaimer is out of the way let’s dig in…

http://gopaultech.com/wp-content/uploads/2007/04/usbdrive.jpg

Step 1:  Grab a 4GB or larger USB key.  the entire distribution is a little over 2GB so 4GB drives work nicely.

Step 2:  Plug the key into a workstation with a DVD drive that can read the Windows 7 Install media.  I used an existing Windows 7 desktop but you can also use a Vista/XP workstation as well.

Step 3:  Open a command prompt.  If using Vista be sure to open the command prompt as administrator by right clicking on the command prompt icon and selecting “Run as Administrator”

Step 4: Type the following into the command prompt window

  • diskpart
  • listdisk (The disk number for my USB key was 1, be sure to identify the size to get the correct disk ID.  This is important)
  • select disk 1 (you are about to format the disk so be sure you get the correct disk ID...See above step)
  • clean
  • create partition primary
  • select partion 1 (mine was 1.  be sure to put your ID here instead!)
  • active
  • format fs=NTFS
  • assign
  • exit

Step 5:  Insert the Windows 7 disk into the same workstation you used to format the USB key

Step 6:  In the same command prompt window navigate to the boot directory on the DVD drive where the Windows 7 Install disk is located

Step 7:  To make the drive bootable enter the following command

  • bootsect /nt60 E: (Where E: is the drive letter assigned after you typed the assign command above)

Step 8:  With the USB key formatted and bootable you can now copy all the files from the Windows 7 install DVD onto the USB Key

When you boot your target PC be sure to boot via the USB option in your boot priority.  Some workstations have a key you can press during intial startup to change the boot drive.

By

Installing Windows 7 on a Mac OSX Bootcamp Partition


So I’ve been running Windows 7 since early September when the release to production copy was opened up for MSDN subscribers.  I can honestly attest that this is by far the best relese of Windows to come out of Redmond to-date.  The ugly duckling known as Vista has shed its skin and what has emerged is an efficient and capable operating system that performs well on relatively underpowered hardware.  I’ve created a few posts in the past that outline how to install Vista on a MacbookPro via bootcamp and also how to install at 500GB hard drive and maintain both partitions.  I’ve done all of this including the initial Leopard upgrade from Tiger without a total rebuild.  This is an amazing feat considering the number of trips to Apples Genius Bar desk to replace faulty video controllers for my now aging and out of warrantee Macbook Pro.  So I decided since I had been testing Windows 7 for a while now on a Dell XT and XT2 that I would tempt fate and perform an upgrade to the Bootcamp partition currently running Vista.  The other installations of Windows 7 on Intel hardware have been clean installs so this would be my first upgrade.  An upgrade, mind you, that has a significant amount of software installed. 

The process was actually fairly straight forward but I thought I would share none-the-less since the how-to posts seem to get the most attention. 

Step 1:  From either OS X or Windows open up the bootcamp manager and select the Windows partition. 

 bootcamp

Step 2:  Reboot to ensure that the default setting loads windows

Step 3:  Insert USB or Windows 7 CD into drive (I’ll post how to create a USB version of the Windows 7 Install Disk in a separate post)

Step 4:  Run the setup.exe from the Auto Run dialog box or manually via Windows Explorer.   From the initial setup dialog box run the compatibility testing tool (not shown in the image below) to ensure you meet all the minimum requirements and your software is compatible.  I had an issue with Windows OneCare to which I had to uninstall prior to installing.  Ironically it states there is an issue with the bootcamp software loaded on the Vista OS along with iTunes.   I proceeded none-the-less with the installation by clicking Next>after the check was complete.

windows7setup

Step 5: Setup of the OS is about as straight forward as it can possibly get.  Nothing special to do here just follow the instructions for an upgrade and enter in your key when prompted.

Step 6:  You will eventually reboot your system at which time you get the initial boot screen for windows indicating which Windows OS you want to boot into.  Keep the default Windows or Windows 7 (not Vista) and proceed with allowing setup to configure your system.

Step 7 (Optional):  Open up bootcamp setup and configure your default boot OS.  Either Windows or OS X

The setup depending on the software you have installed will take quite a while but for the most part it is a hands-off process.  Enjoy…

By

Got Bing?

I must admit I was surprised to see this can of liquid Bing in the cooler at the Microsoft Conference Center today.  I must admit that it offers a refreshing alternative to Google…

BingCan

In case you are wondering this can of Bing is sparkling water.

By

MSHUG 2009 Day One

MSHUG09Badge

Day one is complete and this year the attendees seem a bit smaller than last year.  The presentations were good and can be downloaded from the mshug.org website.  I enjoyed the developer tracks more than others.  It is clear that our architecture decisions to move forward with a Silverlight implementation of a client application will well supported by Redmond in the coming years.  Microsoft’s position in healthcare is to build the platform by which others will build solutions.  I was expecting a stronger Amalga HIS presence but this was strangely absent from many of the first day discussions.  Tomorrow will have an interesting keynote on the Medical Home and the UIM component of Amalga which will be very relevant given our work in this space at WellMed Medical Management.  The closing keynote for today’s session was given by Microsoft’s current Corporate VP and CIO, Tony Scott.  He offered some insight into his perspective into Microsoft and the direction they are headed in relative to product development.  Of particular interest was the fact they deploy their release candidates to the majority of internal Microsoft employees prior to general release to the public.  This means of course that 90% of the MS staff are using Windows 7.  If I could take away one thing from today’s sessions that would be “innovation”.   There are several innovative items we are working on relative to architecture, application integration, and data warehousing at work that I hope to speak on in future posts.  As for tomorrows sessions there are several on teh clinical informatics track and developer tracks that look interesting.  Until tomorrow….

By

Preparing for the MS Healthcare User Group 2009 Conference

MSHUGLOGO

 

I’ll be headed to Redmond, WA tomorrow for the 2009 Microsoft Healthcare User Group conference.   If you follow this blog you will remember I attended last year and came back with a slightly less jaded perspective of Microsoft’s efforts in the health care space.  As a company I think Microsoft has made some great strides in recent years…  Don’t get me wrong, they have certainly made their fair share of mistakes.  However Microsoft is now in the midst of playing catchup to an industry that doesn’t look kindly on stalwarts.  Some key success that I think will help Microsoft are the release of Windows 7 later this year.  I’m happily writing this blog post on Windows 7 Enterprise Edition and feel confident that Redmond finally got this version of the OS right.  I’ve attended some sessions with Microsoft as part of my current position and know that they have a ways to go yet before Amalga becomes an industry spread name.   They don’t yet have a firm foothold in the US market for leveraging their inpatient hospital centric system with an ambulatory EMR’s.  If they hope to gain some momentum they are up against some big guns in this industry so I’ll be curious to see their approach in the coming months.  

In the mean time I’m looking forward to doing a deep dive into interface, and Silverlight development…  Yes, I said Silverlight.   If you were to ask me 6 months ago what I thought of Silverlight as a viable development platform for web apps I would have shrugged it off as another one of Microsofts attempts at trying to play catch-up to Adobe’s Flash.   We are currently building a rather unique user interface that really focuses on clinician interaction with the document and underlying data and requires some interface development that doesn’t come easy by standard web development methodologies or even many AJAX powered components.  After digging deeper it is clear to me Microsoft is not going to play runner-up in this media-rich web development space.     Silverlight’s data driven components are a real benefit compared with similar Flash based components.   Also Microsoft is quite anal retentive toward the security model they have developed around this browser based add-in.    This coupled with the offline capabilities of Silverlight make it a very compelling platform to base our EMR on.  I’ll be back with interesting items from the conference.

By

Synergy How To For Mac and PC

Working in an environment with multiple OS’s can be challenging when you have to shuffle between multiple keyboards and mice. A KVM only offers a single view of one device at a time, which is challenging when you need to switch between them frequently. I’m a huge advocate of virtual machines but you are still often limited by the available screen real estate of a single workstation. I’ve toyed with the idea of using the open source application Synergy for a while but have never taken the plunge until recently. What is Synergy? Synergy is an application that allows you to setup individual workstations, either Mac, PC, or Linux with their own dedicated monitors and utilize a single workstation’s keyboard and mouse to move among as many different Operating Systems as you need. You still need dedicated monitors for each of your individuals PC’s but a single mouse and keyboard will allow you to easily operate each OS on their respective monitor(s).

Synergy consists of a client application that runs on the workstations you want to control and an application that functions as a server to which you have a keyboard and mouse you want to use. In the scenario I’m going to present I have a MacBook Pro and and a Desktop PC running Vista. I will show how you can use the keyboard and mouse of the Mac to control the PC. I’ve also configured the Vista as a server which required a little additional effort. If you are interested in seeing this configuration then leave a note in the comments.

Using the Mac to Control the PC.

On the PC
You need to install Synergy on the Windows workstation you want to control.  You can get a copy from Sourceforge.net.  When you start Synergy just make sure you select “Use another computers’ shared keyboard and mouse (client)”, and in the “Other Computer’s Host Name” field enter in the IP address of Mac which we will configure as the server in the next step. Note if you need to find the IP address of your Mac click on the Apple icon in the upper right corer of your screen and select System Preferences…

Note: if you need to find the IP address of your Mac click on the Apple icon in the upper right corer of your screen and select System Preferences… Select the network card from the list on the left and you will see the IP address listed under “Status:”

On the Mac
You can download the latest SynergyKM binaries (.dmg) file for the Mac from Sourceforge.net. The one used here is 1.0 Beta 6.

The installation installs a configuration icon in your System Preferences folder. Open your System Preferences folder and select “Share my keyboard and mouse” radio button.

Now we need to configure the clients that will connect to the Mac’s keyboard and mouse. Click the + button to add another client to the list. In the Name: field enter the actual name of the workstation that will be connecting to your Mac. In my case, my Vista workstation was aptly called “VistaDesktop”. If you have other PC’s in your configuration you simply repeat this process. Now the beauty of the SynergyKM on the Mac is the ability to move the icons of the clients you have added to mimic the physical location of the monitors on your desk. If you have a monitor with one on top of another then you simply arrange the icons in the Server Configuration tool in a similar fashion. In my simple configuration my laptop was to the left of my Windows monitor.

Select the General Tab again and select the “Turn Synergy On” button.

When you start the Synergy server on your Mac you will see an Green and Blue circular Synergy Icon appear in the Menu Bar.


Now you should be able to control use your mouse to switch between both desktops in the order you configured them. If this was helpful then leave a comment or if you are interested in using Vista as a server then leave a comment.