Ralf & Andrew,

Can you comment about the bug report (and patch) below about fdisk
with DVH labels and large disks?

* Giuseppe Sacco <giuse...@eppesuigoccas.homedns.org> [2008-12-29 16:44]:
> 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.
> 
> If you like the fix and will accept this patch, please add this note to
> the changelog:
> 
>  * fix of mips related bug, dedicate to ths.
> 
> Thanks,
> Giuseppe

--- fdisk/fdisksgilabel.c.orig  2008-04-21 14:58:43.000000000 +0200
+++ fdisk/fdisksgilabel.c       2008-12-29 16:01:14.000000000 +0100
@@ -604,8 +604,11 @@
                         * Choose same default volume header size
                         * as IRIX fx uses.
                         */
-                       if (4096 < sgi_get_lastblock())
-                               sgi_set_partition(n, 0, 4096, SGI_VOLHDR);
+                       unsigned hdrsize = heads * sectors;
+                       if (hdrsize<4096)
+                               hdrsize=4096;
+                       if (hdrsize < sgi_get_lastblock())
+                               sgi_set_partition(n, 0, hdrsize, SGI_VOLHDR);
                        break;
                }
        }

-- 
Martin Michlmayr
http://www.cyrius.com/



-- 
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