Moving boot

Les Mikesell lesmikesell at gmail.com
Mon Aug 20 15:43:32 UTC 2007


Karl Larsen wrote:

>>>>> I now have the /boot part of my whole system. But it would be easy 
>>>>> to make a new partition of say 100 MB the first thing on the second 
>>>>> hard drive. My question is what do I need to do so the new /boot 
>>>>> works?
>>>>>     
>>>>
>>>> I did something similar with a dual-boot system:  Windows on the
>>>> original first drive, all by itself.  And Linux installed on an added
>>>> second drive, all by itself.
>>>>
>>>> While setting up GRUB, you define its root (where /boot/ is) with a
>>>> "root (hd1,0)", then "setup (hd0)" which puts the bootloader onto the
>>>> first drive MBR, and quit out of the GRUB shell.
>>>>
>>>> [root at bigblack ~]# grub
>>>> grub> root (hd1,0)
>>>> grub> setup (hd0)
>>>> grub> quit
>>>> [root at bigblack ~]#
>>>>
>>>> In this scenario, the computer boots, reads the MBR on my first drive,
>>>> which starts off GRUB from my second drive.
>>>>
>>>> I believe that you can even set that up from within the GRUB start up
>>>> screen.  Just hit the right hot key to get into the command line.  You
>>>> can also do it from the rescue disc, so you can get a system working
>>>> that's not currently booting.
>>>>
>>>>   
>>>    I know Tim and that is what I use now that works. I have grub at 
>>> (hd0) and the Linux is at (hd1,5). This works fine so why move /boot?
>>>
>>>    I am certain that (hd1,5) is about 100 GB up from start of the 
>>> second drive. And it works.
>>
>> I thought this whole thread was about this setup not working all the 
>> time.  What does fdisk -l say about the cylinder range of that 5th 
>> partition?
>>
>    Well it is the sixth partition. This is (hd1,5) in grub talk :-)
> 
> 
> Disk /dev/sdb: 160.0 GB, 160041885696 bytes
> 255 heads, 63 sectors/track, 19457 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
> 
>   Device Boot      Start         End      Blocks   Id  System
> /dev/sdb1   *           1        1217     9775521   83  Linux
> /dev/sdb2            1218        1945     5847660   83  Linux
> /dev/sdb3            1946        1961      128520   82  Linux swap / 
> Solaris
> /dev/sdb4            1962       18534   133122622+   5  Extended
> /dev/sdb5            1962        7060    40957686   83  Linux
> /dev/sdb6            7061       12159    40957686   83  Linux
> /dev/sdb7           12160       18534    51207156   83  Linux
> [root at k5di ~]#
> 
> Now you can see sdb6 starts at cylinder 7061 which the hell and gone 
> above 1100 :-(
> 
> 
> So thanks for the idea for quantizing the fact. I think it's clear my 
> 1994 BIOS works far better than the so-called standard. 8-)

The hard drive addressing limits in bios have evolved slowly and 
painfully over time starting from 32 Megs in DOS.  The next limit after 
1024 cylinders was a 24 bit LBA address which would take you to around 
128 gigs. http://en.wikipedia.org/wiki/Logical_Block_Addressing

I didn't do the math, but that error message you posted leaves no doubt 
that you are exceeding the bios limit when you can't boot so your 6th 
partition must span that range.  But, regardless of what the limit 
actually turns out to be, you could have easily avoided any such problem 
by putting a small /boot at the beginning of the disk, something that 
has been well known since the first drives over 9 gigs were manufactured.

-- 
   Les Mikesell
    lesmikesell at gmail.com




More information about the users mailing list