Fajar A. Nugraha wrote:
> On Thu, Dec 31, 2009 at 1:46 PM, Gerry Reno <
greno@xxxxxxxxxxx> wrote:
>   
>>> At this point it's probably easiest to just create another virtual
>>> disk with one primary partition, and copy the contents of the original
>>> /boot there. It's A LOT easier compared to messing up with existing
>>> partition table. Your domU config should then look something like this
>>>
>>> disk = [ "tap:aio:/var/lib/xen/images/CLOUD-CC-1-boot.img,xvda,w",
>>> "tap:aio:/var/lib/xen/images/CLOUD-CC-1.img,xvdb,w" ]
>>>
>>>       
>> If I do this then maybe I can straighten the original partition table out;
>> remove the last two partitions and create a primary active partition for
>> /boot.
>>     
>
> If you want to use a new disk image for /boot,
 then yes, the disk
> image only need one small partition. You can still use LVM from the
> orginal disk -- no need to migrate/copy that.
>
> If you want to modify the existing partition table manually, BE
> CAREFUL. fdisk uses cylinders as unit by default, so you should switch
> to sectors. Here's an example:
>
> # fdisk -l /dev/xvda
>
> Disk /dev/xvda: 10.7 GB, 10737418240 bytes
> 255 heads, 63 sectors/track, 1305 cylinders
> Units = cylinders of 16065 * 512 = 8225280 bytes
>
>     Device Boot      Start         End      Blocks   Id  System
> /dev/xvda1               1        1000     8032468+  8e  Linux LVM
> /dev/xvda2           
 1001        1305     2449912+   5  Extended
> /dev/xvda5   *        1001        1305     2449881   83  Linux
>
> # fdisk -lu /dev/xvda
>
> Disk /dev/xvda: 10.7 GB, 10737418240 bytes
> 255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
> Units = sectors of 1 * 512 = 512 bytes
>
>     Device Boot      Start         End      Blocks   Id  System
> /dev/xvda1              63    16064999     8032468+  8e  Linux LVM
> /dev/xvda2        16065000    20964824     2449912+   5 
 Extended
> /dev/xvda5   *    16065063    20964824     2449881   83  Linux
>
> Now if you recreate the partition table using cyulinders as unit, the
> Linux partition will start on the wrong sector. It will be unusable.
> However if you use sectors as unit (fdisk -u) you can recreate the
> partition table to be like this
>
> # fdisk -lu /dev/xvda
>
> Disk /dev/xvda: 10.7 GB, 10737418240 bytes
> 255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors
> Units = sectors of 1 * 512 = 512 bytes
>
>     Device Boot      Start         End      Blocks   Id  System
> /dev/xvda1   *    16065063    20964824 
    2449881   83  Linux
> /dev/xvda2              63    16064999     8032468+  8e  Linux LVM
>
> Partition table entries are not in disk order
>
> pygrub can work with that.
>
>   
The more I thought about this the more I think this is not a distro 
problem.  It is a pygrub deficiency and pygrub needs to grow the ability 
to handle these types of partitionings.  KVM has no problem booting 
these guests.  And even though the partitioning isn't optimal it is 
still valid.  We can't go asking distros to modify their valid 
partitioning just to make it 'optimal' for pygrub.
-Gerry
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxxxxxxxxhttp://lists.xensource.com/xen-users