[parted-devel] parted crashing on partially recovered disk

Peter Lorenzen peter at lorenzen.us
Fri Nov 26 15:54:40 UTC 2010


Hi

I had a disk-crash  (a 320Gb disk) and managed to get the first half
of the disk copied to a new disk (500Gb)
and are now trying to rebuild the rest.

My problem is that parted crashes. This happens with stock ubuntu-10.4
and parted-2.3 build from source.

# sudo sfdisk -l /dev/sdb

Disk /dev/sdb: 60801 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start     End   #cyls    #blocks   Id  System
/dev/sdb1   *      0+     12-     13-    102400    7  HPFS/NTFS
/dev/sdb2         12+   4863-   4851-  38965248    7  HPFS/NTFS
/dev/sdb3          0       -       0          0    0  Empty
/dev/sdb4       4863+  29981   25119- 201761743    5  Extended
/dev/sdb5       4863+   7413-   2550-  20480000   83  Linux
/dev/sdb6       7414+   7873     460-   3694918+  82  Linux swap / Solaris
/dev/sdb7       7874+  14401-   6528-  52428800   af  HFS / HFS+

# sudo parted-2.3/parted/parted -l /dev/sdb
Model: ATA WDC WD20EARS-00S (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      32.3kB  20.0GB  20.0GB  primary  ext3            boot
 2      20.0GB  25.0GB  5009MB  primary  linux-swap(v1)
 3      25.0GB  1979GB  1954GB  primary  ext3
 4      1979GB  2000GB  21.0GB  primary  ext3


Backtrace has 18 calls on stack:
  18: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(ped_assert+0x2a)
[0x64beda]
  17: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(ped_geometry_read+0x116)
[0x655c56]
  16: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(hfsplus_probe+0x3a1)
[0x67bf51]
  15: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(ped_file_system_probe_specific+0x6c)
[0x64da3c]
  14: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(ped_file_system_probe+0x81)
[0x64e031]
  13: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(+0x4750f)
[0x68650f]
  12: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(+0x47631)
[0x686631]
  11: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(+0x47631)
[0x686631]
  10: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(+0x47571)
[0x686571]
  9: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(+0x4773f)
[0x68673f]
  8: /home/peter/src/parted-2.3/libparted/.libs/libparted.so.0(ped_disk_new+0x75)
[0x654e45]
  7: /home/peter/src/parted-2.3/parted/.libs/lt-parted() [0x804e408]
  6: /home/peter/src/parted-2.3/parted/.libs/lt-parted() [0x804f593]
  5: /home/peter/src/parted-2.3/parted/.libs/lt-parted() [0x80518aa]
  4: /home/peter/src/parted-2.3/parted/.libs/lt-parted() [0x8052f21]
  3: /home/peter/src/parted-2.3/parted/.libs/lt-parted(main+0x2e) [0x805302e]
  2: /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe6) [0x126bd6]
  1: /home/peter/src/parted-2.3/parted/.libs/lt-parted() [0x804c451]
Aborted

Using ddd I can see that this is caused by


ped_geometry_read (const PedGeometry* geom, void* buffer, PedSector offset,
                   PedSector count)
{
        PedSector       real_start;

        PED_ASSERT (geom != NULL, return 0);
        PED_ASSERT (buffer != NULL, return 0);
->        PED_ASSERT (offset >= 0, return 0);
        PED_ASSERT (count >= 0, return 0);


It would have been nice if parted would inform of bogus paritition
instead of just crashing.
eventually a comment like "remove the bogus partition using fdisk" and
try again could have been helpfull
Best Regrads

Peter Lorenzen



More information about the parted-devel mailing list