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