On Mon, Jul 26, 2010 at 04:46:23AM +0200, Aurelien Jarno wrote:
> On Mon, Dec 29, 2008 at 04:44:06PM +0100, Giuseppe Sacco wrote:
> > Package: util-linux
> > Version: 2.13.1.1-1
> > Severity: grave
> > Tags: patch
> > 
> > Yesterday I tried the d-i rc1 for lenny on a silicon graphics O2 (a
> > complete report is available as Debian bug #510060).
> > 
> > The problem I found against fdisk is that when using large disks (i.e.,
> > disks with more than 4096 sectors per cylinder), the volhdr partition is
> > incorrectly sized because it is marked as starting and ending on
> > cylinder 0. When having this specific case, this is what happen:
> > 
> > Command (m for help): p
> > 
> > Disk /dev/sda (SGI disk label): 255 heads, 63 sectors, 8941 cylinders
> > Units = cylinders of 16065 * 512 bytes
> > 
> > ----- partitions -----
> > Pt#    Device  Info     Start       End   Sectors  Id  System
> > ----- Bootinfo -----
> > Bootfile: /unix
> > ----- Directory Entries -----
> >  0: arcboot    sector    4 size   72492
> > 
> > Command (m for help): n
> > Partition number (1-16): 1
> > Attempting to generate entire disk entry automatically.
> > First cylinder (1-8940, default 1): 
> > Using default value 1
> >  Last cylinder (1-8940, default 8940): 2000
> > 
> > Command (m for help): p
> > 
> > Disk /dev/sda (SGI disk label): 255 heads, 63 sectors, 8941 cylinders
> > Units = cylinders of 16065 * 512 bytes
> > 
> > ----- partitions -----
> > Pt#    Device  Info     Start       End   Sectors  Id  System
> >  1: /dev/sda1  boot         1      2000  32130000  83  Linux native
> >  9: /dev/sda2               0         0      4096   0  SGI volhdr
> > 11: /dev/sda3               0      8940 143637165   6  SGI volume
> > ----- Bootinfo -----
> > Bootfile: /unix
> > ----- Directory Entries -----
> >  0: arcboot    sector    4 size   72492
> > 
> > 
> > Command (m for help): n
> > Partition number (1-16): 2
> > First cylinder (1-0): 1
> > Value out of range.
> > First cylinder (1-0): 0
> > Value out of range.
> > First cylinder (1-0): 2001
> > Value out of range.
> > First cylinder (1-0): ^C
> > 
> > As you may see, once the first partition has been created, fdisk will
> > automatically create partitions 9 and 11, but it will wrongly set the
> > end boundary of volhdr. Starting with this error, it is not possible to
> > add any new partition, because the accepted cylinder range would be
> > "1-0".
> > 
> > Please find attached a solution for this bug. This solution raise the
> > volhdr size of 4096 up to the first cylinder boundary. If the boundary
> > is less than 4096 then nothing is changed.
> > 
> 
> While I agree with the analysis, the patch looks more like a workaround
> than a real solution. The problem is that when free space doesn't start
> on a cylinder boundary (the case for the free space after the volume
> header), there might be less than one cylinder to create a partition.
> The code to ask for partition boundaries is using cylinders (probably
> because partition start should be cylinder aligned) and thus doesn't
> cope with this issue.
> 
> The patch below fixes the issue by making sure free space always starts
> as a cylinder boundary, as anyway that's the only possible location to
> create a new partition.
> 
> --- util-linux-2.13.1.1.orig/fdisk/fdisksgilabel.c
> +++ util-linux-2.13.1.1/fdisk/fdisksgilabel.c
> @@ -501,6 +501,9 @@
>               }
>               start = sgi_get_start_sector(Index[i])
>                       + sgi_get_num_sectors(Index[i]);
> +             /* Align free space on cylinder boundary */
> +             if (start % cylsize != 0)
> +                     start += cylsize - (start % cylsize);
>               if (debug > 1) {
>                       if (verbose)
>                               printf("%2d:%12d\t%12d\t%12d\n", Index[i],

[Adding upstream to CC]

Karel,
what do you think about the patch proposed by Aurelien?

This is http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=510130

Cheers,
        Moritz



-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to