If you have followed the instructions in this article and still experience problems with your Ubuntu Linux distro hanging on shutdown, you can enable verbose booting and shutdown in your kernel options. I find this to be a very useful option to enable, and tend to leave it enabled at all times so I notice any potential problems with Ubuntu booting and shutting down. To enable verbose booting and shutdown in Ubuntu:
Before you begin, open a terminal window and type this command to back up the file:
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst.old
Type this command to edit the menu.lst file:
sudo nano /boot/grub/menu.lst
Near the end of this file you will find your kernel listing similar to the above graphic. You will want to remove the "quiet" option from the kernel line of your default kernel. Update Grub:
sudo update-grub
The result of this modification will be a verbose boot and shutdown screen. You will want to look for problems during your Ubuntu boot and shutdown for problems. Modules and services that are loaded will be followed by <OK>, if any modules or services are having a problem the line will report a <FAIL> showing you what area of your system to investigate next.