1 GNU parted NEWS -*- outline -*-
3 * Noteworthy changes in release ?.? (????-??-??) [?]
7 parted has improved support for partitionable loopback devices
11 parted now exits nonzero for certain failures already diagnosed as "Error".
12 For example, before this change, parted would exit successfully in spite
13 of "Error: ...unrecognised disk label" and "Error:... both GPT primary
14 and backup partition tables are corrupted".
16 libparted: gpt_disk_duplicate now copies the flags over to the new
17 disk object. Previously the flags would be undefined.
19 libparted can now read partition tables with a number of partition
20 array entries that is different from the default of 128. Before,
21 it would fail to recognize them and could even read beyond the end
22 of a heap-allocated buffer.
24 libparted: no longer aborts (failed assertion) due to a nilfs2_probe bug
25 [bug introduced in parted-2.4 with the addition of nilfs2 support]
27 libparted: no longer aborts when reading a truncated GPT-formatted device
28 [bug present at least as far back as RHEL4's parted-1.6.19]
30 libparted: works with a two-component linux kernel version number like 3.0
31 [bug present since the beginning]
33 libparted: strengthen the pc98 test so that it is much less likely to
34 cause an MSDOS partition table to be mistakenly identified as pc98.
35 [bug present since the beginning]
37 libparted no longer gets a failed assertion when probing a partition
38 with an HFS or HFS+ signature, but with invalid ->total_blocks and/or
41 ** Changes in behavior
43 parted: mkpart command has changed semantics with regard to specifying end
44 of the partition. If the end is specified using MiB, GiB, etc. unit, parted
45 subtracts one sector from the specified value. With this change, it is now
46 possible to create partitions like 1MiB-2MiB, 2MiB-3MiB and so on.
50 "make dist" no longer builds .tar.gz files.
51 xz is portable enough and in wide-enough use that distributing
52 only .tar.xz files is enough.
55 * Noteworthy changes in release 3.0 (2011-05-30) [stable]
59 Fix numerous small leaks in both the library and the UI.
61 ** Changes in behavior
63 Remove all FS-related (file system-related) sub-commands; these commands
64 are no longer recognized because they were all dependent on parted "knowing"
65 too much about file system: mkpartfs, mkfs, cp, move, check, resize.
66 This change removes not just the user interface bits, but also the
67 library functions and nearly all of the underlying FS-munging code.
68 The code embedded in Parted by which it knew about those file systems
69 was so old, unmaintainable and buggy that while seemingly drastic,
70 this change is like removing a gangrenous toe.
72 Here is the list of removed functions:
74 ped_file_system_clobber
76 ped_file_system_create
80 ped_file_system_resize
81 ped_file_system_get_create_constraint
82 ped_file_system_get_resize_constraint
83 ped_file_system_get_copy_constraint
85 This change also removes the corresponding function members
86 from "struct _PedFileSystemOps":
88 clobber open create close check copy resize get_create_constraint
89 get_resize_constraint get_copy_constraint
92 * Noteworthy changes in release 2.4 (2011-05-18) [stable]
96 parted no longer allows the modification of certain in-use partitions.
97 In particular, before this fix, parted would permit removal or modification
98 of any in-use partition on a dmraid and any in-use partition beyond the 15th
99 on a regular scsi disk.
101 Improve support of DASD devices on the s390 architecture.
102 Parted now supports all DASD types (CKD and FBA), DASD formats (CDL,
103 LDL, CMS non-reserved, and CMS reserved), and DASD drivers (ECKD, FBA,
104 and DIAG) in all combinations supported by the Linux kernel. As before,
105 only CDL format on CKD DASD using the ECKD driver is supported for
106 read-write operations (create, delete, move, re-size, etc.). However,
107 the implicit partition present on LDL- and CMS-formatted disks is now
108 correctly recognized for read-only operations. In detail:
110 - parted now correctly handles LDL-format disks with a block
111 size other than 4096 (bug fix)
113 - parted now recognizes the CMS disk format, both reserved
114 and non-reserved (enhancement)
116 - parted now supports FBA DASD devices (enhancement)
118 - parted now supports the DIAG driver when running in a
119 virtual machine under z/VM (enhancement)
121 libparted: raise the limit on the maximum start sector and the
122 maximum number of sectors in a "loop" partition table from 2^32 to 2^64.
123 [bug introduced in parted-2.1]
125 libparted once again recognizes a whole-disk FAT partition
126 [bug introduced in parted-1.9.0]
128 libparted now recognizes scsi disks with a high major (128-135) as scsi
131 an msdos partition table on a very small device (smaller than one cylinder)
132 is now recognized. [bug introduced in parted-2.2]
134 libparted: zero-length devices (other than files) are ignored rather than
135 throwing an exception.
137 libparted: gpt label creation can no longer divide by zero with a
138 defective device or when a concurrent writer modifies the PE-size
139 bytes in the small interval between the write and subsequent read
140 of the primary GPT header.
142 ** Changes in behavior
144 "parted $dev print" now prints information about the device (model, size,
145 transport, sector size) even when it fails to recognize the disk label.
147 specifying partition start or end values using MiB, GiB, etc. suffixes
148 now makes parted do what I want, i.e., use that precise value, and not
149 some other that is up to 500KiB or 500MiB away from what I specified.
150 Before, to get that behavior, you would have had to use carefully chosen
151 values with units of bytes ("B") or sectors ("s") to obtain the same
152 result, and with sectors, your usage would not be portable between devices
153 with varying sector sizes. This change does not affect how parted handles
154 suffixes like KB, MB, GB, etc.
157 * Noteworthy changes in release 2.3 (2010-05-28) [stable]
161 parted now recognizes ATA over Ethernet (AoE) devices
163 parted now recognizes Linux Software RAID Arrays
165 libparted has a new partition flag to check for diagnostic (aka recovery
166 or reserved) partitions: PED_PARTITION_DIAG
170 When libparted deferenced a /dev/mapper/foo symlink, it would keep the
171 resulting /dev/dm-N name and sometimes use it later, even though it
172 had since become stale and invalid. It no longer stores the result
173 of dereferencing a /dev/mapper symlink.
175 libparted's msdos_partition_is_flag_available function now always reports
176 that the "hidden" flag is not available for an extended partition.
177 Similarly, msdos_partition_get_flag(p,PED_PARTITION_HIDDEN) always returns 0
178 for an extended partition.
180 libparted uses a more accurate heuristic to distinguish between
181 ext4 and ext3 partitions.
183 libparted now properly checks the return value of dm_task_run when
184 operating on devicemapper devices.
186 allow using ped_device_cache_remove(dev) followed by a (later)
187 ped_device_destroy() without corrupting the device cache.
189 when creating an ext2 file system[*], Parted no longer creates an
190 invalid one when its size is 2TiB or larger.
191 [*] Remember, now all FS-creation operations are deprecated in Parted.
192 This is not an indicator that we'll be supporting this code.
193 On the contrary, it is slated to be removed.
195 ** Changes in behavior
197 libparted no longer issues an exception/warning about >512-byte
198 sector support being "HIGHLY EXPERIMENTAL". It seems to have matured
199 enough to be usable at least with GPT and MSDOS partition tables.
202 * Noteworthy changes in release 2.2 (2010-02-26) [stable]
204 ** Changes in behavior
206 The default alignment (--align option) for newly created partitions has
207 been changed to optimal.
211 The ped_device_get_*_alignment() functions now return a sane default
212 value instead of NULL when the so called topology information is incomplete.
213 The default minimum alignment aligns to physical sector size, the default
214 optimal alignment is 1MiB, which is what vista and windows 7 do.
218 Parted no longer uses a physical sector size of 0 or of any other
219 value smaller than the logical sector size.
221 dos: creating an HFS or HFS+ partition in an msdos partition table
222 used to set the partition type to 0x83. That is wrong. The required
223 number is 0xaf, and that is what is used now.
225 gpt: read-only operation could clobber MBR part of hybrid GPT+MBR table
226 [bug introduced in parted-2.1]
228 gpt: a read-only operation like "parted $dev print" would overwrite $dev's
229 protective MBR when exactly one of the primary and backup GPT tables was
231 [bug introduced prior to parted-1.8.0]
233 sun: the version, sanity and nparts VTOC fields were ignored by libparted.
234 Those fields are properly initialized now. The nparts (number of partitions)
235 field is initialized to 8 (max. number of sun partitions) rather that to a
236 real number of partitions. This solution is compatible with Linux kernel
239 "make install" no longer installs tests programs named disk and label
241 libparted: try harder to inform kernel of partition changes.
242 Previously when editing partitions, occasionally the kernel would
243 fail to be informed of partition changes. When this happened future
244 problems would occur because the kernel had incorrect information.
245 For example, if this problem arose when resizing or creating a
246 new partition, then an incorrect partition size might be displayed
247 or a user might encounter a failure to format or delete a newly
248 created partition, respectively.
250 libparted: committing a disk that was returned by ped_disk_duplicate
251 would always result in ped_disk_clobber being called (and thus the first
252 and last 9KiB of the disk being zeroed), even if the duplicated disk,
253 was not returned by ped_disk_fresh().
256 * Noteworthy changes in release 2.1 (2009-12-20) [stable]
260 new --align=<align> commandline option which can have the following values:
261 none: Use the minimum alignment allowed by the disk type
262 cylinder: Align partitions to cylinders (the default)
263 minimal: Use minimum alignment as given by the disk topology information
264 optimal: Use optimum alignment as given by the disk topology information
265 The minimal and optimal values will use layout information provided by the
266 disk to align the logical partition table addresses to actual physical
267 blocks on the disks. The mininal value uses the minimum aligment needed to
268 align the partition properly to physical blocks, which avoids performance
269 degradation. Where as the optimal value uses a multiple of the physical
270 block size in a way that guarantees optimal performance.
271 The min and opt values will only work when compiled with
272 libblkid >= 2.17 and running on a kernel >= 2.6.31, otherwise they will
273 behave as the none --align value.
275 libparted: new functions to set per disk (instead of per partition) flags:
278 ped_disk_is_flag_available()
279 ped_disk_flag_get_name()
280 ped_disk_flag_get_by_name()
283 libparted: new per disk flag: PED_DISK_CYLINDER_ALIGNMENT. This flag
284 (which defaults to true) controls if disk types for which cylinder alignment
285 is optional do cylinder alignment when a new partition gets added.
287 libparted: new functions to return per-partition-table-type limits:
288 - ped_disk_max_partition_start_sector: Return the largest representable
289 start sector number for a given "disk".
290 - ped_disk_max_partition_length: Return the maximum partition length
293 new command "align-check TYPE N" to determine whether the starting sector
294 of partition N is TYPE(minimal|optimal)-aligned for the disk. E.g.,
295 parted -s /dev/sda align-check min 1 && echo partition 1 is min-aligned
296 parted -s /dev/sda align-check opt 2 && echo partition 2 is opt-aligned
297 The same libblkid and kernel version requirements apply as for --align
299 Add functions to libparted to get minimal and optimal alignment
300 information from devices:
301 ped_device_get_minimal_aligned_constraint()
302 ped_device_get_optimal_aligned_constraint()
303 ped_device_get_minimum_alignment()
304 ped_device_get_optimum_alignment()
305 The same libblkid and kernel version requirements apply as for --align
307 Add ped_disk_get_partition_alignment() function to libparted to get
308 information about alignment enforced by the disk type.
312 parted can once again create partition tables on loop devices.
313 Before, "parted -s /dev/loop0 mklabel gpt" would fail.
314 [bug introduced in parted-1.9.0]
316 improved >512-byte sector support: for example, printing a table on a
317 4k-sector disk would show "Sector size (logical/physical): 4096B/512B",
318 when the sizes should have been "4096B/4096B".
320 gpt tables are more rigorously checked; before, partition entry array CRCs
321 were not checked, and we would mistakenly use the AlternateLBA member of a
322 known-corrupt primary table.
324 improved dasd disk support, in previous versions calling
325 ped_disk_new_fresh() or ped_disk_duplicate() on a dasd type PedDisk
326 would fail. This is fixed now.
328 handle device nodes created by lvm build with udev synchronisation enabled
331 when printing tables, parted no longer truncates flag names
334 * Noteworthy changes in release 2.0 (2009-10-06) [beta]
338 Parted now supports disks with sector size larger than 512 bytes.
339 Before this release, Parted could operate only on disks with a sector
340 size of 512 bytes. However, disk manufacturers are already making disks
341 with an exposed hardware sector size of 4096 bytes. Prior versions of
342 Parted cannot even read a partition table on such a device, not to
343 mention create or manipulate existing partition tables.
344 Due to internal design and time constraints, the following
345 less-common partition table types are currently disabled:
346 amiga, bsd, aix, pc98
347 "bsd" and "amiga" are mostly done, but had a few minor problems,
348 so may remain disabled until someone requests that they be revived.
352 big-endian systems can once again read GPT partition tables
353 [bug introduced in parted-1.9.0]
355 ped_partition_is_busy no longer calls libparted's exception handler,
356 since doing so caused trouble with anaconda/pyparted when operating on
359 Partitions in a GPT table are no longer assigned the "microsoft
360 reserved partition" type. Before this change, each partition would
361 be listed with a type of "msftres" by default.
364 * Noteworthy changes in release 1.9.0 (2009-07-23) [stable]
368 parted now preserves the protective MBR (PMBR) in GPT type labels.
369 http://lists.alioth.debian.org/pipermail/parted-devel/2008-December/\
371 http://lists.gnu.org/archive/html/bug-parted/2008-12/msg00015.html
373 gpt_read now uses SizeOfPartitionEntry instead of the size of
374 GuidPartitionEntry_t. This ensures that *all* of the partition
375 entries are correctly read.
376 http://lists.alioth.debian.org/pipermail/parted-devel/2008-December/\
378 http://lists.alioth.debian.org/pipermail/parted-devel/attachments/\
379 20081202/b7c0528d/attachment.txt
381 mklabel (interactive mode) now correctly asks for confirmation, when
382 replacing an existent label, without outputting an error message.
383 http://lists.alioth.debian.org/pipermail/parted-devel/2009-January/\
386 resize now handles FAT16 file systems with a 64k cluster. This
387 configuration is not common, but it is possible.
388 http://parted.alioth.debian.org/cgi-bin/trac.cgi/ticket/207
390 parted now ignores devices of the type /dev/md* when probing. These
391 types of devices should be handled by the device-mapper capabilities
393 http://lists.alioth.debian.org/pipermail/parted-devel/2009-April/\
396 The parted documentation now describes the differences in the options
397 passed to mkpart for the label types.
398 http://lists.alioth.debian.org/pipermail/parted-devel/2009-April/\
401 ** Changes in behavior
403 include/parted/beos.h, include/parted/gnu.h and include/parted/linux.h
404 have been removed. The symbols contained in these files (GNUSpecific,
405 ped_device_new_from_store, BEOSSpecific, LinuxSpecific, LINUX_SPECIFIC)
406 were moved to the individual files that need them.
408 In libparted, the linux-swap "filesystem" types are now called
409 "linux-swap(v0)" and "linux-swap(v1)" rather than "linux-swap(old)"
410 and "linux-swap(new)" as in parted 1.8, or "linux-swap" as in older
411 versions; "old" and "new" generally make poor names, and v1 is the
412 only format supported by current Linux kernels. Aliases for all
413 previous names are available.
415 * Noteworthy changes in release 1.8.8.1 (2007-12-17) [stable]
417 ** FIXME: fill in details
419 * Noteworthy changes in release 1.8.8 (2007-08-09) [stable]
421 ** GNU parted is now licensed under the GNU General Public License version 3
422 or higher. See the COPYING file for more details.
425 - Add compute_block_counts() to improve ext2fs support.
426 - Properly detect 'ext2 fs too small' cases.
427 - Move formatting commands out of translatable strings.
428 - Read an msdos partition table from a device with 2K sectors.
429 - Remove always-false "Unable to open" diagnostic in ped_disk_new(),
430 leave the "unrecognized disk label" diagnostic.
431 - Don't leak partition table buffer in amiga_read().
432 - Don't read/write initialized memory with DEBUG turned on off for
433 'mklabel bsd' and 'mklabel amiga' command calls.
434 - Turn off DEBUG in libparted.c to avoid initializing all allocated
436 - Correct handling of HeaderSize field in GPT labels.
437 - Fix block number used when checking for ext2 fs state.
438 - Add detection support for Xen virtual block devices (/dev/xvd*).
439 - When reading DASD labels, check the filesystem type as well as
440 partition flags to determine what's on the partition.
441 - Add _dm_probe_all() from Debian to probe for all device-mapper
445 - Fixed exception handling in mkpart and mkpartfs commands.
446 - Add the --dry-run option to the partprobe command.
447 - Update docs: cannot specify 'primary' for a partition on a loop
449 - Remove unused functions (get_spaces).
450 - Fix off-by-one error in str_list_print_wrap().
451 - Use xmalloc() and xrealloc() to check return values.
452 - Fix invalid command line argument handling.
453 - Close memory leaks in parted.c and table.c.
454 - Fix warnings when compiling with translation support enabled.
455 - Use a consistent prompt when asking for a file system type.
456 - Update docs: don't reference old versions of gzip.
459 - Improve the testing framework in the tests/ subdirectory. Build out
460 more of the testing scripts so we can start using that to ensure we
461 don't introduce regressions in releases.
462 - Support testing with tmpfs filesystems on Linux.
463 - Work around inadequate libreadline in the configure script.
464 - Don't include config.h from internal headers.
466 * Noteworthy changes in release 1.8.7 (2007-05-09) [stable]
469 - Prevent compilation of DASD code on GNU Hurd systems.
470 - Integrate new unit testing framework for parted and libparted.
471 - Fix primary partition cylinder alignment error for DOS disk labels.
472 - Use PED_PARTITION_NORMAL in place of PED_PARTITION_PRIMARY.
473 - Avoid segfault due to a double free on reiserfs support.
476 - Fix script mode (-s) for mkfs command in parted.
477 - Suppress "you are not superuser..." warning in script mode.
478 - Fix off-by-one bug in parted when displaying information about the
480 - Do not translate partition names in the 'parted print' command.
481 This causes problems for non-Latin-based character sets.
482 - Send errors to stderr rather than stdout.
483 - Handle command line options independent of the order.
484 - Abort on any invalid option and handle -v and -h first.
485 - Only display the update /etc/fstab message when there has been a
486 change to the disk (a shorter and more direct message too).
488 * Noteworthy changes in release 1.8.6 (2007-03-20) [stable]
490 ** Revert the implementation of the linux-swap(new) and linux-swap(old) types.
491 The type is 'linux-swap' for v1, v2, and s1suspend swap partitions on Linux.
493 * Noteworthy changes in release 1.8.5 (2007-03-20) [stable]
495 ** Another minor update. Both versions 1.8.3 and 1.8.4 lacked po translation
496 files. These are included with version 1.8.5.
498 * Noteworthy changes in release 1.8.4 (2007-03-19) [stable]
500 ** Minor bug fix release for 1.8.3 to fix build issues on various
502 - Use 'uname -m' to determine if we build on System Z or not.
503 - Include <parted/vtoc.h> in <parted/fdasd.h> for format1_label_t
505 - Remove unused variables in libparted/arch/linux.c (-Werror).
506 - Check return values on fgets() and asprint() in libparted/arch/linux.c
508 - Check for tgetent() in libtinfo in the configure script.
509 - Move some macro definitions in <parted/disk.h> to fix a compile
510 problem with gcc-4.1.2 as indicated here:
511 http://lists.gnu.org/archive/html/bug-parted/2007-03/msg00008.html
513 * Noteworthy changes in release 1.8.3 (2007-03-16) [stable]
516 - Header file clean ups.
517 - Sync the linux-swap header according to the Linux kernel sources.
518 - Enable support for swsusp partitions and the ability to differentiate
519 between old and new versions of linux-swap partitions.
520 - Renaming PARTITION_EXT to PARTITION_DOS_EXT in the DOS disklabel
521 code (consitency with Linux kernel source).
522 - Added libparted.pc pkg-config file.
523 - Remove unused functions, ifdefs, and other code.
524 - Deprecate ped_[register|unregister]_disk_type in favor of
525 ped_disk_type_[register|unregister].
526 - Small test program fixes (in label.c and common.c).
527 - Make functions const-correct.
528 - Handle systems where libreadline is not available.
529 - Preserve starting sector for primary NTFS 3.1 partitions on DOS
531 - Handle 2048-byte logical sectors in linux_read().
532 - Use PED_SECTOR_SIZE_DEFAULT macro in place of 512.
533 - Don't assume logical sector size is <= 512B on AIX.
534 - Detect HFS write failure.
535 - Use mkstemp() in place of mktemp().
536 - Added HFS+ resize support.
537 - Don't build DASD support on non-zSeries hardware.
540 - Use fputs() and putchar() in place for printf(), when possible.
541 - Detect/report stdout write errors.
542 - Accept the --version and --help options.
543 - Fix memory leaks in parted(8).
546 - Synchronize the manual page and --help documentation.
547 - GNU autoconf and automake updates.
548 - 'gcc -Wall -Wshadow' warning cleanups.
549 - Don't define _GNU_SOURCE manually.
550 - Documentation updates and cleanups (AUTHORS, copyright notices,
552 - Use gnulib (http://www.gnu.org/software/gnulib/).
554 * Noteworthy changes in release 1.8.2 (2007-01-12) [stable]
557 - Add the ped_device_cache_remove() function to remove a device from
558 the cache. This is necessary for some things that use libparted,
560 - Fix a segfault in ped_assert() where the wrong pointer is freed in
561 the backtrace handler.
562 - Only call _disk_warn_loss(disk) in do_mklabel() if disk is not NULL.
563 Fixes a segfault when initializing new volumes.
564 - Dynamically allocate space for exception messages.
565 - Output a backtrace when catching SEGV_MAPPER or a general SIGSEGV.
568 - Destroy all objects before return when called with --list or --all
570 - Zero sized device is shown as 0.00B and not -0.00kB.
571 - Implement 'print devices' command.
572 - Alias 'print list' to 'print all'.
573 - Alias 'mktable' to 'mklabel'.
576 - Other bug fixes, documentation updates, and translation improvements.
577 - Code and API clean-ups.
579 * Noteworthy changes in release 1.8.1 (2006-12-04) [stable]
582 - Rework backtrace support.
584 - Added --enable-selinux configure option to enable linking libparted with
585 libselinux and libsepol.
586 - Disable ext2fs resize for now, tell user to use resize2fs.
589 - Fix loop in print_all().
590 - Introduce the -list command-line switch.
591 - Make mktable aliased to mklabel.
592 - Warn before mklabel and mkfs.
593 - Code cleanups in _partition_warn_busy(), _disk_warn_busy(),
594 _partition_warn_loss(), and _disk_warn_loss().
595 - Avoid warning about user permissions when using --version.
596 - Fix 'print' command help.
597 - Proper print when there are no extended partitions, but partition names.
600 - Generate SHA-1 digest of the archive files and upload those along with the
601 actual archive files.
602 - Update translation files.
603 - Remove automatically generated files from version control.
605 * Noteworthy changes in release 1.8.0 (2006-11-17) [stable]
609 - Correctly handle disks with non-512 byte sector sizes
610 - Support LUN resizing (see new space, allow parted to use it)
611 - Prevent overlap of LastUsableLBA and PartitionEntryLBA in backup GPT
612 - Prevent SIGFPE when FAT sector size is 0
613 - Add ped_exception_get_handler()
614 - DASD support for IBM zSeries systems
615 - AIX disk label support
616 - Detect Promise SX8 storage devices
617 - Macintosh (ppc and x86) disk label improvements:
618 - Prevent LVM and RAID partition types from corrupting the table
619 - Fix removal of driver partition
620 - Add support binary units (MiB, KiB, GiB)
621 - In ped_register_disk_type(), handle disk_types==NULL case
622 - In ped_unregister_disk_type(), handle case where type is not registered
623 - Fix geometry read problems on 64-bit Macs (and probably other 64-bit systems)
624 - Add support for /dev/mapper devices via libdevmapper library
625 - Detect Apple_Boot partition types correctly on MacOS X 10.4 systems
628 - Various bug fixes, signal handling fixes, and spelling error fixes
629 - UI improvements to display more information about the disk and transport
632 ========================================================================
634 Copyright (C) 2001-2011 Free Software Foundation, Inc.
636 Permission is granted to copy, distribute and/or modify this document
637 under the terms of the GNU Free Documentation License, Version 1.3 or
638 any later version published by the Free Software Foundation; with no
639 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
640 Texts. A copy of the license is included in the ``GNU Free
641 Documentation License'' file as part of this distribution.