diff -Nru parted-3.2/debian/changelog parted-3.2/debian/changelog --- parted-3.2/debian/changelog 2015-03-19 07:58:59.000000000 -0300 +++ parted-3.2/debian/changelog 2015-04-08 11:59:27.000000000 -0300 @@ -1,3 +1,10 @@ +parted (3.2-7non512bsectors1) UNRELEASED; urgency=medium + + * Support disks with non 512-byte sectors (LP: #1441930) + - Added dm-512b-sectors.patch: fix partition sizes for device-mapper (multipath/lvm devices). + + -- Mauricio Faria de Oliveira Wed, 08 Apr 2015 11:57:45 -0300 + parted (3.2-7) unstable; urgency=medium [ Phillip Susi ] diff -Nru parted-3.2/debian/patches/dm-512b-sectors.patch parted-3.2/debian/patches/dm-512b-sectors.patch --- parted-3.2/debian/patches/dm-512b-sectors.patch 1969-12-31 21:00:00.000000000 -0300 +++ parted-3.2/debian/patches/dm-512b-sectors.patch 2015-04-08 11:56:35.000000000 -0300 @@ -0,0 +1,76 @@ +Origin: upstream, http://git.savannah.gnu.org/cgit/parted.git/commit?id=f98f791e19669b900345dad7d96ea4df974e4596 +From f98f791e19669b900345dad7d96ea4df974e4596 Mon Sep 17 00:00:00 2001 +From: Brian C. Lane +Date: Thu, 05 Feb 2015 00:46:07 +0000 +Subject: libparted: device mapper uses 512b sectors + +device mapper doesn't use the device's sector size when creating a +table. It always uses 512b units. This causes partitions to be created +8x smaller than expected on devices with 4906b sectors. +--- +(limited to 'libparted/arch/linux.c') + +diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c +index 0f18904..90ab21d 100644 +--- a/libparted/arch/linux.c ++++ b/libparted/arch/linux.c +@@ -2763,6 +2763,12 @@ _dm_get_partition_start_and_length(PedPartition const *part, + if (sscanf (params, "%d:%d %Ld", &major, &minor, start) != 3) + goto err; + rc = 1; ++ ++ /* device-mapper uses 512b units, make sure we return length and start in terms of the device's ++ * sector size. ++ */ ++ *start /= (part->disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT); ++ *length /= (part->disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT); + err: + free (path); + dm_task_destroy(task); +@@ -2810,8 +2816,10 @@ _dm_add_partition (PedDisk* disk, const PedPartition* part) + /* Caution: dm_task_destroy frees dev_name. */ + dm_task_destroy (task); + task = NULL; ++ /* device-mapper uses 512b units, not the device's sector size */ + if ( ! (params = zasprintf ("%d:%d %lld", arch_specific->major, +- arch_specific->minor, part->geom.start))) ++ arch_specific->minor, ++ part->geom.start * (disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT)))) + goto err; + + task = dm_task_create (DM_DEVICE_CREATE); +@@ -2821,7 +2829,8 @@ _dm_add_partition (PedDisk* disk, const PedPartition* part) + dm_task_set_name (task, vol_name); + if (vol_uuid) + dm_task_set_uuid (task, vol_uuid); +- dm_task_add_target (task, 0, part->geom.length, ++ /* device-mapper uses 512b units, not the device's sector size */ ++ dm_task_add_target (task, 0, part->geom.length * (disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT), + "linear", params); + if (!dm_task_set_cookie (task, &cookie, 0)) + goto err; +@@ -2878,8 +2887,11 @@ _dm_resize_partition (PedDisk* disk, const PedPartition* part) + /* Caution: dm_task_destroy frees dev_name. */ + dm_task_destroy (task); + task = NULL; ++ ++ /* device-mapper uses 512b units, not the device's sector size */ + if ( ! (params = zasprintf ("%d:%d %lld", arch_specific->major, +- arch_specific->minor, part->geom.start))) ++ arch_specific->minor, ++ part->geom.start * (disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT)))) + goto err; + + task = dm_task_create (DM_DEVICE_RELOAD); +@@ -2887,7 +2899,8 @@ _dm_resize_partition (PedDisk* disk, const PedPartition* part) + goto err; + + dm_task_set_name (task, vol_name); +- dm_task_add_target (task, 0, part->geom.length, ++ /* device-mapper uses 512b units, not the device's sector size */ ++ dm_task_add_target (task, 0, part->geom.length * (disk->dev->sector_size / PED_SECTOR_SIZE_DEFAULT), + "linear", params); + if (!dm_task_set_cookie (task, &cookie, 0)) + goto err; +-- +cgit v0.9.0.2 diff -Nru parted-3.2/debian/patches/series parted-3.2/debian/patches/series --- parted-3.2/debian/patches/series 2014-11-06 10:21:49.000000000 -0200 +++ parted-3.2/debian/patches/series 2015-04-08 11:56:35.000000000 -0300 @@ -14,3 +14,4 @@ align-new-partitions-on-fresh-disks.patch probe-lvs-again.patch fat16-resize-crash.patch +dm-512b-sectors.patch