Basically you can download drivers into a MS Windows to mount Linux partitions for the read/write operations. In Linux equally you can mount any NTFS partition to read/write. There the position and order of data partition in NTFS and Linux partition in Ext3 are immaterial.
The easiest thing to do is to load a Linux live CD. The best one I think in your case is Slax.
You simply use Slax's terminal mode command
to check the existing hard disks and their partitions.
To partition a hard disk, say it is your second hard disk (you check the partitions and details) sdb you use the program cfdisk in command
Inside it you just create sda1, sda2, sda3 in sizes of 30Gb ,30Gb and 12Gb respectively. The 12Gb of sdb3 needs to be NTFS so you use the "type" option to change the partition ID from 83 to 7. A standard partition created in Linux is always type 83.
Your logical partition should start at the remainder of the hard disk. My suggestion is to create the first logical partition of 1Gb and specify it type ID 82 so that it becomes the common swap partition usable by all Linux. You can then continue partition sda6, sda7, sda8, sda9..... to the sizes you desire. Say you have a large data partition in sda10 and you want it to be NTFS so just repeat what you have done on sda3.
cfdisk program is the most educational partitioning software.
When done you opt for "write" to write the partition table out and reboot the system.
If you install a Linux just tell its installer which one of the sda1, sda2, sda6 to sda9 partitions you want to install that Linux. My practice is one operating system per partition as it is easier to maintain.
If you boot up a MS Window it cannot mount your sda3 and sda10 yet because they have not been formatted. You will find them in the 3rd and 10th partitions in the disk management program with which you can format them. Once formatted the sda3 and sda10 will be assigned a drive letter each and you can start using them.
Since sda3 is a primary partition it can be used for installation of a bootable MS system.
You will find sda4 is missing because as an extended partition it is just an envelope. It will show up in fdisk program but not cfdisk. If you understand the reason behind then you understand the working of extended and logical partitions.
Just a quick note to say thanks for sharing all your grub(y) experiences I was able to get 8 linux distros installed and working on the second HD of my HP desktop. I have a total of 24 partitions I hope to use although a couple of them complained that I had more than 15 and let me know I could forget thinking they would write to any of them.
I did learn immediately that having an NTFS partition first was not going to work. So i ended up with p1 and 2 linux, p3 ntfs, p4 extented (this was an interesting experience with this 1.5T drive. It would not let me create the extended p4, but when I tried to create a p4 swap, it immediately changed it to p5. Later when I did an fdisk I discovered it had created the p4 extended on it's own.) I then when on creating partitions up to 24.
So far i've installed Granular, Ubuntu 8.10, Mint64, Fedora 10-64, Ear MS, Mepis, Mandriva 2009, and OpenSuse 11. All but two played fair and got along. The two that tried to take over the world were Mepis and OpenSuse 11. I ended up having to use a live cd to edit their menu.lst's to bring things back under control They just refused to get along! OpenSuse even tried to format two of the other partitions.
It is great being able to boot my Linux distros from HD 2 and allow them to have full use of the computer and local network. I also have a 1.2T NTFS drive on the same HD for either windows or linux use as required.
It looks like you are starting to enjoy the power of Linux.
The cfdisk program is very educational. To be frank it taught me a lot about partitioning, especially while the first logical partition is always No. 5 even if you start from a raw disk without having any primary first.
There is a big change in partitioning going on in Linux and not everything has been aligned together. As an example I have been able to get 130partitions in one hard disk but haven't been able to boot it yet except for using them for storage. This is set up everything from no 5th position is a logical partition. I believe with the hard disk standard there is no limit to the number of logical partitions. The limit is only set by the operating systems.
Here are a few things I have found
(1) Only sfdisk can be used to get the largest number of partitions. It stops at 130.
(2) cfdisk has always been able to partition up to 63 partitions but the 60th and beyond are not reliable.
(3) fdisk is the most robust but it doesn't do or show more than 60 partitions.
(4) I have been able to generate partitions using scripts with sfdisk and fdisk but not cfdisk.
(5) Some graphic partitioning tools like gparted can create/handle 63+ partitions.
(6) Only kernel 2.6.28 and newer support 15+ partitions. Older kernels still think 15 partitions is the limit.
(7) Many installers, from distros with 2.6.28 kernels, have not been written to anticipate 15+ partitions and unable to cope with their device names even if they were generated by the users.
It will take some time before the dust is settled down.
I meant to reply to the "Booting Tips" post. Reference in this reply are to that Thread" Sorry.
I need some help in booting on partitions that are beyond the BIOS boundry.
Grub works fine. Dual boot with XP and first Linux install works just fine.
The disk is 320GB replacing an 80GB.
In the left over space at the backend of the drive I installed Ubuntu. Nothing would boot after the install. Error 18 I think. I fixed grub and was able to get the original partitions to boot using (hd0,5). I can't get the new install to boot (hd0,8). It's sda9 and after fixing grub, adding the entries for the Ubuntu, I get an error that it can't read the file due to being out of the BIOS range.
I thought that post #3 Task G was going to help me. I'm not seeing it.
I need someone to point me in the right direction to help boot partitions in the upper ranges of a very large disk.
I am not convinced it is a hardware problem. It is possible say if you chainload a newer version of Grub by an older version of it, or the other way round, Grub could misbehave. Also if Grub has not been installed properly or corrupted then this type of error can occur.
In your case the information confirms that there are indeed two menu.lst, one in (hd0,5) and the other in (hd0,8). This is evidence that there are two Linux installations with Grub as their boot loader.
I suggest you boot the system in (hd0,8) as follow
(1) While in the Grub prompt ask Grub to display the menu.lst in (hd0,8)
(2) You then read the "kernel" and "initrd" statements and type them, one line at a time, at the terminal. Forget the inird statement if there isn't one as the latest Ubuntu may have done away with the initrd.
(3) When done add this command to fire it up
If the same error persists you can boot the system up with another Grub sourced say using a Live CD from here.
Let us know your progress. Also report any line Grub doesn't like.
I am certain Grub has no bother with a hard disk of 320Gb size. I routinely force Grub to boot from the end of my 500Gb and 1TB hard disks.
I have just wrote this thread on the maximum number of hard disk partitions with the new 2.6.28 kernel. I used a 1.5TB hard disk and generated 57 partitions. I have installed two Linux in the sdb56 and sdb55 partitions and boot them up successfully. They are at 1.1Tb position of a 1.5TB disk.
The 137Gb limitation is usually specific to the operating system and not a matter for the boot loader. If Grub is able to list the partitions it can boot them. This because Grub needs to search the disk to find the location of the last logical partition.
Having said the above it is possible if you are working with an old PC with a Bios limited to 137Gb (has to be very old though) then you may have a booting problem because the Bios would tell Grub there in no hard disk address beyond the 137Gb. However this limitation should disappear if your Bios allows you to use the hard disk in the LBA mode (Large block addressing). Can you check your Bios to see if the hard disk addressing mode can be switched?
Due to an unforeseen problem I have reset my Bios in the mobo and end up with the same error of
"Error 18: Selected cylinder exceeds maximum support by BIOS"
I discovered the hard disks were read in a mode different to LBA after the reset. After I fixed the Bios I still got the problem. I managed to ask Grub to display the /boot/grub/menu.lst of the partition I want to boot and manually typed in each line of command to get the Linux booted.
So try it yourself.
Say if you want to boot a Linux in the 56th partition of the 2nd disk it will be (hd1,55)
Then just type each line starting from the "kernel" statement, then "initrd" line and finish with the "boot" statement.
I'm doing this on a Dell laptop. The laptop is very restrictive in what settings you can make in the BIOS. The HD is identified as being smaller than it actually is. The BIOS also indicates that it is in "LBA" mode.
I moved all the data/storage partitions to the back end of the drive. This leaves me with enough space within the BIOS range to boot multiple Linux installs and the original XP. I can live with this solution.
Props to to you for sticking with this. I tried most of your suggestions. I've become much more comfortable with the inner workings of Grub than I ever thought I'd need to be.
Plain LBA uses 28-bit sector numbers, and each sector is 512 bytes. 28 bits gives you 256MB worth of unique addresses (268435456 different addresses). When each address refers to a 512-byte sector, you get 128GB worth of data (multiply by 1K, divide by two). That's 137438953472 bytes' worth of space that you can use. Given that hard drive manufacturers are dumb, and insist on using powers of 10 instead of 2 (because it makes their drives look bigger), that's 137GB according to them. Look like a familiar number?
LBA48 is a newer LBA extension that uses 48 bits for the sector number, instead of 28 bits. Those extra 20 bits give you another 1MB worth of addresses, which turns 128GB into 128PB (yes, petabytes).
If your BIOS does LBA, but only LBA28 (or classic LBA, or whatever you want to call it), then you'll still be stuck with 128GB of addressable space. The only way to get around that limit is to bypass the BIOS (like Linux does once the kernel has loaded up) -- but GRUB doesn't have enough space in the single boot sector to be able to get enough code loaded up to be able to do this. (All GRUB has is the MBR, minus the partition table: something like 400-some bytes.)