Damn Streight! Grub rocks! 
 
Here's how I do a dual boot using GRUB ...with Windows in the passenger seat 
(secondary master). 
 
 
IDE1--- Primary Master | MBR | -- Linux -- | 
          | 
        Primary Slave ---| optical Reader | 
 
IDE2----Secondary Master |Windows (boot sector an all)| 
          | 
        Seondary Slave --| optical Burner | 
 
Windows likes to be first so you need to hack grub to make it think it's  
master <grin>. 
 
Here's my grub config file for te above config: 
~~~~~~~~~~ 
 
title Windows XP 
    map (hd1) (hd0) 
    root (hd1,0) 
    makeactive 
    chainloader +1 
 
~~~~~~~~~~ 
 
It works very well. Here's what I'm basing it on: 
 
~~~~~~~~~~ 
 
This is a FIRST DRAFT of instructions (suitable for Newbies) to add 
Linux to a current Windows XP computer. 
 
If you are a Newbie reading this, check google for a later draft. You 
might want to use Google advanced group search at 
http://groups.google.com/advanced_group_search with ALL the words: 
 
   newbie sally shears Windows XP daul boot 
 
Also, Newbies, please reply to me or in the usenet group with feedback on 
anything that's unclear or doesn't work. 
 
Hackers: Please reply in this newsgroup with comments and changes. I've 
worked my way through all of this, but some of you know a lot more than I 
do! Thanks to those who have helped along the way. 
 
  -- Sally 
 
Windows XP Linux Dual Boot 
 
For the past several years, Linux has become easier and easier to install 
and use. The SuSE installer would partition your hard disk, shrink Windows 
to make room for Linux and add a boot menu so you could choose Linux or 
Windows. On the Mac, it was the same. Also the same in other Linux 
distributions. 
 
But, now in 2002, the available PC's have Windows XP with a new file 
system (ntfs) that makes things much more difficult. The only easy route 
is to discard Windows and let the Linux installer create a Linux-only 
computer. 
 
Skilled hackers know their way around all the obstacles, and much of this 
has been posted here. But, abbreviated recipes won't be much help to 
Newbies trying to do this for the first time. 
 
The purpose of this article is to provide a guide, accessable even to 
Newbies, for creating the desired Linux-plus-Windows installation. 
 
 
What I wanted: 
 
 1. Nice Linux machine. 
 2. Easy to re-boot into Windows from time to time. 
 3. Able to save files in either Linux or Windows and then see them from 
the other. 
 4. Easy to return the machine to it's original Windows-only state. 
 
 
Limitations of this article: 
 
 - I'm doing this in SuSE Linux ver 8.1; some of the problems I'm solving 
may be handled by later versions of SuSE Linux or in other Linux 
distributions. Caveat reader. 
 - My approach is a second hard disk drive for Linux, so this won't work 
for laptops. Some, not all, the comments below will be relevant to 
laptops. 
 - I'm working only with SuSE Linux. A similar approach will probably work 
wtih other Linux distributions, but the details may be different. Hackers, 
please comment. 
 - My primary desktop environment is Mac OS X, not Windows, so I may be 
missing some obvious points about Windows. 
 - My instructions assume you are using the graphic user interface in 
Linux (KDE) and not the text-only approach sometimes used for servers. 
 
 
Problems to solve: 
 
 1. Today's machines come with Windows XP. The XP file system is ntfs (a 
more modern file system than FAT which was used up to Win98). The Windows 
XP file system fills the whole disk, leaving no room for Linux. 
 
 2. SuSE installer has a partition re-sizer to make room for Linux, but it 
won't resize the ntfs file system, only the older FAT file system. The 
only option in the SuSE installer is to delete the Windows XP system. We 
don't want to do that! There is no easy way to setup "dual boot". 
 
 2a. SuSE suggest the easiest approach is to delete the Windows XP 
partition and create a new FAT file system for Windows, and then resize 
that partition with the SuSE installer. Ugh! This creates a new set of 
problems: Windows XP may not work as well with FAT. You may not have 
installer CDs to install Windows XP in a FAT file system. We want the 
Windows-aspect of our computer to be 100% "standard". 
 
 3. SuSE Linux can "see" the Windows ntfs partition and read from it, but 
cannot write files on the ntfs file system. Windows deals only with 
Windows-stuff and can't even "see" the Linux partition. The recommended 
solution, if keeping the ntfs file system for Windows, is to create a 
FAT32 partition that both OS's can read/write and use this for files to be 
accessed from both sides. 
 
All the above leads me to an easier approach: A second hard disk... 
 
 4. Win XP will only boot from "first" hard disk. (There are some 
technical details here, but I believe the restriction is that Windows will 
only boot from the first hard disk in boot-priority order.) 
 
 5. Many PC vendors only provide a "Restore" cd, not a complete "Install" 
cd for Windows. Comments here on usenet suggest that if you resize the Win 
partition, you cannot reinstall Win XP from these "Restore" disks without 
going back to scratch (that is, without resetting the whole hard disk 
drive to be dedicated to Windows.) Again, Windows deals only with 
Windows-stuff. 
 
 6. We want to make sure that a re-install of Windows won't wipe out your 
Linux. In particular, that it not wipe out the nice "Choose your OS.." 
menu when booting. Using the restore disk will probably overwrite the 
whole drive in question, including the Master Boot Record ("MBR") where 
the Linux boot manager is located. Therefore, we don't want to put the 
nice Linux boot-manager on the Windows drive. Instead, we'll put it on a 
separate Linux hard disk drive. Also, for the same reasons, we want the 
FAT32 partition to be on the Linux drive. (Note: It's going to be harder 
on Laptops... Most laptops have only one hard drive.) 
 
 
Assumptions: 
 
 - You are using a new consumer PC. 
 - It has Windows XP; I also think Apple is great, but this article is NOT 
about installing on an Apple computer. 
 - It has one ATA/IDE/EIDE-type hard disk drive 
 - You can add a second hard disk drive 
 - Your Windows XP and your SuSE Linux installations will be standard 
 
 
My approach to solving the problems: 
 
 - Add a second hard disk drive for Linux 
 - Make Linux the "first" drive, and Windows the "second" 
 - Add a FAT32 partition to the linux drive that both operating systems 
can read/write. Format this partition as FAT32 in Windows. 
 - Configure the Linux boot loader (GRUB) to give you the choice of 
Windows or Linux at boot time. 
 - Learn to "mount" the FAT partition in Linux. 
 
 
Major alternatives to my approach: 
 
 - instead of dual boot, create a Linux only machine. This is much easier, 
the installer will take care of everything. 
 - instead of a second hard drive, resize the Windows partition and put 
everything on one drive 
 - instead of configuring the boot loader, twiddle the bios to change the 
boot priority order of the hard disks (see step 6 below) 
 - instead of creating a shared partition, just email yourself any 
document you want to use in the other operating system 
 
 
Basics you need to know: 
 
 - "Booting" means loading the system software from the hard drive. 
Booting takes place when you turn on or restart your computer. 
 
 - In Windows, your disk drives and partitions are listed as C:, D:, E:, 
etc. 
 
 - In Linux, your disk drives are hda, hdb, etc., where hda is the "first" 
drive and hdb is the "second". 
 
 - Each drive may be divided into partitions which work like "virtual" 
disk drives. 
 
 - In Windows, partitions appear as additional "Local Disk Drives" E:, F:, 
etc. 
 
 - In Linux, partitions are identified by adding a number to the drive 
label. So, hda1 is the first partition on the first drive, hda2 is the 
second partition on the first drive, etc. 
 
 - It's crazy, but for historical reasons, the boot programs know the 
drives as (hd0) and (hd1), that is, zero is first, one is second. 
Naturally! For the boot loader, the partitions are indicated with a comma 
and digit, again counting up from 0. 
  -- So (hd1,0) is the second hard drive, first partition. 
  -- Similarly, (hd0,2) is the first hard drive, third partition. 
 
(Fortunately, once you've set up your boot menu, you can forget about the 
"start from zero" scheme for just about everything you'll want to do.) 
 
 - Within a partition, a file system has to be created before you can do 
anything else. SuSE will take care of this for the Linux partitions, and 
Windows handles it's drive. We'll use the Windows format utility for the 
FAT32 partition. 
 
 - For the main Linux partition, the filesystem is probably ReiserFS, the 
SuSE default. But you could choose ext2 or ext3. 
 
 - It's confusing, but the label "FAT" is used for three slightly 
different file systems: FAT, FAT16, and FAT32. We'll use FAT32, the most 
modern of these because it allows long file names. Linux sometimes uses 
"vfat" for FAT32. 
 
 
Steps: 
 
STEP 1. Test your computer with Windows XP. Set up your Windows users, 
register with Microsoft, etc. 
 
STEP 2. Buy an additional hard drive. These are quite cheap now. You can 
have 40gb for a little over $100. I bought Maxtor Ultra Series 80gb (red 
box) for $150. Six months from now, you'll laugh at these prices! I think 
most any IDE/ATA drive will work fine. 
 
STEP 3. Change the original hard drive from "Master" to "Slave" by opening 
the case and moving a jumper on the drive. Install the new hard drive, and 
set it to be "Master" on the same IDE cable. Look for some instructions 
with your new hard drive, make notes, and check your original drive 
carefully. The jumper positions are different for different brands of hard 
disk drive. Usually, there is something printed on the drive label. 
 
(You might want to get help to do the "Master" - "Slave" changes and 
install the new drive.) 
 
(It would probably work to put the original hard drive on the second IDE 
cable as "Master", where the new drive is "Master" on the first IDE cable 
just as above, but I haven't tested this.) 
 
Just remember, the original drive with Windows will be the "second" drive, 
and the new one with Linux will be the "first" drive. 
 
STEP 4. Install SuSE -- Run the SuSE installer, starting with SuSE's 
directions. Usually this means booting from CD#1 or the DVD. 
 
STEP 4a. Throughout the installation -- Remember that you are installing 
Linux on hda, the "first" drive. The SuSE installer should suggest this as 
the default. 
 
STEP 4b. Create a partition to share between Linux and windows -- At the 
partitioning step of the install, shrink the Linux partition a bit and add 
a FAT partition on hda. For "mount point" of the FAT partition enter 
/windows/share and the remaining default options for "FAT" should be OK. 
Both Windows and Linux can read and write to this FAT32 partition. I made 
my FAT partition 300mb. [Perhaps we could specify the options for 
/etc/fstab at this point, but I did it later. Comments?] 
 
STEP 4c. Rest of Installation -- Follow SuSE's suggestions to install on 
first hard drive (hda). Follow SuSE's suggestions to install GRUB on the 
Master Boot Record (MBR). On the software options page, choose "Default" 
system.  You're done when you get the KDE desktop and not the installer 
menus. 
 
STEP 4d. Explore Linux a bit. There are a few more steps before we can 
easily switch back and forth between Linux and Windows, but these can 
wait. 
 
STEP 5. Test booting -- Logout and restart your computer. Watch the boot 
menu. You should get options for Linux, Floppy, and Failsafe. Also a 
couple of "windows.." options.  Check that "Linux" works. Don't try the 
"Windows" choices in the boot menu; they won't work! Make a note of the 
items you see in the boot menu. (I did try the "windows" option and the 
computer "hangs". If this happens to you, the old "three finger salute" 
still works... hold Ctrl and Alt while you type Delete. This will restart 
your computer.) 
 
STEP 6. (Strictly Optional) Switching OS's the HARD WAY -- You might need 
to use this in order to boot Windows before completing the remaining 
steps. It's awkward, but it does get you to Windows... When you boot, 
there is probably an option to enter the "BIOS Setup". Watch for this 
option and act quickly. On my machine, I have to hit "Del" within a couple 
of seconds. Proceed carefully, but find the option to change the "boot 
priority" of the different hard disks. You can choose Windows by giving 
boot priority to the second hard disk drive, Linux by giving boot priority 
to the first hard drive. This works, but there has to be a better way! 
 
If you do change the BIOS boot-priority order, then before doing the 
remaining steps, go back and reset the boot-priority order so the first 
hard disk (with Linux) has priority. 
 
STEP 7. Fixing the Windows item in the Boot menu -- Restart your computer, 
choose the default "Linux" in the boot menu, login as root.  Note that 
"root" will NOT be one of the choices you can select by clicking the 
name/picture on the login menu, just type "root" in the "Login" space and 
give the root password. You should see the KDE desktop. Notice the warning 
icons on the desktop. As root, you can blow things up completely! Be 
careful. 
 
STEP 7a. Check the boot options created by the installer -- 
 - Launch YaST2 by clicking the bottom-left icon, the gear wheel... then 
System... then YaST2; the name is an acronym for "Yet another System Tool" 
and this is one of SuSE's important contributions. 
 - Choose "System" in the left panel of YaST2. 
 - Choose "Bootloader Configuration" in the right panel. 
 - Choose "Expert manual configuration". Next. 
 - Look at the window "Boot loader configuration:"... After some initial 
items, you'll find one section for each item in the boot menu. Each 
sections starts with a "title" line. (The text in this window is from the 
file /boot/grub/menu.lst ) 
 
Here's what SuSE's installer created for me: 
 
---- START of /boot/grub/menu.lst ---- 
# Modified by YaST2. Last modification on Thu Nov 21 23:31:22 2002 
 
gfxmenu (hd0,1)/boot/message 
color white/blue black/light-gray 
default 0 
timeout 8 
 
title linux 
    kernel (hd0,1)/boot/vmlinuz root=/dev/hda2  hdc=ide-scsi  vga=785 
    initrd (hd0,1)/boot/initrd 
 
title windows 1 
    root (hd0,2) 
    makeactive 
    chainloader +1 
 
title windows 2 
    root (hd1,0) 
    makeactive 
    chainloader +1 
 
title floppy 
    root (fd0) 
    chainloader +1 
 
title failsafe 
    kernel (hd0,1)/boot/vmlinuz.shipped root=/dev/hda2 ide=nodma apm=off 
acpi=off vga=normal nosmp maxcpus=0 disableapic 3 
    initrd (hd0,1)/boot/initrd.shipped 
---- END of /boot/grub/menu.lst ---- 
 
OK, so what's the problem? There are two problems with what SuSE creates: 
 - The "windows 1" section will try to boot from the sharing partition 
(first hard disk, third partition, the FAT partition... remember it's 
counting from zero). This partition will have only some of my files, and 
not Windows itself, so any boot from this partition will fail. (I suppose 
SuSE thinks we MIGHT put some Windows version on this paritition in the 
future. I think this boot menu option is confusing, so I'll just remove 
it.) 
 - The "windows 2" section is pointed to the right place, but has an 
error. 
 
STEP 7b. Remove the wrong "windows" section -- Select the windows section 
that references (hd0,2) by left-click-dragging over the text. Hit the 
"delete" or "backspace" key on your keyboard to erase it. Poof! Gone. 
 
STEP 7c. Fix the remaining Windows option -- Continue your editing... I 
took the secton "windows 2" and changed it to be like this: 
 
ttitle Windows XP 
map (hd1) (hd0) 
root (hd1,0) 
chainloader+1 
makeactive 
 
Some notes: 
"Windows XP" can be whatever text you want in the boot menu 
"map..." see below. 
Last two entries... I think SuSE has them in backwards order 
Don't worry about the indenting... SuSE will fix it. 
Ignore the button marked "Edit /etc/grub/conf" 
 
 - Click "Next" then "Finish" then "Yes". YaST2 will save your revised 
boot menu. 
 
Explanation -- There are limitations on Windows ability to boot.  The GRUB 
manual at http://www.gnu.org/manual/grub/html_mono/grub.html explains this 
and suggests the map command. By using the map command, any running 
program, after GRUB passes things to the next stage, will see the second 
disk hdb a.k.a. (hd1) as though it were the first hda a.k.a. (hd0). (More 
precisely, any running program that accesses the disk through the BIOS 
will see it this way, so there -could- be programs that won't work with 
this disk-swapping approach. [Hackers, is there ANY danger in this? Should 
I skip this detail?]) 
 
STEP 8. Test the Boot Menu Choices -- In Linux, logout and select "Restart 
computer". Try the boot options for Linux and Windows to verify that they 
work. When you log-in to Linux, do so with your normal username, not as 
root.  Use root only when you need to in order to change a system 
configuration. 
 
STEP 9. Format the shared partition -- I use the Windows XP format command 
to format the shared partition. 
 - Restart the computer 
 - Chose Windows XP (or whatever label you chose) 
 - Start... My computer... Your shared partition will appear as an "extra" 
local drive. Mine was E:. Here's how to know you have the right "local 
drive": When you click on a drive, it's icon is highlighted and the lower 
left display shows the size and space available. When you click on your 
shared drive, the lower left display will not show size because the 
partition has not yet been formatted. 
 - Right click on your shared partition. Format. Choose FAT32, not ntfs. 
Use the defaults for other options. 
 - Now if you click on the shared partition, the lower left display will 
show the size. 
 
STEP 10. Make the "Shared" partition visible to Linux -- 
 - Restart, boot Linux, login as root, open a console window with Konsole 
(I start Konsole with one of the icons in the lower left... Move your 
mouse over the icons and let it pause. Linux will show the name of the 
program represented by the icon.) 
 
STEP 10a. Look as /etc/fstab -- this is the table that tells Linux which 
partitions to mount at boot and which can be mounted by the user. In the 
Konsole window, type 
 
   cat /etc/fstab 
 
My output looked like this for the hard disks (there are additional 
lines, but these are all the "/dev/hd..." lines) 
/dev/hda2     /                    reiserfs   defaults        1 1 
/dev/hda3     /windows/share       vfat       defaults        0 0 
/dev/hda1     swap                 swap       pri=42          0 0 
 
In this table, hda3 is our FAT partition for sharing between OS's. 
 
(What's the problem? The problem is if /dev/hda3 is mounted with 
"defaults", this will be done by root at boot-time, and no other users 
will be able to touch it. You won't be able to touch it if you login with 
your normal userid, only if you login as root. Instead, we need to set the 
shared partition to be mounted by you after login.) 
 
STEP 10b. Save a copy of /etc/fstab 
 
   cp /etc/fstab /etc/fstabSAVE 
 
If this fails, you probably didn't login as root. Logout, login as root, 
and repeat from step 10. 
 
STEP 10c. Change /etc/fstab 
 
   umount /windows/share 
   pico /etc/fstab 
 
This is a simple text editor. Use the arrow keys to move the cursor. 
Ctrl-D to delete a character. Just type to insert characters. Now change 
the /dev/hda3 line so that instead of the word "defaults", you have 
"noauto,user". When done, the first few lines of my /etc/fstab look like 
this: 
 
/dev/hda2     /                    reiserfs   defaults        1 1 
/dev/hda3     /windows/share       vfat       noauto,user     0 0 
/dev/hda1     swap                 swap       pri=42          0 0 
... there's more... leave the additional lines unchanged ... 
 
(Thanks to Kevin Nathan for this tip.) 
 
If you make a mistake, Ctrl-X, "No" so you don't save, and repeat pico 
/etc/fstab 
 
 - Still in Pico, Ctrl-X, Yes to save, Return to confirm the file name. 
Now you have changed /etc/fstab. 
 - Logout, Shutdown, let the computer stop, then Power-on, and boot Linux. 
 - If this doesn't work, boot "rescue system" and trouble-shoot. 
 
STEP 11. Learning to mount your shared partition in Linux 
 
To mount your partition: 
 
 - Boot Linux and login with your normal userid 
 - Open a Konsole window 
 
      mount /windows/share 
 
To un-mount the shared partition 
 
      umount /windows/share 
 
.. or just log out. 
 
STEP 12. Uninstall -- Someday, you might want to return your machine to be 
a Windows machine, just like you purchased at the store. I'm sure you'll 
like SuSE Linux, but maybe you want to give the computer to someone who 
doesn't know this yet! Remove your linux hard drive and change the 
original drive (with Windows) back to "Master". Now, when you boot, the 
machine will never know that you used to have Linux installed! 
 
Have a lot of fun! 
 
  -- Sally 
-- 
 
Sally Shears (a.k.a. "Molly") 
[EMAIL PROTECTED] 
http://theWorld.com/~sshears 
 
~~~~~~~~~~~~~~~~~~~~~~~~ 
 
If you have installed DOS (or Windows) on a non-first hard disk, you have 
to use the disk swapping technique, because that OS cannot boot from any 
disks but the first one. The workaround used in GRUB is the command map 
(see map), like this: 
 
grub> map (hd0) (hd1) 
grub> map (hd1) (hd0) 
 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 
end of m.lecker 
 
 
Quoting "s. keeling" <[EMAIL PROTECTED]>: 
 
> Personally, I'd swap the cables on the two drives, keep grub, let 
> grub boot Windows (if you must :-), and carry on from there. 
>  
> Grub has the advantage that you can always call up the grub prompt and 
> twiddle things interactively until it works.  Lilo can't match that. 
> If you have knoppix and knoppix has grub, all should be smooth sailing 
> from here. 
>  
>  
> --  
> Any technology distinguishable from magic is insufficiently advanced. 
> (*)               http://www.spots.ab.ca/~keeling  
> - - 
>  
> _______________________________________________ 
> clug-talk mailing list 
> [EMAIL PROTECTED] 
> http://clug.ca/mailman/listinfo/clug-talk_clug.ca 
>  
 
 


_______________________________________________
clug-talk mailing list
[EMAIL PROTECTED]
http://clug.ca/mailman/listinfo/clug-talk_clug.ca

Reply via email to