Your IP : 216.73.216.48
2014-07-28 Phillip Susi <psusi@ubuntu.com>
version 3.2
* NEWS: Record release date.
2014-07-27 Phillip Susi <psusi@ubuntu.com>
Bump library REVISION number for release
tests: don't require en_US locale in t0251-gpt-unicode.sh
Switch from en_US.UTF-8 to C.UTF-8 so the test does not fail on systems
that do not have the en_US locale installed.
2014-06-23 Jim Meyering <meyering@fb.com>
maint: correct a POT-file updating rule
* doc/C/Makefile.am (updatepo): If there is no po/$name.pot,
create an empty one. Reported by Philip Susi.
2014-06-15 Phillip Susi <psusi@ubuntu.com>
tests: fix t9020-alignment.sh
This test was refering to print-alignment by absolute path, which
broke building with a different object directory, causing
make distcheck to fail.
Document resizepart command
parted: Add stub resize command for backward compatibility
To make sure that older scripts trying to use the resize command do not
accidentally run the new resizepart command by mistake, this undocumented
stub command will throw an error if called.
parted: Allow undocumented commands
Have command_print_summary print nothing if the command summary is NULL.
This allows for a command to be registered, but not documented in the
output of help.
parted: make _partition_warn_busy actually a warning instead of an error
This function was throwing a PED_EXCEPTION_ERROR with only the
PED_EXCEPTION_CANCEL option. Converted to a PED_EXCEPTION_WARNING
with the option to continue anyhow.
libparted: Add support for partition resize
When resizing a partition ( same partition number, same
start sector, different end sector ), try to use the
new BLKPG_RES_PARTITION request to update the kernel
partition table with the new size. Also handle resizing
devmapper targets.
2014-06-15 Petr Uzel <petr.uzel@suse.cz>
tests: excersise resize command
a lot of TODOs
parted: add resizepart command
Add resizepart command to resize ( change the end position ) an existing
partition. Note that it does nothing to a filesystem in the partition.
2014-06-15 Brian C. Lane <bcl@redhat.com>
Fix python test scripts for distribution
make distcheck was failing because these scripts were not being
included.
Make them both executable and and add the path to the tests that use
them. They also need to be included in the distribution so update
Makefile.am
* tests/Makefile.am: Add python test scripts
* tests/gpt-header-move.py: rename to gpt-header-move and make it
executable
* tests/msdos-overlap.py: rename to overlap.py
* tests/t0282-gpt-move-backup.sh: add path to scripts and use new name
* tests/t0283-overlap-partitions.sh: same
2014-06-15 Brian C. Lane <bcl@redhat.com>
tests: check name when duplicating
Create a second partition with a name when supported by the disk label.
Check to make sure that the duplicate has copied over the name. The goal
with this was to try to catch the bug fixed by the previous commit but I
was unable to make it fail. But this should improve our test coverage
anyway.
* tests/duplicate.c: Add a partition name test.
2014-06-15 Brian C. Lane <bcl@redhat.com>
libparted: Fix part dupe with empty name
It was setting the original translated_name to 0, not the new copy.
* libparted/labels/gpt.c (gpt_partition_duplicate): fix empty name
2014-05-28 Jim Meyering <meyering@fb.com>
tests: use test's "=" operator, not "=="
* tests/t1700-probe-fs.sh: Avoid "make syntax-check" error: s/==/=/
tests: avoid false-positive failure due to symlink
* tests/t6000-dm.sh (sanitize): Helper function.
Before this change, this test would fail due to difference between
absolute name and symlink-including names in "parted print" output
maint: fix "make syntax-check" nits
* doc/parted.texi: Update copyright year to 2014.
* tests/gpt-header-move.py: Remove empty line at EOF.
* tests/t0281-gpt-grow.sh: Correct reversed args to compare.
* tests/t0282-gpt-move-backup.sh: Likewise.
* libparted/labels/gpt.c (gpt_partition_set_name): Change "Can not"
to "failed to" in diagnostic.
(gpt_partition_get_name): Likewise.
* tests/t1102-loop-label.sh (dev): Remove trailing space in
here document that creates expected output, and strip that
same trailing space from actual output.
* libparted/fs/jfs/jfs.c: Do not cast alloca return value.
* libparted/fs/reiserfs/reiserfs.c: Likewise.
* libparted/fs/xfs/xfs.c: Likewise.
2014-05-27 Brian C. Lane <bcl@redhat.com>
tests: Use mkfs.xfs to create files (#1101112)
On s390 there is a bug with mkfs.xfs and pre-existing files. Work around
it by creating the file directly with mkfs.xfs. This also works on other
arches.
* tests/t1700-probe-fs.sh: Check for xfs and use direct file creation
* tests/t4100-dvh-partition-limits.sh: Use mkfs.xfs -dfile
* tests/t4100-msdos-partition-limits.sh: Use mkfs.xfs -dfile
2014-05-27 Brian C. Lane <bcl@redhat.com>
tests: Add ntfs vfat hfsplus to t1700 probe test
Add some new filesystems to test. Adjust how mkfs.* tests, since some of
them don't support -V, and add fsname so that the printed filesystem
name doesn't have to match the type.
* tests/t1700-probe-fs.sh: Add new filesystems to test
2014-05-26 Jim Meyering <meyering@fb.com>
maint: run "make update-copyright"
2014-05-25 Jim Meyering <meyering@fb.com>
maint: remove doubled word: s/on on/on/
* NEWS: Remove doubled-word detected by "make syntax-check".
gnulib: update submodule to latest
* gnulib: Update module to latest.
* bootstrap: Update from gnulib.
2014-05-25 Sergei Antonov <saproj@gmail.com>
libparted: mac: support sector size > 512 correctly
This patch fixes several problems found when trying to do Apple
Partition Map on a 4K-sector iPod. The problems happened because of
unneeded conversion between physical sectors and 512-byte units.
For devices with sector 512 the conversion did no harm, for others it did.
List of problems (all are gone with the patch):
* Partition in OS X, connect to Linux, run "parted <dev> print".
"Error: Can't have a partition outside the disk!" is shown.
Every partition is displayed 8 times (4k/512) bigger its real size.
* Exec "mktable mac", connect to OS X.
The drive's partitioning scheme is not recognized.
* mkpart creates partitions 8 times (4k/512) smaller than requested.
2014-05-22 Phillip Susi <psusi@ubuntu.com>
tests: test loop labels
Verify previous fixes to loop labels.
libparted: don't trash filesystem when writing loop label
If you deleted the fake partition on a loop label, loop_write() would write
the loop signature to the device, zeroing out all other bytes in the first
sector. When the disk contained an ext[234] filesystem and was using 2k
sectors, this would trash the super block residing in the 1-2kb part of the
sector causing the disk to become unrecognized. Instead, read the existing
sector and only modify the first few bytes that contain the loop label.
libparted: give correct partition device name on loop labels
ped_partition_get_path() was returning "/dev/foo1" instead of
"/dev/foo" on loop labels. This caused gparted to run tools like mkfs on
a device node that did not actually exist.
partprobe: do not skip loop labels
Partprobe was not syncing loop labels. This resulted it failing to remove
existing partitions when switching to a loop label.
libparted: don't create partition on loop label
The loop label represents an unpartitioned disk, but creates
a dummy partition to represent the whole disk. This dummy partition
was actually being loaded into the kernel. Don't do that.
2014-05-22 Phillip Susi <psusi@ubuntu.com>
libparted: fix loop labels to not vanish
The loop label type was using the existence of a partition as a proxy for
a filesystem being detected, and loop_write() would try to write a loop
signature if there was no filesystem, and erase it if there was. Because
of this, creating a partition without writing a filesystem to it caused
loop_write to erase the loop label.
There seems to be no reason to bother erasing the loop label if it is still
present along with a filesystem signature, so don't bother with this, and
actually check to see if a filesystem is detected in the partition rather
than using the existence of a partition to decide if writing the loop
signature is needed. Finally, since there is no way to preserve the
existence of a partition with no filesystem in it, have loop_read() always
create a partition, even if no filesystem is detected.
2014-05-22 Phillip Susi <psusi@ubuntu.com>
libparted: remove all old partitions, even if new label allows less
We were limiting partition sync operations to the lesser number allowed
by the device, or the label. This meant that when creating a new label
over an old label that had more partitions than the new one allows, the
higher partitions would not be removed. Use the greater of the two values
for the remove pass, and the lesser for the add.
libparted: remove old partitions *first* before adding new ones
"libparted: avoid disturbing partitions" put the remove of the old
partition in second pass. If you simultaneously removed partitions 1
and 2, and created a new partition #1 that overlapped the previous second
partition, the sync would fail because it would try to create the new,
larger partition #1 before removing the old partition #2.
libparted: don't detect fat and ntfs boot sectors as dos MBR
fat and ntfs boot sectors are very similar to an MBR so if you had one of
these filesystems on an unpartitioned disk, parted detected them as a dos
partition table. Have the dos label code call the fat and ntfs filesystem
probes and if they recognize the sector ( their tests are more stringent )
then don't claim it as a dos label.
2014-05-22 Phillip Susi <psusi@ubuntu.com>
parted: don't reload partition table on every command
gpt was using a static local variable to suppress repeatedly reporting
an error if you chose to ignore it. This is incorrect as the variable is
global to all disks, and ignoring the error on one should not suppress its
reporting on another. Moving the flag to the PedDisk object made it
effectively useless because parted was destroying the PedDisk and reloading
the partition table on every command.
Parted has been reworked to cache the PedDisk once loaded, and only discard
it when changing disks, or creating a new disklabel.
2014-05-22 Phillip Susi <psusi@ubuntu.com>
libparted: fix fat resize
The changes to fix filesystem detection on non 512 byte sector sizes broke
fat filesystem resizing.
2014-05-19 Brian C. Lane <bcl@redhat.com>
GPT strings are UCS-2LE not UTF-16
There was a problem using UTF-16, it was writing the Byte Order Mark
before the string which caused problems with older versions of parted
reading the partition name. The test was skipping these 2 bytes when
checking the written string.
* libparted/labels/gpt.c: Switch to UCS-2LE for GPT Partition names
* tests/t0251-gpt-unicode.sh: Update the test
2014-04-29 Brian C. Lane <bcl@redhat.com>
Update NEWS with new DASD features.
* NEWS: New DASD support
2014-04-29 Petr Uzel <petr.uzel@suse.cz>
dasd: avoid usage of uninitialized data
In ped_partition_new(), disk_specific data of PedPartition
structure is allocated (via dasd_partition_new()). This
data is later used uninitialized in dasd_partition_set_system().
* libparted/labels/dasd.c (dasd_partition_new):
Zero out allocated disk_specific data.
2014-04-29 Nageswara R Sastry <rnsastry@linux.vnet.ibm.com>
libparted: mklabel to support EDEV DASD
Fixed Block Access (FBA) DASDs are mainframe-specific disk devices
which are layed out as a sequence of 512-byte sectors. This patch adds
support for mklabel to properly handle FBA devices.
libparted: Avoid dasd as default disk type while probe
This patch avoids setting 'dasd' as a default disk type for
'disk image file' at the time of probe.
libparted: mklabel to support EAV DASD
Extended Address Volume (EAV) DASDs are ECKD DASDs with more than
65520 cylinders. This patch adds support for mklabel to properly
handle unformatted EAV DASDs.
2014-04-29 Nageswara R Sastry <rnsastry@linux.vnet.ibm.com>
libparted: add support for EAV DASD partitions
Extended Address Volume (EAV) DASDs are ECKD DASDs with more than
65520 cylinders. This patch adds support for recognizing and
modifying partitions on EAV DASDs to Parted. The changes are
based on the EAV support added to version 1.8.1 [1] of the
s390-tools package.
[1] http://www.ibm.com/developerworks/linux/linux390/s390-tools-1.8.1.html
2014-04-29 Nageswara R Sastry <rnsastry@linux.vnet.ibm.com>
libparted: add support for implicit FBA DASD partitions
Fixed Block Access (FBA) DASDs are mainframe-specific disk devices
which are layed out as a sequence of 512-byte sectors. In contrast
to ECKD DASDs, these disks do not require formatting and resemble
the LBA layout of non-mainframe disks. Despite this resemblance,
the Linux kernel applies special handling during partition detection
for FBA DASDs, resulting in a single, immutable partition being
reported.
While actual FBA DASD hardware is no longer available, the z/VM
hypervisor can simulate FBA DASD disks, backed by either ECKD or
SCSI devices.
This patch adds support for recognizing FBA DASD partitions
to parted.
2014-04-18 Phillip Susi <psusi@ubuntu.com>
Fix filesystem detection on non 512 byte sectors
Enable probing for filesystems with non 512 byte sectors, and fix up each
filesystem to correctly handle that. Remove unused field from the fs type
structure listing acceptable sector sizes.
tests: fix t2310-dos-extended-2-sector-min-offset.sh
This test was ignoring the requested sector size and always using
512 bytes per sector. Fix it to use the requested sector size.
tests: fix t1700
bb181a7e: "tests: Use force for xfs in t1700 and a larger file" caused
the previous filesystem signatures to be left in the image file
causing mkfs.nilfs2 to complain that there is already an xfs filesystem
there, and hang the test suite waiting for an answer to proceed or not.
Remove the file between filesystems so it is recreated cleanly again.
libparted: remove last_usable_if_grown
Commit 3398e82a: "libparted: Use common function to calculate PTE sectors"
removed usage of the last_usable_if_grown variable, resulting in an error
because it is now unused but still defined.
2014-04-17 Brian C. Lane <bcl@redhat.com>
tests: t1700 change count to seek
Fix a typo when changing to sparse images.
* tests/t1700-probe-fs.sh: count should be seek.
2014-04-16 Brian C. Lane <bcl@redhat.com>
tests: Use force for xfs in t1700 and a larger file
Also use sparse files that are (with 512B blocks) 128M so that they are
large enough for all the filesystems.
* tests/t1700-probe-fs.sh: Make changes.
2014-04-10 Ming Liu <ming.liu@windriver.com>
libparted: fix several integer overflows with dvh labels
Integer overflows was found in libparted/labels/dvh.c, while attemptting
assign unsigned int values to int types in some places.
Defined by unsigned int instead.
* libparted/labels/dvh.h: Change int to unsigned int
2014-04-10 Brian C. Lane <bcl@redhat.com>
testing: Use little-endian packing in gpt tests
Fix gpt-header-move.py and gpt-header-munge to use little endian when
packing and unpacking. This allows us to turn the t0210 and t0211 tests
back on for big-endian systems.
* tests/gpt-header-move.py: Use little endian for pack/unpack
* tests/gpt-header-munge: Same
* tests/t-lib-helpers.sh: Add requires_64bit_ that checks for x86_64 and ppc64
* tests/t0210-gpt-resized-partition-entry-array.sh: Remove x86_64 test
* tests/t0211-gpt-rewrite-header.sh: Same
2014-04-08 Brian C. Lane <bcl@redhat.com>
tests: Use msdos-overlap to setup t0283
xxd isn't present in minimal build systems, as it is part of vim. Change
to using a simple python script to mangle the msdos disklabel for the
test.
* tests/msdos-overlap.py: New file
* tests/t0283-overlap-partitions.sh: Use msdos-overlap.py
2014-04-08 Brian C. Lane <bcl@redhat.com>
tests: Add emit_superuser_warning for gpt tests
When parted runs without script mode it will print a warning about not
being superuser. Add the library call to add this to expected output
from the tests.
* tests/t0281-gpt-grow.sh: Add emit_superuser_warning
* tests/t0282-gpt-move-backup.sh: Add emit_superuser_warning
* tests/t0283-overlap-partitions.sh: Add emit_superuser_warning
2014-04-08 Brian C. Lane <bcl@redhat.com>
libparted: Use common function to calculate PTE sectors
Use _ptes_sectors in _parse_header's calculation to determine if the
disk has been grown.
* libparted/labels/gpt.c (_parse_header): use _ptes_sectors
2014-04-08 Brian C. Lane <bcl@redhat.com>
libparted: Fix check for backup header location
Add a couple of helper functions for calculating the partition table
entry size (in sectors) and for guessing the end of the disk based on
the LastUsableLBA and the Partition Table Entry size.
The backup header should be either at the end of the disk, or at what
the primary header thinks is the end of the disk. Prompt to fix the
backup header if it is located any other place.
* libparted/labels/gpt.c (_ptes_sectors): New function
(_hdr_disk_end): New function
(gpt_read): Use new function to test for pri's idea of end of disk
2014-03-05 Gustavo Zacarias <gustavo@zacarias.com.ar>
ui: switch to new-style readline typedef
The CPPFunction typedef (among others) have been deprecated in favour of
specific prototyped typedefs since readline 4.2 (circa 2001).
It's been working since because compatibility typedefs have been in
place until they where removed in the recent readline 6.3 release.
Switch to the new style to avoid build breakage.
2014-03-05 Phillip Susi <psusi@ubuntu.com>
libparted: sync partitions > 16
The linux partition sync code was hard coded to only flush
the first 16 partitions.
2014-03-02 Phillip Susi <psusi@ubuntu.com>
libparted: don't require a system id string
Historically the system ID field of a fat boot sector contains a
string identifying the OS that formatted it. It appears that some
recent versions of Windows have stopped bothering with this. Stop
requiring this string to recognize fat as valid.
2014-03-02 Brian C. Lane <bcl@redhat.com>
tests: Restrict gpt-header-munge to little-endian systems
gpt-header-munge uses perl to manipulate the gpt header for the test. It
only works on 64 bit little-endian systems so restrict it to x86_64
only.
* tests/t0210-gpt-resized-partition-entry-array.sh: Skip if not x86_64
* tests/t0211-gpt-rewrite-header.sh: Skip if not x86_64
2014-03-02 Brian C. Lane <bcl@redhat.com>
tests: Add btrfs and xfs to the fs probe test
* tests/tests/t1700-probe-fs.sh: Add btrfs and xfs
2014-03-02 Brian C. Lane <bcl@redhat.com>
libparted: Recognize btrfs filesystem
Add support for showing 'btrfs' in the 'file system' column. Also
allows the used to enter btrfs as the fs type. It doesn't really do
anything -- just sets the partition type to linux.
* NEWS (Changes in behavior): Mention it.
* doc/parted.texti: Document btrfs fs.
* (libparted/fs/Makefile.am): Add btrfs.c
* (libparted/fs/btrfs/btrfs.c): Probe for btrfs
* (libparted/libparted.c): Register btrfs
2014-03-02 Brian C. Lane <bcl@redhat.com>
libparted: Add UEFI System Partition flag.
This adds support for the ESP partition type on MS-DOS. It also aliases
it to the boot flag on GPT which sets the ESP GUID type.
* NEWS (New Features): Mention it.
* doc/C/parted.8: Document esp flag.
* doc/parted.texti: Document esp flag.
* include/parted/disk.in.h (_PedPartitionFlag): Add PED_PARTITION_ESP flag
* libparted/disk.c (ped_partition_flag_get_name): Add esp flag
* libparted/labels/dos.c (DosPartitionData): Likewise
(raw_part_parse): Likewise
(msdos_partition_new): Likewise
(msdos_partition_duplicate): Likewise
(msdos_partition_set_system): Likewise
(clear_flags): Likewise
(msdos_partition_set_flag): Likewise
(msdos_partition_get_flag): Likewise
(msdos_partition_is_flag_available): Likewise
* libparted/labels/gpt.c (gpt_partition_set_flag): Add PED_PARTITION_ESP
(gpt_partition_get_flag): Likewise
(gpt_partition_is_flag_available): Likewise
2014-03-02 Brian C. Lane <bcl@redhat.com>
libparted: Add Intel Rapid Start Technology partition flag.
This adds support for the irst partition type flag. Sets the type to
0x84 on MS-DOS and D3BFE2DE-3DAF-11DF-BA-40-E3A556D89593 on GPT.
* NEWS (New Features): Mention it.
* doc/C/parted.8: Document irst flag.
* doc/parted.texti: Document irst flag.
* include/parted/disk.in.h (_PedPartitionFlag): Add PED_PARTITION_IRST flag
* libparted/disk.c (ped_partition_flag_get_name): Add irst flag
* libparted/labels/dos.c (DosPartitionData): Likewise
(raw_part_parse): Likewise
(msdos_partition_new): Likewise
(msdos_partition_duplicate): Likewise
(msdos_partition_set_system): Likewise
(clear_flags): Likewise
(msdos_partition_set_flag): Likewise
(msdos_partition_get_flag): Likewise
(msdos_partition_is_flag_available): Likewise
* libparted/labels/gpt.c: Add PARTITION_IRST_GUID
(GPTPartitionData): Add irst flag
(_parse_part_entry): Likewise
(gpt_partition_new): Likewise
(gpt_partition_set_system): Likewise
(gpt_partition_set_flag): Likewise
(gpt_partition_get_flag): Likewise
(gpt_partition_is_flag_available): Likewise
2014-03-02 Brian C. Lane <bcl@redhat.com>
tests: rewrite t6001 to use /dev/mapper
This test began failing because using a private copy of /dev/mapper
confuses the system. This fixes that and generally cleans up the test.
tests/t6001.sh: update to use /dev/mapper directly
2014-03-02 Brian C. Lane <bcl@redhat.com>
libparted: don't canonicalize /dev/md/ paths (#872361)
This is the same issue we have with /dev/mapper/ paths that was fixed in
commit c1eb485b9fd8919e18f192d678bc52b0488e6ee0. When libparted
is used to setup the device the symlink should be used to reference it,
not the backing device name which could change.
* libparted/device.c (ped_device_get): Don't canonicalize names
that start with "/dev/md/".
2014-03-02 Brian C. Lane <bcl@redhat.com>
tests: Make sure dm UUIDs are not erased
* tests/t6005-dm-uuid.sh: Make sure dm UUIDs are not erased
libparted: preserve the uuid on dm partitions (#832145)
* libparted/arch/linux.c (_dm_add_partition): Set the uuid if there was
one.
2014-03-02 Brian C. Lane <bcl@redhat.com>
libparted: use dm_udev_wait (#698121)
This is based on Peter Rajnoha's patch to use dm_udev_wait to
synchronize with udev.
This requires libdevmapper v1.02.39 and higher.
mailing list thread:
https://lists.gnu.org/archive/html/bug-parted/2010-09/msg00007.html
* libparted/arch/linux.c (_dm_task_run_wait): New function
(_is_dm_major): Add cookie and change call to _dm_task_run_wait
(_is_dmraid_device): Same
(_dm_is_part): Same
(dm_canonical_path): Same
(_dm_remove_partition): Same
(_dm_get_partition_start_and_length): Same
(_dm_add_partition): Same
(linux_new): Enable udev sync support
2014-02-25 Brian C. Lane <bcl@redhat.com>
tests: test creating 20 device-mapper partitions (#803108)
* tests/t6004-dm-many-partitions.sh: Make sure > 17 partitions appear in
device mapper.
libparted: copy pmbr_boot when duplicating GPT disk
* libparted/labels/gpt.c (gpt_duplicate): copy pmbr_boot flag
2014-02-24 Phillip Susi <psusi@ubuntu.com>
Fix help text for disk_{set,toggle}
Fix the help text to show *disk* flags instead of partition flags.
2013-12-23 Phillip Susi <psusi@ubuntu.com>
bug#15591: [PATCH] libparted: handle i18n gpt partition names correctly
gpt.c was simply truncating the UTF-16 characters stored
in the partition name field to 8 bits. This corrupted non
ascii characters which later resulted in parted crashing in
strlist.c trying to convert the now invalid multi byte
characters to wchar.
gpt.c will now properly convert the UTF-16 to the current
locale encoding.
2013-11-23 Phillip Susi <psusi@ubuntu.com>
libparted: make sure not to treat percentages as exact
If 1% of the drive size worked out ot be an even power of
two, it would trigger the exact placement. Add an exception
for the percent units.
2013-11-23 Daniel Battaiola Kreling <dbkreling@br.ibm.com>
GPT: add support for PReP GUID
PReP (PowerPC Reference Platform) boot partition is the first partition used in
PowerPC platform for containing the bootable kernel or bootloader. The firmware
searches for this partition and jumps to it for booting. So far no GUID was
specified for this partition type and hence booting from GPT disk was not
supported on this platform. A new GUID 9e1a2d38-c612-4316-aa26-8b49521e5a8b for
PReP partition is proposed to be included in GPT.
2013-11-23 Phillip Susi <psusi@ubuntu.com>
Fix test compilation
The tests were not being linked against libpthread but were using
it, and recent versions of gcc refuse to implicitly pull it in.
libparted: avoid disturbing partitions
The partition sync logic was first removing all
partitions, then trying to re-add them. This resulted in many
udev events triggering annoying behavior like auto mounting.
Refactor the code to avoid removing and re-adding unmodified
partitions.
Revert "linux-commit: do not unnecessarily open partition device nodes"
This reverts commit 2a6936fab4d4499a4b812dd330d3db50549029e0. The commit
disabled flushing the block buffer caches on the partition nodes to ensure
cache consistency on 2.6 kernels, supposedly because this was no longer
required. It appears this was incorrect, and the caches DO still need
flushed, otherwise a new fs written to the partition device does not show
up in the disk device cache, causing parted to still identify the old fs.
libparted: allow some common errors to be ignored
Partitions that overlap or extend beyond the end of the disk are common
errors that usually result in people having to use other tools to correct
because parted refuses to operate when it sees them. Change these errors
to allow you to ignore them and use parted to correct the problem.
2013-11-23 Phillip Susi <psusi@ubuntu.com>
libparted: fix gpt end of disk handling
There are two checks for problems with the end of disk. The first checks
to make sure that the backup gpt is actually at the end of the disk as it
should be. The second checks to see that the gpt's idea of where the disk
ends is correct. The handling of the backup gpt location was wrong because
if you chose not to fix the error, then as soon as you made any changes the
backup would be written to the end of the disk anyhow, only the previous
backup would not be zeroed.
This patch fixes the write path to put the backup gpt where the gpt says
it goes, not where we think the disk ends. This allows you to choose
not to fix the problems, and the backup gpt will be written to the same
place it was before, not the new end of disk.
2013-11-23 Phillip Susi <psusi@ubuntu.com>
libparted: handle logical partitions starting immediately after the EBR
_blkpg_add_partition() set the length of the extended partition
to 2 sectors to allow LILO to be installed there, beacuse the
linux kernel does this. If a logical partition used that second
sector, adding it would fail beacuse of the overlap. Now
_blkpg_add_partition() will limit the length to only the first
sector if the second is used by a logical partition.
Previously parted did create the partition table, and after a
reboot, the kernel would recognize the table, and happily create
the extended partition as 2 sectors long, thus overlapping the
logical partition, but when parted tried to recreate the same
table with BLKPG, the kernel rightly rejected it.
2013-11-23 Phillip Susi <psusi@ubuntu.com>
gpt: Revert small device commits
The following commit broke the position of the LastUsableLBA:
48f236f9: gpt: permit "mklabel gpt" on a 67-sector device
It introduced an off by one error, leaving LastUsableLBA pointing to
the first sector of the backup partition table instead.
This effectively reverts that commit, as well as adjusting the subsequent
commits to instead use 68 sectors as the minimum length. I believe
this is the minimum legal size as at 67 sectors, there is no valid
value for FirstUsableLBA and LastUsableLBA.
2013-11-23 Phillip Susi <psusi@ubuntu.com>
tests: t6003-dm-hide: don't hang on exception
If the parted -l found any exceptions, it would print the prompt, which was
redirected to the log, then hang waiting for input, which never came. Use
script mode to disable the prompts.
parted: fix EOF and ctrl-c handling
feof() seems to not detect EOF after readline() hits it, so parted went
into an infinite loop prompting for input on EOF. Change test to use the
got_ctrl_c variable instead, which is set when readline hits EOF and
returns NULL. This also makes parted properly exit on ctrl-c.
2013-10-09 Jim Meyering <meyering@fb.com>
bootstrap: update to latest from gnulib
2013-10-09 Jonathan Liu <net147@gmail.com>
dos: improve MBR signature generation
Using tv_usec in struct timeval from gettimeofday() doesn't provide
enough precision to fill an unsigned 32-bit integer and isn't really
random. It it always less than one million when using the GNU C library
while an unsigned 32-bit integer ranges between 0 and 4294967295.
In FAT filesystem creation, parted already uses a better random
generator, so move that code into a common function and use it
for MS-DOS MBR signature generation.
* libparted/fs/r/fat/fat.c (_gen_new_serial_number): Remove.
(fat_create): Use generate_random_uint32 instead of
_gen_new_serial_number.
* libparted/labels/dos.c (generate_random_id): Remove.
(msdos_write): Use generate_random_uint32 instead of
generate_random_id.
* libparted/labels/misc.h (generate_random_uint32): New function.
Created from _gen_new_serial_number in libparted/fs/r/fat/fat.c with
additional check to avoid returning zero, which may be interpreted
as no FAT serial number or no MBR signature.
2013-01-06 Jim Meyering <jim@meyering.net>
maint: avoid new warning/error with gcc-4.8.0 20130105
* configure.ac (WERROR_CFLAGS): Disable -Wsuggest-attribute=format.
It was suggesting to apply the gnu_printf attribute to vsnprintf.
maint: update all copyright year number ranges
Run "make update-copyright".
build: update gnulib submodule to latest
2013-01-02 Jim Meyering <jim@meyering.net>
doc: 1MiB-alignment is not enough for cheap flash drives
* doc/parted.texi: Add an example that aligns to 4GiB, and
reference Arnd Bergman's LWN article.
2012-10-29 Jim Meyering <jim@meyering.net>
tests: make t6003-dm-hide work reliably on F17
* tests/t6003-dm-hide.sh: Adjust to work reliably on Fedora 17.
2012-10-29 Phillip Susi <psusi@ubuntu.com>
libparted: don't probe every dm device in probe_all
We were probing every dm device. Only probe dmraid whole disk
(non-partition) devices instead. This removes the clutter of
LVM logical volumes, and dmraid partitions from the list, which
usually do not make sense to partition.
* NEWS (Changes in behavior): Mention it.
* libparted/arch/linux.c (_is_dmraid_device): New function.
(_dm_is_part): Likewise.
(_probe_dm_devices): Use the latter.
* tests/t6003-dm-hide.sh: New test.
* tests/Makefile.am (TESTS): Add it.
2012-10-29 Phillip Susi <psusi@ubuntu.com>
libparted: remove extraneous blkpg add partition ped exception
_blkpg_add_partition was throwing an exception if it failed to add the
new partition, in addition to _disk_sync_part_table throwing one, and
then bailing out. Instead of bailing out, just log the error for
reporting later and continue.
libparted: refactor device-mapper partition sync code
The device-mapper partition sync code was still using the remove all
partitions, then add new partitions method. Refactor to use the same
algorithm as regular disks: try to remove all, and ignore any that could
not be removed but have not changed.
2012-10-23 Eric Blake <eblake@redhat.com>
build: default to --enable-gcc-warnings in a git tree
Anyone building from cloned sources can be assumed to have a new
enough environment, such that enabling gcc warnings by default will
be useful. Tarballs still default to no warnings, and the default
can still be overridden with --disable-gcc-warnings.
* configure.ac (gl_gcc_warnings): Set default based on environment.
2012-10-17 Brian C. Lane <bcl@redhat.com>
tests: cleanup losetup usage
The unsafe_losetup_ function was failing because losetup didn't
recognize that the 'private' /dev/loopX devices were the same as
/dev/loopX, it would fail even if one was in use. Switch to using
losetup --show which is a cleaner solution.
Also use sparse file for loop_setup to save space.
* tests/t-lvm.sh (unsafe_losetup_): Remove function.
(loop_setup_): Use losetup's --show option instead.
Use dd with /dev/null, not /dev/zero.
* tests/t6001-psep.sh: Use loop_setup_ rather than losetup --show.
2012-10-17 Jim Meyering <jim@meyering.net>
maint: regenerate .po, .pot files
maint: use $(AM_V_GEN) to cut down on build noise
* doc/Makefile.am: Prefix each rule with $(AM_V_GEN).
* doc/po4a.mk (dist_man_MANS): Likewise.
2012-10-16 Petr Uzel <petr.uzel@suse.cz>
partprobe: remove partitions when there is no partition table
When partprobe detects no partition table on a device, it should
tell the kernel to drop partitions on that device, but it did not.
* parted/partprobe.c (process_dev): When ped_disk_probe fails,
create a dummy (empty) partition table and use that.
* NEWS (Bug fixes): Mention it.
Addresses: https://bugzilla.novell.com/783419
2012-10-15 Petr Uzel <petr.uzel@suse.cz>
doc: update partprobe manpage
* doc/C/partprobe.8: Add long options, REPORTING BUGS section
and adjust DESCRIPTION section because it wasn't quite correct.
partprobe: remove --no-update long option
It was deprecated and scheduled for removal in 2009.
* partprobe/partprobe.c (long_options): Remove "no-update" entry.
build: .gitignore: ignore tests/fs-resize
2012-10-09 Jim Meyering <meyering@redhat.com>
build: do not rely on automake's AM_TESTS_ENVIRONMENT
* tests/Makefile.am (TESTS_ENVIRONMENT): Rename from
AM_TESTS_ENVIRONMENT, since it is not honored in automake-1.11.3
after all. This reverts commit v3.1-14-g2bd66d7. For now, I'll
leave the following commit that made bootstrap.conf require 1.11.2.
Prompted by a report of test failure from Phillip Susi.
2012-10-09 Gilles Espinasse <g.esp@free.fr>
tests: t8001: do not rely on "modprobe loop"
Remove 'rmmod loop' and 'modprobe loop max_part=7' commands.
The latter command may fail after the first command has run,
leaving the machine with no loop support.
This happens on my chroot, because:
- rmmod does not depend on the availability of the loop module,
- modprobe fails, since the kernel compiled inside the chroot
is different from the running kernel.
Instead, rely on t-lvm loop_setup_ to load the loop module, if required.
2012-10-09 Jim Meyering <meyering@redhat.com>
tests: improve test for partitionable loop devices
* tests/init.cfg (require_partitionable_loop_device_): Skip
when cat fails.
2012-10-06 Jim Meyering <meyering@redhat.com>
maint: fix an error in the preceding commit log
Stefano Lattarini noticed an error in the log for
commit v3.1-32-g478e472. Arrange for that error
to be fixed in the generated ChangeLog file.
* build-aux/git-log-fix: New file.
* Makefile.am (gen-ChangeLog): Adjust rule to use it.
tests: stop using private "dev" directory for losetup
Something about Fedora 17's losetup changed so that using a private
dev directory no longer worked. Now, simply use /dev/ directly.
* tests/t-lvm.sh: Don't use $G_dev_. Not needed, and actually
caused the t6000-dm root-only test to fail on Fedora 17.
Also, redirect less to /dev/null: that helps diagnose failure.
2012-10-04 Bob Beers <bob.beers.gmail.com> (tiny change)
doc: libparted/disk.c: correct doxygen comment typo
* libparted/disk.c: s/PedPartition/PedDisk/
2012-09-29 Jim Meyering <meyering@redhat.com>
tests: clean up tests
Use warn_ and $ME_ in place of warn and $ME; remove definitions of
the latter two. Remove unused code.
* tests/lvm-utils.sh: Remove file. All functions were either unused
or duplicated/better in t-lvm.sh.
* tests/Makefile.am (EXTRA_DIST): Remove it.
* tests/t-local.sh (scsi_debug_setup_): Use echo 1>&2, not warn_, to
emit to log file only, not console. The diagnostic it emitted (in
verbose mode) was more "informational" than a warning.
* tests/t9030-align-check.sh: Use warn_, not warn.
* tests/t-lvm.sh: Likewise, and use fail_, not error (undefined!).
* tests/t-lib-helpers.sh (device_mapper_required_): Use t-lvm.sh
and an explicit lvm_init_root_dir_ in place of lvm-utils.sh.
2012-09-29 Roderick W. Smith <rodsmith@rodsbooks.com>
add support for a new Linux-specific GPT partition type code
* NEWS: Describe the new Linux-specific partition type code
and the new msftres flag that can be used to override this type
code, should it be necessary.
* doc/parted.texi: Describe of the new msftres flag.
* include/parted/disk.in.h [_PedPartitionFlag]: Add
PED_PARTITION_MSFT_DATA.
* libparted/disk.c: Add check for PED_PARTITION_MSFT_DATA, with
return of "msftdata", to ped_partition_flag_get_name()
* libparted/labels/gpt.c (PARTITION_LINUX_DATA_GUID): Define.
[_GPTPartitionData]: New member, "int msftdata".
(_parse_part_entry): Set the msftdata flag if and only if the
PARTITION_BASIC_DATA_GUID type code is in use;
(gpt_partition_new): Use the PARTITION_LINUX_DATA_GUID
type as the default type code
(gpt_partition_set_system): Set the PARTITION_BASIC_DATA_GUID type
code on partitions on which the msftdata flag is set and set
PARTITION_LINUX_DATA_GUID as the type by default.
Clear the msftdata flag in most tests in gpt_partition_set_flag()
(gpt_partition_set_flag): Add test for PED_PARTITION_MSFT_DATA, which
sets msftdata and other flags appropriately
(gpt_partition_get_flag): Add test for the PED_PARTITION_MSFT_DATA
item that returns the status of the msftdata flag
(gpt_partition_is_flag_available): Add test for
PED_PARTITION_MSFT_DATA item to
* tests/t0220-gpt-msftres.sh: Accommodate the fact that now,
partition table listings include "msftdata" for file systems
of type NTFS and FAT*.
For more discussion and justification, see
http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10456
2012-09-20 Jim Meyering <meyering@redhat.com>
tests: mac: exercise the just-fixed bug
* tests/t0350-mac-PT-increases-sector-size.sh: New test.
* tests/Makefile.am (TESTS): Add it.
2012-09-20 Brian C. Lane <bcl@redhat.com>
mac: don't let larger partition-table-specified block size evoke UB
For example, in reading a MAC partition table on a 512-byte sector-size
disk, _disk_analyse_block_size could find reason to ask if it's ok to
increase that to e.g., 2048. Upon a positive reply, we would read 2048
bytes into a 512-byte buffer.
* libparted/labels/mac.c (mac_read): If needed, reallocate "buf"
to accommodate a new, larger sector size.
* NEWS (Bug fixes): Mention it.
2012-09-20 Jim Meyering <meyering@redhat.com>
tests: avoid syntax-check failure for reversed compare args
* tests/t0203-gpt-create-on-min-sized-device.sh: Reverse args,
so that any diff output (upon failed test) looks sensible.
2012-09-12 Jim Meyering <meyering@redhat.com>
tests: show that small dev now evokes "mklabel gpt" diagnostic
* tests/t0203-gpt-create-on-min-sized-device.sh: New test.
* tests/Makefile.am (TESTS): Add it.
gpt: when "mklabel gpt" fails, always provide a diagnostic
* libparted/labels/gpt.c (gpt_alloc): When rejecting a device because
it is too small, give a diagnostic, as is done in every other failure
path through this function.
gpt: permit "mklabel gpt" on a 67-sector device
* libparted/labels/gpt.c (gpt_alloc): Correct checks in order to
allow creation of a GPT partition table on a 67-sector device.
The computation of the "data_end" sector number was one too low.
Whereas there are two sectors at the beginning of the disk (pMBR
and the GPT header sector), there is only one at the end: the
backup GPT header. That (67) is the size of the smallest GPT
partition table, allowing for *no* partition table sectors.
tests: update t7000-scripting.sh to avoid new FP
* tests/t7000-scripting.sh: Use -34s as the endpoint, not -1s,
to avoid a spurious difference. Also, remove quoting artifacts.
2012-09-12 Davidlohr Bueso <dave@gnu.org>
gpt: require first_usable_LBA <= last_usable_LBA
When verifying GPT header integrity, ensure that the
first usable LBA is no larger than the last usable LBA.
* libparted/labels/gpt.c (_header_is_valid): Reject a header
with last_usable < first_usable.