How to Install a Second Operating System Onto an External Hard Drive From an .Iso File

While many PC users stick with the operating system that comes with their PC, others enjoy dabbling in other operating systems. If you want to use two operating systems on the same computer, you have a couple of options. The first is to simply create another partition on the hard drive, while the other is to use an external hard drive. The latter is the easier option and requires only that you change the correct settings to install the second operating system on your external hard drive. 

Things you will need
  • Blank CD-R or DVD-R
  • Program to burn the .iso file


1. Check to make sure that your particular operating system can be run on an external hard drive and supports dual-booting so you can safely run two operating systems on your computer. Certain operating systems, such as Windows, cannot be easily installed on external hard drives. However, you can easily install operating systems such as Ubuntu and various other derivatives of Linux on an external hard drive.

2. Burn the .iso operating system file to a bootable CD-R or DVD-R. You may use programs such as ImgBurn, CDBurnerXP or Nero, among others, to do the job.

3. Plug your external hard drive into the USB port on your computer.

4. Insert your burned CD-R or DVD-R into the CD-Rom drive. Restart your computer.

5. Press any key to boot from the CD or DVD.

6. Follow the on-screen prompts to begin the installation. When it comes to choosing where to install the operating system, select your external hard drive and not the primary drive or partition. This ensures that you do not overwrite your first operating system. Click "Next" to proceed.

7. Follow the remaining on-screen prompts to complete the installation process. This varies from operating system to operating system, so consult your manual when necessary.

8. Restart the computer after installing the second operating system. Press "F1" or "F2" to enter the BIOS. Make sure that your external hard drive is given top boot priority, so that you can boot into the second operating system. Exit and save the changes.

9. Boot into your second operating system. As long as you are able to boot into your second operating system with no problems, then you've done everything correctly in installing the second operating system on an external hard drive.

Let me know the queries at Snehal [at] TechProceed [dot] com  :-)

                                Some Programmers' Jokes

                                “There are 10 kinds of people in the world: Those that know binary & those that don’t”

                                * * * 

                                Two bytes meet. The first byte asks, “Are you ill?”
                                The second byte replies, “No, just feeling a bit off.”

                                * * * 

                                Software is like sex: It’s better when it’s free.

                                * * * 

                                Q: how many programmers does it take to change a light bulb?
                                A: none, that’s a hardware problem

                                * * * 

                                “Knock, knock.”
                                “Who’s there?”
                                very long pause….

                                * * * 

                                A physicist, an engineer and a programmer were in a car driving over a steep alpine pass when the brakes failed. The car was getting faster and faster, they were struggling to get round the corners and once or twice only the feeble crash barrier saved them from crashing down the side of the mountain. They were sure they were all going to die, when suddenly they spotted an escape lane. They pulled into the escape lane, and came safely to a halt.
                                The physicist said “We need to model the friction in the brake pads and the resultant temperature rise, see if we can work out why they failed”.
                                The engineer said “I think I’ve got a few spanners in the back. I’ll take a look and see if I can work out what’s wrong”.
                                The programmer said “Why don’t we get going again and see if it’s reproducible?”

                                * * * 

                                Q: “Whats the object-oriented way to become wealthy?”
                                A: Inheritance

                                * * * 

                                A SQL query goes into a bar, walks up to two tables and asks, “Can I join you?”

                                * * * 

                                A man flying in a hot air balloon suddenly realizes he’s lost. He reduces height and spots a man down below. He lowers the balloon further and shouts to get directions, “Excuse me, can you tell me where I am?”
                                The man below says: “Yes. You’re in a hot air balloon, hovering 30 feet above this field.”
                                “You must work in Information Technology,” says the balloonist.
                                “I do” replies the man. “How did you know?”
                                “Well,” says the balloonist, “everything you have told me is technically correct, but It’s of no use to anyone.”
                                The man below replies, “You must work in management.”
                                “I do,” replies the balloonist, “But how’d you know?”*
                                “Well”, says the man, “you don’t know where you are or where you’re going, but you expect me to be able to help. You’re in the same position you were before we met, but now it’s my fault.”

                                * * * 

                                Programming in C is like fast dancing on a newly-waxed dance floor by people carrying razors.

                                * * * 

                                Program, noun: A magic spell cast upon a computer to enable it to turn input into error messages.

                                * * * 

                                If Java is the answer, it must have been a really verbose question.

                                * * * 

                                Software developers like to solve problems. If there are no problems handily available, they will create their own problems.

                                * * * 

                                To understand what recursion is, you must first understand recursion.

                                * * * 

                                Unix is user friendly. It’s just very particular about who its friends are.

                                * * * 

                                20 very useful Java code snippets for Java Developers

                                Following are few very useful Java code snippets for Java developers. Few of them are written by me and few are taken from other code reference. Feel free to comment about the code and also add your code snippet.


                                1. Converting Strings to int and int to String

                                String a = String.valueOf(2);   //integer to numeric string
                                int i = Integer.parseInt(a); //numeric string to an int

                                2. Append text to file in Java

                                Updated: Thanks Simone for pointing to exception. I have changed the code.
                                BufferedWriter out = null;
                                try {
                                    out = new BufferedWriter(new FileWriter(”filename”, true));
                                } catch (IOException e) {
                                    // error processing code
                                } finally {
                                    if (out != null) {

                                3. Get name of current method in Java

                                String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();

                                4. Convert String to Date in Java

                                java.util.Date = java.text.DateFormat.getDateInstance().parse(date String);
                                SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy" );
                                Date date = format.parse( myString );

                                5. Connecting to Oracle using Java JDBC

                                public class OracleJdbcTest
                                    String driverClass = "oracle.jdbc.driver.OracleDriver";
                                    Connection con;
                                    public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException
                                        Properties props = new Properties();
                                        String url = props.getProperty("db.url");
                                        String userName = props.getProperty("db.user");
                                        String password = props.getProperty("db.password");
                                        con=DriverManager.getConnection(url, userName, password);
                                    public void fetch() throws SQLException, IOException
                                        PreparedStatement ps = con.prepareStatement("select SYSDATE from dual");
                                        ResultSet rs = ps.executeQuery();
                                        while (
                                            // do the thing you do
                                    public static void main(String[] args)
                                        OracleJdbcTest test = new OracleJdbcTest();

                                6. Convert Java util.Date to sql.Date

                                This snippet shows how to convert a java util Date into a sql Date for use in databases.

                                java.util.Date utilDate = new java.util.Date();
                                java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());

                                7. Java Fast File Copy using NIO

                                public static void fileCopy( File in, File out )
                                            throws IOException
                                        FileChannel inChannel = new FileInputStream( in ).getChannel();
                                        FileChannel outChannel = new FileOutputStream( out ).getChannel();
                                //          inChannel.transferTo(0, inChannel.size(), outChannel);      // original -- apparently has trouble copying large files on Windows
                                            // magic number for Windows, 64Mb - 32Kb)
                                            int maxCount = (64 * 1024 * 1024) - (32 * 1024);
                                            long size = inChannel.size();
                                            long position = 0;
                                            while ( position < size )
                                               position += inChannel.transferTo( position, maxCount, outChannel );
                                            if ( inChannel != null )
                                            if ( outChannel != null )

                                8. Create Thumbnail of an image in Java

                                private void createThumbnail(String filename, int thumbWidth, int thumbHeight, int quality, String outFilename)
                                        throws InterruptedException, FileNotFoundException, IOException
                                        // load image from filename
                                        Image image = Toolkit.getDefaultToolkit().getImage(filename);
                                        MediaTracker mediaTracker = new MediaTracker(new Container());
                                        mediaTracker.addImage(image, 0);
                                        // use this to test for errors at this point: System.out.println(mediaTracker.isErrorAny());
                                        // determine thumbnail size from WIDTH and HEIGHT
                                        double thumbRatio = (double)thumbWidth / (double)thumbHeight;
                                        int imageWidth = image.getWidth(null);
                                        int imageHeight = image.getHeight(null);
                                        double imageRatio = (double)imageWidth / (double)imageHeight;
                                        if (thumbRatio < imageRatio) {
                                            thumbHeight = (int)(thumbWidth / imageRatio);
                                        } else {
                                            thumbWidth = (int)(thumbHeight * imageRatio);
                                        // draw original image to thumbnail image object and
                                        // scale it to the new size on-the-fly
                                        BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);
                                        Graphics2D graphics2D = thumbImage.createGraphics();
                                        graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
                                        graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
                                        // save thumbnail image to outFilename
                                        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename));
                                        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
                                        JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);
                                        quality = Math.max(0, Math.min(quality, 100));
                                        param.setQuality((float)quality / 100.0f, false);

                                9. Creating JSON data in Java

                                Read this article for more details.
                                Download JAR file json-rpc-1.0.jar (75 kb)

                                import org.json.JSONObject;
                                JSONObject json = new JSONObject();
                                json.put("city", "Mumbai");
                                json.put("country", "India");
                                String output = json.toString();

                                10. PDF Generation in Java using iText JAR

                                Read this article for more details.
                                import java.util.Date;
                                import com.lowagie.text.Document;
                                import com.lowagie.text.Paragraph;
                                import com.lowagie.text.pdf.PdfWriter;
                                public class GeneratePDF {
                                    public static void main(String[] args) {
                                        try {
                                            OutputStream file = new FileOutputStream(new File("C:\\Test.pdf"));
                                            Document document = new Document();
                                            PdfWriter.getInstance(document, file);
                                            document.add(new Paragraph("Hello Kiran"));
                                            document.add(new Paragraph(new Date().toString()));
                                        } catch (Exception e) {

                                11. HTTP Proxy setting in Java

                                Read this article for more details.
                                System.getProperties().put("http.proxyHost", "someProxyURL");
                                System.getProperties().put("http.proxyPort", "someProxyPort");
                                System.getProperties().put("http.proxyUser", "someUserName");
                                System.getProperties().put("http.proxyPassword", "somePassword");

                                12. Java Singleton example

                                Read this article for more details.
                                Update: Thanks Markus for the comment. I have updated the code and changed it to more robust implementation.

                                public class SimpleSingleton {
                                    private static SimpleSingleton singleInstance =  new SimpleSingleton();
                                    //Marking default constructor private
                                    //to avoid direct instantiation.
                                    private SimpleSingleton() {
                                    //Get instance for class SimpleSingleton
                                    public static SimpleSingleton getInstance() {
                                        return singleInstance;
                                One more implementation of Singleton class. Thanks to Ralph and Lukasz Zielinski for pointing this out.
                                public enum SimpleSingleton {
                                    public void doSomething() {
                                //Call the method from Singleton:

                                13. Capture screen shots in Java

                                Read this article for more details.
                                import java.awt.Dimension;
                                import java.awt.Rectangle;
                                import java.awt.Robot;
                                import java.awt.Toolkit;
                                import java.awt.image.BufferedImage;
                                import javax.imageio.ImageIO;
                                public void captureScreen(String fileName) throws Exception {
                                   Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
                                   Rectangle screenRectangle = new Rectangle(screenSize);
                                   Robot robot = new Robot();
                                   BufferedImage image = robot.createScreenCapture(screenRectangle);
                                   ImageIO.write(image, "png", new File(fileName));

                                14. Files-Directory listing in Java

                                File dir = new File("directoryName");
                                  String[] children = dir.list();
                                  if (children == null) {
                                      // Either dir does not exist or is not a directory
                                  } else {
                                      for (int i=0; i < children.length; i++) {
                                          // Get filename of file or directory
                                          String filename = children[i];
                                  // It is also possible to filter the list of returned files.
                                  // This example does not return any files that start with `.'.
                                  FilenameFilter filter = new FilenameFilter() {
                                      public boolean accept(File dir, String name) {
                                          return !name.startsWith(".");
                                  children = dir.list(filter);
                                  // The list of files can also be retrieved as File objects
                                  File[] files = dir.listFiles();
                                  // This filter only returns directories
                                  FileFilter fileFilter = new FileFilter() {
                                      public boolean accept(File file) {
                                          return file.isDirectory();
                                  files = dir.listFiles(fileFilter);

                                15. Creating ZIP and JAR Files in Java

                                public class ZipIt {
                                    public static void main(String args[]) throws IOException {
                                        if (args.length < 2) {
                                            System.err.println("usage: java ZipIt file1 file2 file3");
                                        File zipFile = new File(args[0]);
                                        if (zipFile.exists()) {
                                            System.err.println("Zip file already exists, please try another");
                                        FileOutputStream fos = new FileOutputStream(zipFile);
                                        ZipOutputStream zos = new ZipOutputStream(fos);
                                        int bytesRead;
                                        byte[] buffer = new byte[1024];
                                        CRC32 crc = new CRC32();
                                        for (int i=1, n=args.length; i < n; i++) {
                                            String name = args[i];
                                            File file = new File(name);
                                            if (!file.exists()) {
                                                System.err.println("Skipping: " + name);
                                            BufferedInputStream bis = new BufferedInputStream(
                                                new FileInputStream(file));
                                            while ((bytesRead = != -1) {
                                                crc.update(buffer, 0, bytesRead);
                                            // Reset to beginning of input stream
                                            bis = new BufferedInputStream(
                                                new FileInputStream(file));
                                            ZipEntry entry = new ZipEntry(name);
                                            while ((bytesRead = != -1) {
                                                zos.write(buffer, 0, bytesRead);

                                16. Parsing / Reading XML file in Java

                                Sample XML file.
                                xml version="1.0"?>
                                Java code to parse above XML.
                                import javax.xml.parsers.DocumentBuilder;
                                import javax.xml.parsers.DocumentBuilderFactory;
                                import org.w3c.dom.Document;
                                import org.w3c.dom.Element;
                                import org.w3c.dom.Node;
                                import org.w3c.dom.NodeList;
                                public class XMLParser {
                                    public void getAllUserNames(String fileName) {
                                        try {
                                            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                                            DocumentBuilder db = dbf.newDocumentBuilder();
                                            File file = new File(fileName);
                                            if (file.exists()) {
                                                Document doc = db.parse(file);
                                                Element docEle = doc.getDocumentElement();
                                                // Print root element of the document
                                                System.out.println("Root element of the document: "
                                                        + docEle.getNodeName());
                                                NodeList studentList = docEle.getElementsByTagName("student");
                                                // Print total student elements in document
                                                        .println("Total students: " + studentList.getLength());
                                                if (studentList != null && studentList.getLength() > 0) {
                                                    for (int i = 0; i < studentList.getLength(); i++) {
                                                        Node node = studentList.item(i);
                                                        if (node.getNodeType() == Node.ELEMENT_NODE) {
                                                            Element e = (Element) node;
                                                            NodeList nodeList = e.getElementsByTagName("name");
                                                            System.out.println("Name: "
                                                                    + nodeList.item(0).getChildNodes().item(0)
                                                            nodeList = e.getElementsByTagName("grade");
                                                            System.out.println("Grade: "
                                                                    + nodeList.item(0).getChildNodes().item(0)
                                                            nodeList = e.getElementsByTagName("age");
                                                            System.out.println("Age: "
                                                                    + nodeList.item(0).getChildNodes().item(0)
                                                } else {
                                        } catch (Exception e) {
                                    public static void main(String[] args) {
                                        XMLParser parser = new XMLParser();

                                17. Convert Array to Map in Java

                                import java.util.Map;
                                import org.apache.commons.lang.ArrayUtils;
                                public class Main {
                                  public static void main(String[] args) {
                                    String[][] countries = { { "United States", "New York" }, { "United Kingdom", "London" },
                                        { "Netherland", "Amsterdam" }, { "Japan", "Tokyo" }, { "France", "Paris" } };
                                    Map countryCapitals = ArrayUtils.toMap(countries);
                                    System.out.println("Capital of Japan is " + countryCapitals.get("Japan"));
                                    System.out.println("Capital of France is " + countryCapitals.get("France"));

                                18. Send Email using Java

                                import javax.mail.*;
                                import javax.mail.internet.*;
                                import java.util.*;
                                public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException
                                    boolean debug = false;
                                     //Set the host smtp address
                                     Properties props = new Properties();
                                     props.put("", "");
                                    // create some properties and get the default Session
                                    Session session = Session.getDefaultInstance(props, null);
                                    // create a message
                                    Message msg = new MimeMessage(session);
                                    // set the from and to address
                                    InternetAddress addressFrom = new InternetAddress(from);
                                    InternetAddress[] addressTo = new InternetAddress[recipients.length];
                                    for (int i = 0; i < recipients.length; i++)
                                        addressTo[i] = new InternetAddress(recipients[i]);
                                    msg.setRecipients(Message.RecipientType.TO, addressTo);
                                    // Optional : You can also set your custom headers in the Email if you Want
                                    msg.addHeader("MyHeaderName", "myHeaderValue");
                                    // Setting the Subject and Content Type
                                    msg.setContent(message, "text/plain");

                                19. Send HTTP request & fetching data using Java

                                public class Main {
                                    public static void main(String[] args)  {
                                        try {
                                            URL my_url = new URL("");
                                            BufferedReader br = new BufferedReader(new InputStreamReader(my_url.openStream()));
                                            String strTemp = "";
                                            while(null != (strTemp = br.readLine())){
                                        } catch (Exception ex) {

                                20. Resize an Array in Java

                                * Reallocates an array with a new size, and copies the contents
                                * of the old array to the new array.
                                * @param oldArray  the old array, to be reallocated.
                                * @param newSize   the new array size.
                                * @return          A new array with the same contents.
                                private static Object resizeArray (Object oldArray, int newSize) {
                                   int oldSize = java.lang.reflect.Array.getLength(oldArray);
                                   Class elementType = oldArray.getClass().getComponentType();
                                   Object newArray = java.lang.reflect.Array.newInstance(
                                   int preserveLength = Math.min(oldSize,newSize);
                                   if (preserveLength > 0)
                                      System.arraycopy (oldArray,0,newArray,0,preserveLength);
                                   return newArray;
                                // Test routine for resizeArray().
                                public static void main (String[] args) {
                                   int[] a = {1,2,3};
                                   a = (int[])resizeArray(a,5);
                                   a[3] = 4;
                                   a[4] = 5;
                                   for (int i=0; i
                                      System.out.println (a[i]);