After successful install on USB HDD, reboot resulted in grub 21 error. Loaded XP Pro boot disk and ran C:/windows fixmbr. XP Pro is now OK. Now, can’t boot into 11.1, and BIOS set for first boot as FDD.
Had same issue with latest Ubuntu. No one there had the solution.
I really want to run Linux, but I’m beginning to wonder if it is really ready for prime time.
Thanks in advance for any support that can be offered!!
You installed Linux on an external USB drive, can’t get it to work, and wonder if it is ready for prime time?
How about putting winXP or Vista on an external hard drive? (and if you can’t, then say the same that they are not ready for prime time).
I recommend you study up on how boot managers function wrt the MBR.
If I correctly interpreted your response to my plea for help, you’re telling me to shove it, right?
No, I am noting that installing an OS on an external hard drive is not a trivial matter. Stating Linux is not ready for prime time, based on the fact that you can not get it to work, when in fact MS-Windows products are even worse than Linux in this regard, suggests to me your “not ready for prime time” statement is based on a false premise, and is more an expression of frustration, than a plea for help that is likely to garner a helpful response.
I have not tried this myself, but if it was me, I would setup my main hard drive to boot to WinXP, just the same way you have.
I would then setup the BIOS in my PC, changing the boot order to USB 1st, and internal hard drive second.
I would then plug in the USB, and boot the PC. It should try to boot Linux which is on the external drive. If the boot code on MBR on that external drive is not setup correctly, the external drive will fail to boot. Your PC will either “hang” or it will boot WinXP at this point.
You then need to reboot, with your external drive connected, and with the Linux CD in your CD drive, and with the openSUSE repair function, setup the MBR on the EXTERNAL DRIVE (not on your internal drive) to boot linux.
Once that is set up properly, it should function such that with the USB connected, it will boot to Linux. With the USB not connected, it should boot to WinXP.
Others, more experienced in this than I, can give you further details. But that is the philosophy that I would follow.
Search this sub-forum with my username and “USB” and you’ll find 2 or 3 threads about this. As you’ll see, there was a bit of trial-and-error before reaching the desired (successful in both cases) result. I’ll give you an overview as follows that hopefully helps you decide how you want to approach a solution (there are a number of methods to use). This is a tad lengthy; the extra length is in the interest of other users too, as this is not an uncommon question.
The issues is not difficult in itself - but it does require understanding how boot works on an x86 machine, how the Windows boot process works, and how grub works. This has nothing to do with what is ready for prime time, and for that matter, you would find that grub is a great deal more flexible in this situation than any version of Windows pre-Vista (so if you have Vista, disregard the following and I can give you an easy straightforward solution).
There is one critical decision you must make up front, and here you may be limited by your machine’s bios. Some users want the OS on USB and the OS on internal disk to operate entirely independent of one another, there is no actual dual-boot (e.g., the user’s bios may have a boot toggle menu which allows on-the-fly switching of the boot device). Other users want the system to boot from the USB only if it is attached, and when it is not, to automatically drop to booting from the internal disk - whether this works depends on how the particular bios in that machine handles USB boot (there is not a standard) and, in many cases, the type of USB device (e.g., a thumb drive may not behave the same as an external disk enclosure). And there are other preferred approaches that users have.
What usually happens is that the first internal drive is configured for boot (the Windows default), openSUSE installs grub code in that (the internal) disk’s MBR with a pointer to the boot loader which is inside openSUSE on the USB (similar to Windows except with Windows the loader must be on the same drive). The machine runs grub in the internal’s MBR, that grub finds its loader program on the USB, the loader boots openSUSE or if desired it “chainloads” back to Windows, i.e., it calls the Windows loader on the internal drive which then boots Windows (i.e., grub on the USB does exactly the same function as the Windows MBR code on the internal does). This is all fine until the USB is disconnected, in which case the code in the internal’s MBR cannot find the loader on the USB (obviously because it’s not there now), and the boot process chain is broken; system hangs. So this method requires the USB to always be connected and powered on.
Consequently, most users try to do the reverse. Configure the bios to boot from USB, grub is in USB’s MBR pointing to loader on same device, grub also set up to chainload to Windows. This method has 1 or 2 issues. The first is that doing the setup is somewhat counter-intuitive; the user must in advance configure the USB as first boot device in the bios and must take extra steps to ensure that grub thinks the USB is the first disk when it is installed to (that disk’s) MBR. The second which can be very frustrating is that, once all set up, the user may find that if the USB is not attached, the bios may not drop down to the next boot device configured in the bios (i.e., the internal disk); the bios may just hang. This is totally unpredictable; again it depends entirely on how the bios is written. So the user has no way of knowing what the bios will do without doing all the setup and just testing it.
There is yet another approach, and this is what I have begun to recommend most often because it is the most predictable and it does not touch Windows in any way, which is more comfortable for many users. Essentially, the boot process on the external is set up very much like on the internal. The boot code Windows installs in the MBR (e.g., with the fixmbr command) is not at all uniquely Windows; it is very simple, generic code. It simply reads down the partition table in the MBR looking at the “boot flag” (in Windows terminology, making the partition “active”). The first partition it finds, the code goes to the boot sector on that partition and transfers control to code installed there; this code in turn runs the actual loader program. So in this approach, grub is not installed in the USB MBR; generic (or the Windows) code is instead. And grub is installed to the openSUSE partition boot sector (very similar to ntldr being on Windows C). But the critical dependency in this method (regardless of OS), is that the boot partition must be a “primary” partition, excluding the “extended primary”, i.e., it can only be 1 of the 3 possible such primaries (on an x86 machine there can be no more than 4 primaries). So for this approach to work the user needs to instruct openSUSE during installation how to partition the USB, making sure that the openSUSE root is on a primary partition and that grub gets installed to that partition’s boot sector, and not to any MBR. With this setup, whichever disk is setup as boot device in the bios will boot; if it is the USB, grub can also boot Windows. If the USB is disconnected, the bios may still not drop to the internal, but at least the setup has been straightforward and is easier to maintain. If the boot device is the internal, Windows will not be be able to boot the USB (because the Windows code, except for Vista, cannot span disks), but at least the Windows set up remains untouched. A final critical detail is that there is more than one method to install the generic boot code to the USB MBR; depends on the machine. Windows will not do it. openSUSE can do it, but you have to kinda force it to. So I usually just copy the Windows code over from the internal’s MBR and be done with it; that is easy to do.
This may all sound very unfamiliar. That is to be expected. But in this situation where Windows is the other OS, there is unfortunately no single, simple answer - it depends on the user preference and on the machine. So I suggest you consider which approach you want to go for, and we can work on getting that particular method set up.
P.S. Setting the bios to boot from FDD (floppy) will have no bearing, I presume you meant to write USB first?
Replying to another user, I was reminded of this thread How to boot XP first instead of SUSE?. In this thread we use the method of installing grub to the USB MBR. Read the first post and then jump to #18, read to the end. OP has a good howto summary.
It was after this situation that I biased towards putting generic code in the USB MBR instead, as I described in my prev post to you. Note that in the thread linked above I also qualified that with the USB device set for boot and that device removed, the bios might hang. As it turns out, that did not happen and all was well.
Bottom line, it can be done either way.
Thanks for being patient with a linux novice! Rather than spending countless hours trying to figure it out, I went and bought ($67.) an internal 160GB WD hard drive for the laptop.
Between the time it took me to go and buy the hardware, remove the XP Pro HDD, and install the new drive, around than 60 minutes was invested.
The Opensuse 11.1, clean install came off without any issues!! The system is working really well!
Now I need to figure out how to get the software to see my USB wireless laptop adapter, and access point.
If you have any suggestions, they would be greatly appreciated.
Thanks in advance!!
No thanks due, you found your own best solution!
As far as the wireless card, what is important there is the chipset that controls the device. I suggest opening a new thread in the wireless subforum under the networking forum. If you can provide the card manufacturer and the chipset, experts there will be able to point you towards a solution. One way to get that info is to boot into openSUSE, open a terminal window, switch to root, do these commands, and post the output in your thread:
lspci
hwinfo --netcard
Thank you!!
You bet - good luck.
egrpioneer
I would say the best solution to get both winxp and linux on the same disc is to set aside a partition for winxp and leave 10 or 20 gig free for your linux root (/) partiton and swap space.
Now install winxp and then linux on the free space.
Once linux is installed, log on as root and format the usb disc ext3 and make the external usb disc the /home mount point.
This way the disc will be mounted on boot and you won’t have all the usb boot problems.
(I have used this as a sharing option on my linux server with no problems.)