Trying to get the team on CAD

Since our team is more than 88% Mac users, I was thinking of using DreamSpark accounts and Autodesk Education accounts to put together some Windows drives. These would be consisting of

  • A 32 GB Flash Drive ($25-30)
  • Windows Server 2008 R2 (Free via DreamSpark)
  • Autodesk Inventor 2013 (Free via Autodesk Education)
  • A Portable VMX/OVF file that maps the drive for Virtualization software

I would assume this may be the best way, rather than asking the Mac owners to install a Windows partition, but to simply have a flash drive that contains the system pre-loaded and configured, and boot it with VMWare/VirtualBox/Physical Boot. Would this be the best way to go at it? or are there better ways? (Trying to avoid an installation of much to the Mac)

I’ve deployed KVM (Linux) in a production environment and poked around with VMWare/VirtualBox. VMWare is decent for rendering a 3D model in a VM, but it’s $180 per person. VirtualBox is free, and while its OpenGL rendering within a Linux Guest on a Windows Host is pretty good when in “Seamless” mode (a pretty sweet mode btw), I’m not sure what the results will be on a Mac. You can try it yourself (VirtualBox is free, and so is Linux) if you want to test performance. You’ll also want to be careful of where the data gets stored. Last year we used a Google Code repository with TortoiseSVN to share our files.

I’ll also say that I have no experience with using a Mac as a host for VM’s, so I don’t know if the video performance is on par with what’s needed.

32GB flash drives are s-l-o-w when installing an OS – be patient.

Create a new Boot Camp partition and install Windows natively on the Mac. CAD software needs every ounce of computing power it can get, and running it in virtual machines is robbing you of performance. You’ll regret working in a VM anytime your assembly gets over a few dozen parts, which is barely enough to do a drivetrain.

For data storage, I wrote a simple program to write to a Git repository that is executed by Inventor when the file is saved, It uses a mapping (On my computers) to Z:\Incoming and Z:\Outgoing, where Incoming contains the current revision of the repository, and Outgoing contains the most recent local commit.
For the drive itself, It will be configured as if it was an internal drive, that Windows was installed to, but then it was removed. It could then be mapped to a virtual machine (If needed), as some VM apps support physical drives alongside VMDK or VDI files.
and for performance, These Macs are most likely not going to be doing the full-bot design, maybe 5-6 parts per assembly at most. The bigger assemblies will be handled on a better machine, but we only have 2 of those, and they aren’t portable.

VMWare Fusion for Mac is pretty nice, I use it on a regular basis both for work and home. I think when I bought my license it was $50. And if you are looking at multiple copies I bet they have pretty nice volume breaks. Never had any major issues with video performance, I used to do a lot of CAD in Solidworks and VMWare on my old mac.

I went out to the electronics store today (Sale on 32GB flash drives, woo!) and bought a drive. Agreeing with the slow part, took 6 1/2 hours to install Windows Server 2008 R2 with none of the bells and whistles (During which, a process hung because of the lack of a second NIC [Apparently this happens a lot?], had to restart the install from there). Boot and operation, however, was quite fast. Still have not tested the behavior of it on a Mac, but I’m assuming the speeds and performance would be similar to my PC, as they both have more than 2 GB of RAM, along with a Core i5 in the newer, entry level MacBook Pro.

Fusion is also very nice, as it’s cheaper than Workstation (My workstation license was about $200, but I use it almost daily, and haven’t had any regrets with that purchase [Heck of a lot cheaper than an additional computer to debug stuff on])

The R2 idea was tossed out, as I refused to add a second Virtual NIC, because then (For some reason, small bug or misconfiguration I think) it would hang my host card. I settled with Server 2008 SP2 instead.

When I was first looking to install Inventor on my Mac, I was advised by basically all our mentors to dual boot rather than using a virtual machine for CAD. A few of them had done it, and they said the program would run faster if just made a partition.

What I ended up doing was running Boot Camp and making a partition with windows xp on it. I know that’s what you said you’d rather not do, but it really is quite simple, and I’ve been using CAD this way all year. I only made a 40 gb partition, so it hardly effected my computer (though I might make a bigger partition depending on how much you CAD), and if I ever want to delete the partition it’s very easy to do.

Sorry if I was being unclear, but the drive I have is a bootable USB that runs Windows. My thoughts were if we needed to, it could also be booted by connecting it as a disk inside VMWare. The idea is to have 4 or 5 USB drives like this, so that we aren’t requiring anyone to obtain, install, and troubleshoot their own installation. The drives are not a requirement to be used, but if someone wants to use Inventor, but doesn’t have any Windows-boot machines, this would be where it is used.

Ditto.

If the goal is just to get kids learning CAD a bit, and have them able to make simpler parts and assemblies, this is a solution.

If you want to do serious work, you really don’t want to run through a VM.

I use a MacBook Air 2011 as my everyday computer, including a little bit of CAD work in SolidWorks 2011.

I work in Windows 7 95% of the time and run a tiny Mac OS X partition and a large Boot Camp Windows partition on the internal SSD. The remaining 5% of the time I’m in Ubuntu Linux, which I boot off a fast USB 2.0 Flash drive.

To be honest, I’ve never booted a full Windows off an external flash, but I have booted Windows PE (Hiren’s Boot CD/USB).

Here are my thoughts on what you’re trying to do:

  1. I wouldn’t do a VM approach. I’ve seen Parallels running Windows + SolidWorks and was not happy with the results at all. Slow, unresponsive, and getting hardware graphics acceleration working properly was a huge pain. Even with acceleration it working, it felt barely usable.

  2. Not all USB sticks are created equal. I’m assuming the Macs you are using are USB 2.0 (not 3.0… argh Apple). There is a huge variation in USB 2.0 flash drives in terms of speed. If you bought the cheapest no-name ones that happened to be on sale, chances are you won’t be happy with your result. Check out: http://usbflashspeed.com/ for reference. I wouldn’t try running an OS off anything less than 20MB/s read and write.

  3. Install rEFIt (http://refit.sourceforge.net/) on all the Macs, as it will make OS selection on boot-up much easier. rEFIt seems to be a lot less picky when it comes to booting non-Mac partitions, compared to the standard Mac boot.

  4. I don’t know how Windows Activation (and drivers) will work. I’m assuming all the Macs you are going to use have identical hardware? Once you activate Windows with a specific USB flash drive, you may need to use that computer/flash drive combination forever. You might not be able to interchange flash drives between computers.

  5. Create an exFAT partition on the local hard drive for virtual memory, or disable virtual memory altogether. Using flash for virtual memory is not a great idea since it has a limited number of read/write cycles before it will fail. Enabling ReadyBoost is an interesting option, but I don’t know if it will help if you run it on the same USB Flash drive as your OS. If you want to try it, create an extra empty exFAT partition on the flash drive.

  6. I would really stay away from Windows Server if possible. Driver support always seem to be an issue with Server versions, and there is a lot of bloat you will never use. Plus it will be tuned to run background tasks with a higher priority, meaning it won’t feel as responsive.

What you are trying to do really has a good use case, regardless of whether you are using a Mac or PC.

It’d be nice for teams to be able to have a stash of USB flash drives that they could send home with students and mentors, and have an instant CAD environment all ready to go.

Please keep us updated!

Alright, so, this has changed a LOT from my original idea, but I have been making security and usage choices.

Did NOT use Server 2008, it refused to install Inventor, decided to use Windows 7 Professional, just for the master image, this may change later on.

The software still contains Inventor 2013, with Offline Help. I have added
Antivirus software
Internet-Tunneling Remote Desktop (TeamViewer) for quick admin tasks.

The flash disk I bought was just my test drive, I’m not going to buy a $50-$70 drive for the initial tests and checks. Most likely if this is a viable solution, and everyone would use it, I would then go and buy nicer drives. The writes are slower than the reads, but there are going to be very few writes to the drive in all, because most files will be saved remotely (A little tedious, but doable).

Another idea I have, is a BYOD (bring your own drive) type-thing, where I would install and configure a drive brought to me, alongside the 4 or 5 preinstalled drives.

Because the actual image resides as a Clonezilla image on my external drive, duplication is very easy.

After installing Windows 7 and Inventor, I’m getting constant bluescreens on the portable drive when booted normally. I am unable to diagnose them as the minidump files are not being written anywhere. (I checked the flash disk’s C:, and I also checked C:\ on the internal hard drive of my computer.) Is it possible that the two are causing collisions in drive assignments, and not allowing it to boot? (My setup machine was not a physical machine, I used a virtual, due to the massively long time it takes to set up over a USB2.0 line, then cloned it to a flash disk.) Is it possible to reassign C:\ to something like G:\ if this is the issue?

Very likely the problem is Windows is expecting G:, but now that you’re booting directly, it’s on C: instead and is confused…

I once installed Windows to D:, then deleted the C: partition. Thus D: was reassigned to C:. It would constantly blue screen during boot.

I created a tiny placeholder C: partition, reassigned the Windows partition back to D:, and it came right back up.

You might be able to reassign C: to G: with a partitioning tool, but I’m not sure if the reassignment will persist, or if Windows will react nicely.

There’s some discussion on the topic here:

The best thing might be to try and reinstall Windows again, ensuring the target drive is C: before the installation starts.

Actually, what I was meaning is the flash disk is C:, and my laptop has an internal drive, that is also C:, to make a total of 2 C:\ drives at once. I was wondering if there was a way to install Windows to say, a drive G:, so that the drive would not collide with any existing Windows installations? I would think the best way would be to mount an existing C:\ drive, then run the installation again. since the drive is an image, I am going to attempt to change the mapping of it. If that causes any issues at all, i will revert back to a reinstall with a mounted C:\ drive.

I plugged it into an older laptop, I had removed the internal hard disk drive, and it still bluescreened. I am now assuming it is not the C:\ collision, but a more serious error.

Windows could be complaining about the changes in “hardware” between your different setups: virtualized, physical booting, and now a completely different laptop.

This is a shot in the dark, but if you can still boot into the image in your virtual environment, try generalizing the image.

http://technet.microsoft.com/en-us/library/dd799233(v=ws.10).aspx

Also, the “Phase III” section of this article might be useful.

I was actually looking for an article like this (I had been doing so many different things, but it never occurred to me to remove the USB controller from the VM during the install, I managed to get a crashdump, and it was indeed an issue with the USB drivers and how Windows unmounts and remounts USB devices that are not NTFS on boot)

The article on ‘generalizing’ the image appears a little difficult to understand, but from what I gather, you run


cd C:\Windows\System32\sysprep
sysprep.exe

then a box pops up that you can select “Enter OOBE” and check “Generalize”

Ah. I got the normalization working, and right now I’m imaging the disk to a file.
So far my steps were

  1. Follow this guide http://ftanada.wordpress.com/2009/02/15/install-windows-7-on-a-usb-stickflash-drive/*
  2. Install Inventor
  3. Generalize the OS
  4. Boot Clonezilla, save image
  5. Restore image to Flash Drive with Clonezilla

*Changes to Guide in my case
I Used a physical disk, partitioned to have one same-size minus 1GB as the flash disk (of what the computer sees, not what is on the label, my 32 GB drive was actually 30.9 GB, so, partition was 29.9 GB), and another occupying the rest of the disk space. Formatted both as NTFS, named the additional space (The second partition) “Image Cache” and the 29.9 GB “Windows”

Clonezilla, image the “Windows” partition to the “Image Cache” partition, then restore it to the USB drive. (My reason for imaging is so that if I need to make duplicates, it’s very easy)

If you were being clever, you could get a 500GB hard disk, chop it into 5 partitions
(Windows installer disk, Windows install partition, Image cache, Clonezilla, and a universal bootloader) and make a laptop that you simply can set up, image, and prepare for restore without any external drives.

I have posted my methods on http://caddrive.joshpruim.com/ if anyone wants to contribute, or share their ideas, it’s an open Wiki.