- Rebase to upstream parted v3.1
- removed merged patches - add new libparted-fs-resize library
This commit is contained in:
parent
c4a50494de
commit
67735861c5
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,3 +5,4 @@ clog
|
|||||||
/parted-2.4.tar.xz.sig
|
/parted-2.4.tar.xz.sig
|
||||||
/parted-3.0.tar.xz
|
/parted-3.0.tar.xz
|
||||||
/parted-3.0.tar.xz.sig
|
/parted-3.0.tar.xz.sig
|
||||||
|
/parted-3.1.tar.xz
|
||||||
|
@ -1,27 +0,0 @@
|
|||||||
From bbe2661b012ecf3948722ddfd0bd56c6891f1930 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brian C. Lane <bcl@redhat.com>
|
|
||||||
Date: Mon, 20 Dec 2010 13:55:24 -0800
|
|
||||||
Subject: [PATCH] Document align-check (#642476)
|
|
||||||
|
|
||||||
---
|
|
||||||
doc/C/parted.8 | 4 ++++
|
|
||||||
1 files changed, 4 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/C/parted.8 b/doc/C/parted.8
|
|
||||||
index 2a8992e..c48e059 100644
|
|
||||||
--- a/doc/C/parted.8
|
|
||||||
+++ b/doc/C/parted.8
|
|
||||||
@@ -62,6 +62,10 @@ Specifies the command to be executed. If no command is given,
|
|
||||||
will present a command prompt. Possible commands are:
|
|
||||||
.RS
|
|
||||||
.TP
|
|
||||||
+.B align-check \fIalignment-type\fP \fIpartition\fP
|
|
||||||
+Determine whether the starting sector of \fIpartition\fP is aligned for the disk.
|
|
||||||
+\fIalignment-type\fP is "minimal" or "optimal".
|
|
||||||
+.TP
|
|
||||||
.B check \fIpartition\fP
|
|
||||||
Do a simple check on \fIpartition\fP.
|
|
||||||
.TP
|
|
||||||
--
|
|
||||||
1.7.3.3
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
|||||||
From 6a38a57cb567ae4206bdfde09bcbed9e50639107 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
|
||||||
Date: Wed, 1 Feb 2012 13:12:00 -0800
|
|
||||||
Subject: [PATCH 5/5] doc: update parted documentation
|
|
||||||
|
|
||||||
* doc/parted.text: Add disk_set command.
|
|
||||||
---
|
|
||||||
doc/parted.texi | 31 +++++++++++++++++++++++++++++++
|
|
||||||
1 files changed, 31 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/doc/parted.texi b/doc/parted.texi
|
|
||||||
index f6c64f5..bd8c33b 100644
|
|
||||||
--- a/doc/parted.texi
|
|
||||||
+++ b/doc/parted.texi
|
|
||||||
@@ -415,6 +415,7 @@ GNU Parted provides the following commands:
|
|
||||||
|
|
||||||
@menu
|
|
||||||
* align-check::
|
|
||||||
+* disk_set::
|
|
||||||
* help::
|
|
||||||
* mklabel::
|
|
||||||
* mkpart::
|
|
||||||
@@ -458,6 +459,36 @@ Example:
|
|
||||||
|
|
||||||
@end deffn
|
|
||||||
|
|
||||||
+@node disk_set
|
|
||||||
+@subsection disk_set
|
|
||||||
+@cindex disk_set, command description
|
|
||||||
+@cindex command description, disk_set
|
|
||||||
+
|
|
||||||
+@deffn Command disk_set @var{flag} @var{state}
|
|
||||||
+
|
|
||||||
+Changes a flag on the disk. A flag can be either ``on'' or ``off''.
|
|
||||||
+Some or all of these flags will be available, depending on what disk
|
|
||||||
+label you are using:
|
|
||||||
+
|
|
||||||
+@table @samp
|
|
||||||
+
|
|
||||||
+@item pmbr_boot
|
|
||||||
+(GPT) - this flag enables the boot flag on the GPT's protective MBR
|
|
||||||
+partition.
|
|
||||||
+
|
|
||||||
+@end table
|
|
||||||
+
|
|
||||||
+The disk's flags are displayed by the print command on the "Disk Flags:"
|
|
||||||
+line. They are also output as the last field of the disk information
|
|
||||||
+in machine mode.
|
|
||||||
+
|
|
||||||
+@example
|
|
||||||
+(parted) @kbd{disk_set pmbr_boot on}
|
|
||||||
+@end example
|
|
||||||
+
|
|
||||||
+Set the PMBR's boot flag.
|
|
||||||
+@end deffn
|
|
||||||
+
|
|
||||||
@node help
|
|
||||||
@subsection help
|
|
||||||
@cindex help, command description
|
|
||||||
--
|
|
||||||
1.7.6.5
|
|
||||||
|
|
@ -1,333 +0,0 @@
|
|||||||
From 88197d7ebf7f0e805749c4daf203e3dab778cd52 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Matthew Garrett <mjg@redhat.com>
|
|
||||||
Date: Wed, 1 Feb 2012 15:12:20 +0100
|
|
||||||
Subject: [PATCH 1/6] gpt: add commands to manipulate pMBR boot flag
|
|
||||||
|
|
||||||
Some BIOS systems will only boot from GPT partitions if the boot flag is
|
|
||||||
set on the protective MBR partition. This adds the ability to set this
|
|
||||||
flag using the disk_set and disk_toggle commands.
|
|
||||||
* include/parted/disk.h (_PedDiskFlag): Add PED_DISK_GPT_PMBR_BOOT
|
|
||||||
* libparted/disk.c (ped_disk_flag_get_name): Add PED_DISK_GPT_PMBR_BOOT
|
|
||||||
* libparted/labels/gpt.c (_GPTDiskData): Add pmbr_boot flag.
|
|
||||||
(gpt_alloc): Init pmbr_boot to 0.
|
|
||||||
(gpt_read_headers): Set pmbr_boot state from PMBR boot flag.
|
|
||||||
(_write_pmbr): Add pmbr_boot flag and set PMBR boot flag from it.
|
|
||||||
(gpt_write): Pass pmbr_boot flag through to _write_pmbr
|
|
||||||
(gpt_disk_set_flag): New function
|
|
||||||
(gpt_disk_is_flag_available): New function
|
|
||||||
(gpt_disk_get_flag): New function
|
|
||||||
(gpt_disk_ops): Add disk_set_flag, disk_get_flag, disk_is_flag_available
|
|
||||||
* parted/parted.c (do_disk_set): New function
|
|
||||||
(do_disk_toggle): New function
|
|
||||||
(_init_commands): Add do_disk_set and do_disk_toggle
|
|
||||||
* parted/ui.c (command_line_get_disk_flag): New function
|
|
||||||
* parted/ui.h: Add command_line_get_disk_flag prototype.
|
|
||||||
---
|
|
||||||
include/parted/disk.h | 5 +++-
|
|
||||||
libparted/disk.c | 3 +-
|
|
||||||
libparted/labels/gpt.c | 60 ++++++++++++++++++++++++++++++++++++++++++-
|
|
||||||
parted/parted.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
parted/ui.c | 29 +++++++++++++++++++++
|
|
||||||
parted/ui.h | 3 ++
|
|
||||||
6 files changed, 162 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/include/parted/disk.h b/include/parted/disk.h
|
|
||||||
index dd461fb..fb9898e 100644
|
|
||||||
--- a/include/parted/disk.h
|
|
||||||
+++ b/include/parted/disk.h
|
|
||||||
@@ -36,9 +36,12 @@ enum _PedDiskFlag {
|
|
||||||
This flag is available for msdos and sun disklabels (for sun labels
|
|
||||||
it only controls the aligning of the end of the partition) */
|
|
||||||
PED_DISK_CYLINDER_ALIGNMENT=1,
|
|
||||||
+ /* This flag controls whether the boot flag of a GPT PMBR is set */
|
|
||||||
+ PED_DISK_GPT_PMBR_BOOT=2,
|
|
||||||
+
|
|
||||||
};
|
|
||||||
#define PED_DISK_FIRST_FLAG PED_DISK_CYLINDER_ALIGNMENT
|
|
||||||
-#define PED_DISK_LAST_FLAG PED_DISK_CYLINDER_ALIGNMENT
|
|
||||||
+#define PED_DISK_LAST_FLAG PED_DISK_GPT_PMBR_BOOT
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Partition types
|
|
||||||
diff --git a/libparted/disk.c b/libparted/disk.c
|
|
||||||
index 1057aa8..f763ac1 100644
|
|
||||||
--- a/libparted/disk.c
|
|
||||||
+++ b/libparted/disk.c
|
|
||||||
@@ -836,7 +836,8 @@ ped_disk_flag_get_name(PedDiskFlag flag)
|
|
||||||
switch (flag) {
|
|
||||||
case PED_DISK_CYLINDER_ALIGNMENT:
|
|
||||||
return N_("cylinder_alignment");
|
|
||||||
-
|
|
||||||
+ case PED_DISK_GPT_PMBR_BOOT:
|
|
||||||
+ return N_("pmbr_boot");
|
|
||||||
default:
|
|
||||||
ped_exception_throw (
|
|
||||||
PED_EXCEPTION_BUG,
|
|
||||||
diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
|
|
||||||
index 7b4e014..689ea46 100644
|
|
||||||
--- a/libparted/labels/gpt.c
|
|
||||||
+++ b/libparted/labels/gpt.c
|
|
||||||
@@ -264,6 +264,7 @@ struct __attribute__ ((packed)) _GPTDiskData
|
|
||||||
PedGeometry data_area;
|
|
||||||
int entry_count;
|
|
||||||
efi_guid_t uuid;
|
|
||||||
+ int pmbr_boot;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* uses libparted's disk_specific field in PedPartition, to store our info */
|
|
||||||
@@ -535,6 +536,7 @@ gpt_alloc (const PedDevice *dev)
|
|
||||||
gpt_disk_data->entry_count = GPT_DEFAULT_PARTITION_ENTRIES;
|
|
||||||
uuid_generate ((unsigned char *) &gpt_disk_data->uuid);
|
|
||||||
swap_uuid_and_efi_guid ((unsigned char *) (&gpt_disk_data->uuid));
|
|
||||||
+ gpt_disk_data->pmbr_boot = 0;
|
|
||||||
return disk;
|
|
||||||
|
|
||||||
error_free_disk:
|
|
||||||
@@ -848,6 +850,15 @@ gpt_read_headers (PedDisk const *disk,
|
|
||||||
*primary_gpt = NULL;
|
|
||||||
*backup_gpt = NULL;
|
|
||||||
PedDevice const *dev = disk->dev;
|
|
||||||
+ GPTDiskData *gpt_disk_data = disk->disk_specific;
|
|
||||||
+ LegacyMBR_t *mbr;
|
|
||||||
+
|
|
||||||
+ if (!ptt_read_sector (dev, 0, (void *)&mbr))
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
+ if (mbr->PartitionRecord[0].BootIndicator == 0x80)
|
|
||||||
+ gpt_disk_data->pmbr_boot = 1;
|
|
||||||
+ free (mbr);
|
|
||||||
|
|
||||||
void *s1;
|
|
||||||
if (!ptt_read_sector (dev, 1, &s1))
|
|
||||||
@@ -1085,7 +1096,7 @@ error:
|
|
||||||
#ifndef DISCOVER_ONLY
|
|
||||||
/* Write the protective MBR (to keep DOS happy) */
|
|
||||||
static int
|
|
||||||
-_write_pmbr (PedDevice *dev)
|
|
||||||
+_write_pmbr (PedDevice *dev, bool pmbr_boot)
|
|
||||||
{
|
|
||||||
/* The UEFI spec is not clear about what to do with the following
|
|
||||||
elements of the Protective MBR (pmbr): BootCode (0-440B),
|
|
||||||
@@ -1110,6 +1121,8 @@ _write_pmbr (PedDevice *dev)
|
|
||||||
pmbr->PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32 (0xFFFFFFFF);
|
|
||||||
else
|
|
||||||
pmbr->PartitionRecord[0].SizeInLBA = PED_CPU_TO_LE32 (dev->length - 1UL);
|
|
||||||
+ if (pmbr_boot)
|
|
||||||
+ pmbr->PartitionRecord[0].BootIndicator = 0x80;
|
|
||||||
|
|
||||||
int write_ok = ped_device_write (dev, pmbr, GPT_PMBR_LBA,
|
|
||||||
GPT_PMBR_SECTORS);
|
|
||||||
@@ -1226,7 +1239,7 @@ gpt_write (const PedDisk *disk)
|
|
||||||
ptes_crc = efi_crc32 (ptes, ptes_size);
|
|
||||||
|
|
||||||
/* Write protective MBR */
|
|
||||||
- if (!_write_pmbr (disk->dev))
|
|
||||||
+ if (!_write_pmbr (disk->dev, gpt_disk_data->pmbr_boot))
|
|
||||||
goto error_free_ptes;
|
|
||||||
|
|
||||||
/* Write PTH and PTEs */
|
|
||||||
@@ -1529,6 +1542,46 @@ gpt_partition_enumerate (PedPartition *part)
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
+gpt_disk_set_flag (PedDisk *disk, PedDiskFlag flag, int state)
|
|
||||||
+{
|
|
||||||
+ GPTDiskData *gpt_disk_data = disk->disk_specific;
|
|
||||||
+ switch (flag)
|
|
||||||
+ {
|
|
||||||
+ case PED_DISK_GPT_PMBR_BOOT:
|
|
||||||
+ gpt_disk_data->pmbr_boot = state;
|
|
||||||
+ return 1;
|
|
||||||
+ default:
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
+gpt_disk_is_flag_available(const PedDisk *disk, PedDiskFlag flag)
|
|
||||||
+{
|
|
||||||
+ switch (flag)
|
|
||||||
+ {
|
|
||||||
+ case PED_DISK_GPT_PMBR_BOOT:
|
|
||||||
+ return 1;
|
|
||||||
+ default:
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
+gpt_disk_get_flag (const PedDisk *disk, PedDiskFlag flag)
|
|
||||||
+{
|
|
||||||
+ GPTDiskData *gpt_disk_data = disk->disk_specific;
|
|
||||||
+ switch (flag)
|
|
||||||
+ {
|
|
||||||
+ case PED_DISK_GPT_PMBR_BOOT:
|
|
||||||
+ return gpt_disk_data->pmbr_boot;
|
|
||||||
+ break;
|
|
||||||
+ default:
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
gpt_partition_set_flag (PedPartition *part, PedPartitionFlag flag, int state)
|
|
||||||
{
|
|
||||||
GPTPartitionData *gpt_part_data;
|
|
||||||
@@ -1816,6 +1869,9 @@ static PedDiskOps gpt_disk_ops =
|
|
||||||
|
|
||||||
partition_set_name: gpt_partition_set_name,
|
|
||||||
partition_get_name: gpt_partition_get_name,
|
|
||||||
+ disk_set_flag: gpt_disk_set_flag,
|
|
||||||
+ disk_get_flag: gpt_disk_get_flag,
|
|
||||||
+ disk_is_flag_available: gpt_disk_is_flag_available,
|
|
||||||
|
|
||||||
PT_op_function_initializers (gpt)
|
|
||||||
};
|
|
||||||
diff --git a/parted/parted.c b/parted/parted.c
|
|
||||||
index 32c2fcc..4220265 100644
|
|
||||||
--- a/parted/parted.c
|
|
||||||
+++ b/parted/parted.c
|
|
||||||
@@ -1475,6 +1475,43 @@ error:
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
+do_disk_set (PedDevice** dev)
|
|
||||||
+{
|
|
||||||
+ PedDisk* disk;
|
|
||||||
+ PedDiskFlag flag;
|
|
||||||
+ int state;
|
|
||||||
+
|
|
||||||
+ disk = ped_disk_new (*dev);
|
|
||||||
+ if (!disk)
|
|
||||||
+ goto error;
|
|
||||||
+
|
|
||||||
+ if (!command_line_get_disk_flag (_("Flag to Invert?"), disk, &flag))
|
|
||||||
+ goto error_destroy_disk;
|
|
||||||
+ state = (ped_disk_get_flag (disk, flag) == 0 ? 1 : 0);
|
|
||||||
+
|
|
||||||
+ if (!is_toggle_mode) {
|
|
||||||
+ if (!command_line_get_state (_("New state?"), &state))
|
|
||||||
+ goto error_destroy_disk;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!ped_disk_set_flag (disk, flag, state))
|
|
||||||
+ goto error_destroy_disk;
|
|
||||||
+ if (!ped_disk_commit (disk))
|
|
||||||
+ goto error_destroy_disk;
|
|
||||||
+ ped_disk_destroy (disk);
|
|
||||||
+
|
|
||||||
+ if ((*dev)->type != PED_DEVICE_FILE)
|
|
||||||
+ disk_is_modified = 1;
|
|
||||||
+
|
|
||||||
+ return 1;
|
|
||||||
+
|
|
||||||
+error_destroy_disk:
|
|
||||||
+ ped_disk_destroy (disk);
|
|
||||||
+error:
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
do_set (PedDevice** dev)
|
|
||||||
{
|
|
||||||
PedDisk* disk;
|
|
||||||
@@ -1515,6 +1552,18 @@ error:
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
+do_disk_toggle (PedDevice **dev)
|
|
||||||
+{
|
|
||||||
+ int result;
|
|
||||||
+
|
|
||||||
+ is_toggle_mode = 1;
|
|
||||||
+ result = do_disk_set (dev);
|
|
||||||
+ is_toggle_mode = 0;
|
|
||||||
+
|
|
||||||
+ return result;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static int
|
|
||||||
do_toggle (PedDevice **dev)
|
|
||||||
{
|
|
||||||
int result;
|
|
||||||
@@ -1751,6 +1800,23 @@ NULL),
|
|
||||||
str_list_create (_(device_msg), NULL), 1));
|
|
||||||
|
|
||||||
command_register (commands, command_create (
|
|
||||||
+ str_list_create_unique ("disk_set", _("disk_set"), NULL),
|
|
||||||
+ do_disk_set,
|
|
||||||
+ str_list_create (
|
|
||||||
+_("disk_set FLAG STATE change the FLAG on selected device"),
|
|
||||||
+NULL),
|
|
||||||
+ str_list_create (flag_msg, _(state_msg), NULL), 1));
|
|
||||||
+
|
|
||||||
+command_register (commands, command_create (
|
|
||||||
+ str_list_create_unique ("disk_toggle", _("disk_toggle"), NULL),
|
|
||||||
+ do_disk_toggle,
|
|
||||||
+ str_list_create (
|
|
||||||
+_("disk_toggle [FLAG] toggle the state of FLAG on "
|
|
||||||
+"selected device"),
|
|
||||||
+NULL),
|
|
||||||
+ str_list_create (flag_msg, NULL), 1));
|
|
||||||
+
|
|
||||||
+command_register (commands, command_create (
|
|
||||||
str_list_create_unique ("set", _("set"), NULL),
|
|
||||||
do_set,
|
|
||||||
str_list_create (
|
|
||||||
diff --git a/parted/ui.c b/parted/ui.c
|
|
||||||
index 6d2fde1..d66029f 100644
|
|
||||||
--- a/parted/ui.c
|
|
||||||
+++ b/parted/ui.c
|
|
||||||
@@ -1113,6 +1113,35 @@ command_line_get_disk_type (const char* prompt, const PedDiskType*(* value))
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
+command_line_get_disk_flag (const char* prompt, const PedDisk* disk,
|
|
||||||
+ PedDiskFlag* flag)
|
|
||||||
+{
|
|
||||||
+ StrList* opts = NULL;
|
|
||||||
+ PedPartitionFlag walk = 0;
|
|
||||||
+ char* flag_name;
|
|
||||||
+
|
|
||||||
+ while ( (walk = ped_disk_flag_next (walk)) ) {
|
|
||||||
+ if (ped_disk_is_flag_available (disk, walk)) {
|
|
||||||
+ const char* walk_name;
|
|
||||||
+
|
|
||||||
+ walk_name = ped_disk_flag_get_name (walk);
|
|
||||||
+ opts = str_list_append (opts, walk_name);
|
|
||||||
+ opts = str_list_append_unique (opts, _(walk_name));
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ flag_name = command_line_get_word (prompt, NULL, opts, 1);
|
|
||||||
+ str_list_destroy (opts);
|
|
||||||
+
|
|
||||||
+ if (flag_name) {
|
|
||||||
+ *flag = ped_disk_flag_get_by_name (flag_name);
|
|
||||||
+ free (flag_name);
|
|
||||||
+ return 1;
|
|
||||||
+ } else
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
command_line_get_part_flag (const char* prompt, const PedPartition* part,
|
|
||||||
PedPartitionFlag* flag)
|
|
||||||
{
|
|
||||||
diff --git a/parted/ui.h b/parted/ui.h
|
|
||||||
index 44b521a..2a27c86 100644
|
|
||||||
--- a/parted/ui.h
|
|
||||||
+++ b/parted/ui.h
|
|
||||||
@@ -63,6 +63,9 @@ extern int command_line_get_fs_type (const char* prompt,
|
|
||||||
const PedFileSystemType*(* value));
|
|
||||||
extern int command_line_get_disk_type (const char* prompt,
|
|
||||||
const PedDiskType*(* value));
|
|
||||||
+extern int command_line_get_disk_flag (const char* prompt,
|
|
||||||
+ const PedDisk* disk,
|
|
||||||
+ PedDiskFlag* flag);
|
|
||||||
extern int command_line_get_part_flag (const char* prompt,
|
|
||||||
const PedPartition* part,
|
|
||||||
PedPartitionFlag* flag);
|
|
||||||
--
|
|
||||||
1.7.6.5
|
|
||||||
|
|
@ -1,145 +0,0 @@
|
|||||||
From 1bb50f026e3e034dc7a93c89dea69b3710c6e9cd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jim Meyering <meyering@redhat.com>
|
|
||||||
Date: Fri, 24 Jun 2011 13:32:33 +0200
|
|
||||||
Subject: [PATCH 1/4] gpt: don't abort for a truncated GPT-formatted device
|
|
||||||
|
|
||||||
This fixes the problem two ways. The first fix (via gpt_alloc)
|
|
||||||
rejects any device that is too small, but it is insufficient.
|
|
||||||
Choose a slightly larger truncated device with an otherwise intact
|
|
||||||
primary GPT header and you can still trigger the failed assertion.
|
|
||||||
To fix it in general, we make _header_is_valid detect the problem.
|
|
||||||
* libparted/labels/gpt.c (gpt_alloc): Reject a device that is so
|
|
||||||
small that there is no room for a single partition.
|
|
||||||
(_header_is_valid): Validate LastUsableLBA here, as well, so that
|
|
||||||
we now reject as invalid any GPT header that specifies a
|
|
||||||
LastUsableLBA larger than the device size.
|
|
||||||
Leave the assertion in _parse_header.
|
|
||||||
* tests/t0203-gpt-tiny-device-abort.sh: Test for this.
|
|
||||||
* tests/Makefile.am (TESTS): Add it.
|
|
||||||
* NEWS: (Bug fixes): Mention it.
|
|
||||||
Reported by Daniel Fandrich in
|
|
||||||
http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10466
|
|
||||||
---
|
|
||||||
NEWS | 2 +
|
|
||||||
libparted/labels/gpt.c | 16 ++++++++++--
|
|
||||||
tests/Makefile.am | 1 +
|
|
||||||
tests/t0203-gpt-tiny-device-abort.sh | 44 ++++++++++++++++++++++++++++++++++
|
|
||||||
4 files changed, 60 insertions(+), 3 deletions(-)
|
|
||||||
create mode 100644 tests/t0203-gpt-tiny-device-abort.sh
|
|
||||||
|
|
||||||
diff --git a/NEWS b/NEWS
|
|
||||||
index 6b7c02a..24e28e6 100644
|
|
||||||
--- a/NEWS
|
|
||||||
+++ b/NEWS
|
|
||||||
@@ -4,6 +4,8 @@ GNU parted NEWS -*- outline -*-
|
|
||||||
|
|
||||||
** Bug fixes
|
|
||||||
|
|
||||||
+ libparted: no longer aborts when reading a truncated GPT-formatted device
|
|
||||||
+
|
|
||||||
Fix numerous small leaks in both the library and the UI.
|
|
||||||
|
|
||||||
** Changes in behavior
|
|
||||||
diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
|
|
||||||
index e1c0a32..8c9816f 100644
|
|
||||||
--- a/libparted/labels/gpt.c
|
|
||||||
+++ b/libparted/labels/gpt.c
|
|
||||||
@@ -517,13 +517,19 @@ gpt_alloc (const PedDevice *dev)
|
|
||||||
disk = _ped_disk_alloc ((PedDevice *) dev, &gpt_disk_type);
|
|
||||||
if (!disk)
|
|
||||||
goto error;
|
|
||||||
- disk->disk_specific = gpt_disk_data = ped_malloc (sizeof (GPTDiskData));
|
|
||||||
- if (!disk->disk_specific)
|
|
||||||
- goto error_free_disk;
|
|
||||||
|
|
||||||
data_start = 2 + GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size;
|
|
||||||
data_end = dev->length - 2
|
|
||||||
- GPT_DEFAULT_PARTITION_ENTRY_ARRAY_SIZE / dev->sector_size;
|
|
||||||
+
|
|
||||||
+ /* If the device is too small to have room for data, reject it. */
|
|
||||||
+ if (data_end <= data_start)
|
|
||||||
+ goto error_free_disk;
|
|
||||||
+
|
|
||||||
+ disk->disk_specific = gpt_disk_data = ped_malloc (sizeof (GPTDiskData));
|
|
||||||
+ if (!disk->disk_specific)
|
|
||||||
+ goto error_free_disk;
|
|
||||||
+
|
|
||||||
ped_geometry_init (&gpt_disk_data->data_area, dev, data_start,
|
|
||||||
data_end - data_start + 1);
|
|
||||||
gpt_disk_data->entry_count = GPT_DEFAULT_PARTITION_ENTRIES;
|
|
||||||
@@ -665,6 +671,10 @@ _header_is_valid (PedDisk const *disk, GuidPartitionTableHeader_t *gpt,
|
|
||||||
if (first_usable < 3)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
+ PedSector last_usable = PED_LE64_TO_CPU (gpt->LastUsableLBA);
|
|
||||||
+ if (disk->dev->length < last_usable)
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
origcrc = gpt->HeaderCRC32;
|
|
||||||
gpt->HeaderCRC32 = 0;
|
|
||||||
if (pth_crc32 (dev, gpt, &crc) != 0)
|
|
||||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
|
||||||
index b57142b..86402c0 100644
|
|
||||||
--- a/tests/Makefile.am
|
|
||||||
+++ b/tests/Makefile.am
|
|
||||||
@@ -11,6 +11,7 @@ TESTS = \
|
|
||||||
t0200-gpt.sh \
|
|
||||||
t0201-gpt.sh \
|
|
||||||
t0202-gpt-pmbr.sh \
|
|
||||||
+ t0203-gpt-tiny-device-abort.sh \
|
|
||||||
t0205-gpt-list-clobbers-pmbr.sh \
|
|
||||||
t0206-gpt-print-with-corrupt-primary-clobbers-pmbr.sh \
|
|
||||||
t0207-IEC-binary-notation.sh \
|
|
||||||
diff --git a/tests/t0203-gpt-tiny-device-abort.sh b/tests/t0203-gpt-tiny-device-abort.sh
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..22c8b21
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/t0203-gpt-tiny-device-abort.sh
|
|
||||||
@@ -0,0 +1,44 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# parted before 3.1 could abort for a pathologically small device with
|
|
||||||
+# a valid primary GPT header but no room for the backup header.
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2009-2011 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+# This program is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
|
||||||
+
|
|
||||||
+N=2M
|
|
||||||
+dev=loop-file
|
|
||||||
+# create a file large enough to hold a GPT partition table
|
|
||||||
+dd if=/dev/null of=$dev bs=1 seek=$N || framework_failure
|
|
||||||
+
|
|
||||||
+# create a GPT partition table
|
|
||||||
+parted -s $dev mklabel gpt > out 2>&1 || fail=1
|
|
||||||
+# expect no output
|
|
||||||
+compare out /dev/null || fail=1
|
|
||||||
+
|
|
||||||
+# truncate it to 34 sectors.
|
|
||||||
+for i in 33 34 35 67 68 69 101 102 103; do
|
|
||||||
+ dd if=$dev of=bad count=$i
|
|
||||||
+
|
|
||||||
+ # Print the partition table. Before, this would evoke a failed assertion.
|
|
||||||
+ printf 'i\no\n' > in
|
|
||||||
+ parted ---pretend-input-tty bad u s p < in > out 2> err || fail=1
|
|
||||||
+ # don't bother comparing stdout
|
|
||||||
+ # expect no stderr
|
|
||||||
+ compare err /dev/null || fail=1
|
|
||||||
+done
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
--
|
|
||||||
1.7.6.4
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
|||||||
From fa9d7db0dfc89befe87a73f22e7d0473e505c9d9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
|
||||||
Date: Wed, 5 Oct 2011 15:51:10 -0700
|
|
||||||
Subject: [PATCH 4/4] libparted: Fix a bug in the hfs probe functions
|
|
||||||
(#714758)
|
|
||||||
|
|
||||||
* libparted/fs/hfs/probe.c (hfsplus_probe): Add a check on the
|
|
||||||
search value and reject it if it is negative.
|
|
||||||
(hfsx_probe): Same
|
|
||||||
(hfs_and_wrapper_probe): Same
|
|
||||||
---
|
|
||||||
libparted/fs/hfs/probe.c | 18 +++++++++++-------
|
|
||||||
1 files changed, 11 insertions(+), 7 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libparted/fs/hfs/probe.c b/libparted/fs/hfs/probe.c
|
|
||||||
index 8c656cf..bf4d70b 100644
|
|
||||||
--- a/libparted/fs/hfs/probe.c
|
|
||||||
+++ b/libparted/fs/hfs/probe.c
|
|
||||||
@@ -82,7 +82,8 @@ hfs_and_wrapper_probe (PedGeometry* geom)
|
|
||||||
+ ((PedSector) PED_BE16_TO_CPU (mdb->total_blocks)
|
|
||||||
* (PED_BE32_TO_CPU (mdb->block_size) / PED_SECTOR_SIZE_DEFAULT )));
|
|
||||||
max = search + (PED_BE32_TO_CPU (mdb->block_size) / PED_SECTOR_SIZE_DEFAULT);
|
|
||||||
- if (!(geom_ret = ped_geometry_new (geom->dev, geom->start, search + 2)))
|
|
||||||
+ if ((search < 0)
|
|
||||||
+ || !(geom_ret = ped_geometry_new (geom->dev, geom->start, search + 2)))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
for (; search < max; search++) {
|
|
||||||
@@ -141,8 +142,9 @@ hfsplus_probe (PedGeometry* geom)
|
|
||||||
- 2;
|
|
||||||
search = max - 2 * ( PED_BE32_TO_CPU (vh->block_size)
|
|
||||||
/ PED_SECTOR_SIZE_DEFAULT ) + 2;
|
|
||||||
- if (!(geom_ret = ped_geometry_new (geom->dev, geom->start,
|
|
||||||
- search + 2)))
|
|
||||||
+ if ((search < 0)
|
|
||||||
+ || !(geom_ret = ped_geometry_new (geom->dev, geom->start,
|
|
||||||
+ search + 2)))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
for (; search < max; search++) {
|
|
||||||
@@ -156,8 +158,9 @@ hfsplus_probe (PedGeometry* geom)
|
|
||||||
search = ((PedSector) PED_BE32_TO_CPU (vh->total_blocks) - 1)
|
|
||||||
* ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT )
|
|
||||||
- 1;
|
|
||||||
- if (!ped_geometry_set (geom_ret, geom_ret->start,
|
|
||||||
- search + 2)
|
|
||||||
+ if ((search < 0)
|
|
||||||
+ || !ped_geometry_set (geom_ret, geom_ret->start,
|
|
||||||
+ search + 2)
|
|
||||||
|| !ped_geometry_read (geom_ret, buf, search, 1)
|
|
||||||
|| vh->signature != PED_CPU_TO_BE16 (HFSP_SIGNATURE)) {
|
|
||||||
ped_geometry_destroy (geom_ret);
|
|
||||||
@@ -213,8 +216,9 @@ hfsx_probe (PedGeometry* geom)
|
|
||||||
* ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT )
|
|
||||||
- 2;
|
|
||||||
search = max - ( PED_BE32_TO_CPU (vh->block_size) / PED_SECTOR_SIZE_DEFAULT );
|
|
||||||
- if (!(geom_ret = ped_geometry_new (geom->dev, geom->start,
|
|
||||||
- search + 2)))
|
|
||||||
+ if ((search < 0)
|
|
||||||
+ || !(geom_ret = ped_geometry_new (geom->dev, geom->start,
|
|
||||||
+ search + 2)))
|
|
||||||
return NULL;
|
|
||||||
for (; search < max; search++) {
|
|
||||||
if (!ped_geometry_set (geom_ret, geom_ret->start,
|
|
||||||
--
|
|
||||||
1.7.6.4
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
|||||||
From bb4fbe2130cd85727bbaf6c71b2d27b6769aa4aa Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jim Meyering <meyering@redhat.com>
|
|
||||||
Date: Sun, 5 Jun 2011 18:15:31 +0200
|
|
||||||
Subject: [PATCH] libparted: accommodate two-component linux version number
|
|
||||||
like 3.0
|
|
||||||
|
|
||||||
* libparted/arch/linux.c (_get_linux_version): Also accept 2-component
|
|
||||||
version numbers.
|
|
||||||
* NEWS: (Bug fixes): Mention it.
|
|
||||||
Reported by Richard W.M. Jones.
|
|
||||||
---
|
|
||||||
NEWS | 4 ++++
|
|
||||||
libparted/arch/linux.c | 6 +++++-
|
|
||||||
2 files changed, 9 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
|
|
||||||
index aeaf98f..111816c 100644
|
|
||||||
--- a/libparted/arch/linux.c
|
|
||||||
+++ b/libparted/arch/linux.c
|
|
||||||
@@ -610,7 +610,11 @@ _get_linux_version ()
|
|
||||||
|
|
||||||
if (uname (&uts))
|
|
||||||
return kver = 0;
|
|
||||||
- if (sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny) != 3)
|
|
||||||
+ if (sscanf (uts.release, "%u.%u.%u", &major, &minor, &teeny) == 3)
|
|
||||||
+ ; /* ok */
|
|
||||||
+ else if (sscanf (uts.release, "%u.%u", &major, &minor) == 2)
|
|
||||||
+ teeny = 0;
|
|
||||||
+ else
|
|
||||||
return kver = 0;
|
|
||||||
|
|
||||||
return kver = KERNEL_VERSION (major, minor, teeny);
|
|
||||||
--
|
|
||||||
1.7.5.2
|
|
||||||
|
|
@ -1,46 +0,0 @@
|
|||||||
From febeedd8d3dbddcc6e831591b05f590eaca97b12 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
|
||||||
Date: Mon, 31 Oct 2011 16:35:16 -0700
|
|
||||||
Subject: [PATCH] libparted: copy flags when duplicating GPT partitions
|
|
||||||
|
|
||||||
* libparted/labels/gpt.c (gpt_partition_duplicate): Copy flags to new
|
|
||||||
partition.
|
|
||||||
* NEWS: Mention this fix.
|
|
||||||
Reported by Chris Murphy in https://bugzilla.redhat.com/747497.
|
|
||||||
---
|
|
||||||
NEWS | 3 +++
|
|
||||||
libparted/labels/gpt.c | 4 +---
|
|
||||||
2 files changed, 4 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/NEWS b/NEWS
|
|
||||||
index bc5152b..af1d957 100644
|
|
||||||
--- a/NEWS
|
|
||||||
+++ b/NEWS
|
|
||||||
@@ -8,6 +8,9 @@ GNU parted NEWS -*- outline -*-
|
|
||||||
|
|
||||||
** Bug fixes
|
|
||||||
|
|
||||||
+ libparted: gpt_disk_duplicate now copies the flags over to the new
|
|
||||||
+ disk object. Previously the flags would be undefined.
|
|
||||||
+
|
|
||||||
libparted: no longer aborts (failed assertion) due to a nilfs2_probe bug
|
|
||||||
[bug introduced in parted-2.4 with the addition of nilfs2 support]
|
|
||||||
|
|
||||||
diff --git a/libparted/labels/gpt.c b/libparted/labels/gpt.c
|
|
||||||
index 8c9816f..f2bda41 100644
|
|
||||||
--- a/libparted/labels/gpt.c
|
|
||||||
+++ b/libparted/labels/gpt.c
|
|
||||||
@@ -1362,9 +1362,7 @@ gpt_partition_duplicate (const PedPartition *part)
|
|
||||||
if (!result_data)
|
|
||||||
goto error_free_part;
|
|
||||||
|
|
||||||
- result_data->type = part_data->type;
|
|
||||||
- result_data->uuid = part_data->uuid;
|
|
||||||
- strcpy (result_data->name, part_data->name);
|
|
||||||
+ *result_data = *part_data;
|
|
||||||
return result;
|
|
||||||
|
|
||||||
error_free_part:
|
|
||||||
--
|
|
||||||
1.7.6.5
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
|||||||
From bca7bb94e16acb1e88df97a5ce2c38adb76b072d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brian C. Lane <bcl@redhat.com>
|
|
||||||
Date: Tue, 21 Jun 2011 10:44:16 -0700
|
|
||||||
Subject: [PATCH 2/4] libparted: don't allow values less than 1 (#665496)
|
|
||||||
|
|
||||||
When a value < 1 is used there is the possibility that the range can
|
|
||||||
overlap sector 0. The user should use smaller units instead. 0 is a
|
|
||||||
special case and is still allowed.
|
|
||||||
|
|
||||||
* libparted/unit.c (ped_unit_parse_custom): Throw error if a value
|
|
||||||
between 0 and 1 is used.
|
|
||||||
---
|
|
||||||
libparted/unit.c | 6 ++++++
|
|
||||||
1 files changed, 6 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libparted/unit.c b/libparted/unit.c
|
|
||||||
index c2921e3..232f81b 100644
|
|
||||||
--- a/libparted/unit.c
|
|
||||||
+++ b/libparted/unit.c
|
|
||||||
@@ -531,6 +531,12 @@ ped_unit_parse_custom (const char* str, const PedDevice* dev, PedUnit unit,
|
|
||||||
_("Invalid number."));
|
|
||||||
goto error_free_copy;
|
|
||||||
}
|
|
||||||
+ if (num > 0 && num < 1) {
|
|
||||||
+ ped_exception_throw (
|
|
||||||
+ PED_EXCEPTION_ERROR, PED_EXCEPTION_CANCEL,
|
|
||||||
+ _("Use a smaller unit instead of a value < 1"));
|
|
||||||
+ goto error_free_copy;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
unit_size = ped_unit_get_size (dev, unit);
|
|
||||||
radius = (ped_div_round_up (unit_size, dev->sector_size) / 2) - 1;
|
|
||||||
--
|
|
||||||
1.7.4.4
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
|||||||
From 81a1eb6a888f85074536ed89c5c316de4e918c2b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jim Meyering <meyering@redhat.com>
|
|
||||||
Date: Sat, 25 Jun 2011 08:49:58 +0200
|
|
||||||
Subject: [PATCH 2/4] libparted: fix a bug in the nilfs2 probe function
|
|
||||||
|
|
||||||
* libparted/fs/nilfs2/nilfs2.c (nilfs2_probe): Reject this partition
|
|
||||||
if we get a negative sb2 offset. Passing a negative offset to
|
|
||||||
ped_geometry_read_alloc would evoke a failed assertion.
|
|
||||||
Bug introduced by 2010-07-09 commit d463e7de.
|
|
||||||
* NEWS: (Bug fixes): Mention it.
|
|
||||||
Reported by Daniel Fandrich in
|
|
||||||
http://thread.gmane.org/gmane.comp.gnu.parted.bugs/10466/focus=10472
|
|
||||||
---
|
|
||||||
NEWS | 3 +++
|
|
||||||
libparted/fs/nilfs2/nilfs2.c | 5 +++--
|
|
||||||
2 files changed, 6 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/NEWS b/NEWS
|
|
||||||
index 24e28e6..d35c6cc 100644
|
|
||||||
--- a/NEWS
|
|
||||||
+++ b/NEWS
|
|
||||||
@@ -4,6 +4,9 @@ GNU parted NEWS -*- outline -*-
|
|
||||||
|
|
||||||
** Bug fixes
|
|
||||||
|
|
||||||
+ libparted: no longer aborts (failed assertion) due to a nilfs2_probe bug
|
|
||||||
+ [bug introduced in parted-2.4 with the addition of nilfs2 support]
|
|
||||||
+
|
|
||||||
libparted: no longer aborts when reading a truncated GPT-formatted device
|
|
||||||
|
|
||||||
Fix numerous small leaks in both the library and the UI.
|
|
||||||
diff --git a/libparted/fs/nilfs2/nilfs2.c b/libparted/fs/nilfs2/nilfs2.c
|
|
||||||
index 511b155..166c54c 100644
|
|
||||||
--- a/libparted/fs/nilfs2/nilfs2.c
|
|
||||||
+++ b/libparted/fs/nilfs2/nilfs2.c
|
|
||||||
@@ -108,13 +108,14 @@ nilfs2_probe (PedGeometry* geom)
|
|
||||||
struct nilfs2_super_block *sb = NULL;
|
|
||||||
struct nilfs2_super_block *sb2 = NULL;
|
|
||||||
PedSector length = geom->length;
|
|
||||||
- PedSector sb2off;
|
|
||||||
|
|
||||||
/* ignore if sector size is not 512bytes for now */
|
|
||||||
if (geom->dev->sector_size != PED_SECTOR_SIZE_DEFAULT)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
- sb2off = NILFS_SB2_OFFSET(length);
|
|
||||||
+ PedSector sb2off = NILFS_SB2_OFFSET(length);
|
|
||||||
+ if (sb2off <= 2)
|
|
||||||
+ return NULL;
|
|
||||||
|
|
||||||
if (ped_geometry_read_alloc(geom, &sb_v, 2, 1))
|
|
||||||
sb = sb_v;
|
|
||||||
--
|
|
||||||
1.7.6.4
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
From 18e727d492933ae1ebb16961e1df553f9299af8b Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brian C. Lane <bcl@redhat.com>
|
|
||||||
Date: Tue, 21 Jun 2011 10:44:15 -0700
|
|
||||||
Subject: [PATCH 1/4] libparted: fix snap radius so that it is using half
|
|
||||||
(#665496)
|
|
||||||
|
|
||||||
The snap radius didn't match the documentation, it has been using +/-
|
|
||||||
unit size instead +/- 0.5 * unit (eg. 500KB for a MB unit). This caused
|
|
||||||
problems when specifying 1MB, 1GB, etc. as a partition start or end
|
|
||||||
resulting in partitions being created that were nowhere near the
|
|
||||||
specified size.
|
|
||||||
|
|
||||||
* libparted/unit.c (ped_unit_parse_custom): divide radius by 2
|
|
||||||
This addresses http://bugzilla.redhat.com/665496
|
|
||||||
---
|
|
||||||
libparted/unit.c | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libparted/unit.c b/libparted/unit.c
|
|
||||||
index dc4205b..c2921e3 100644
|
|
||||||
--- a/libparted/unit.c
|
|
||||||
+++ b/libparted/unit.c
|
|
||||||
@@ -533,7 +533,7 @@ ped_unit_parse_custom (const char* str, const PedDevice* dev, PedUnit unit,
|
|
||||||
}
|
|
||||||
|
|
||||||
unit_size = ped_unit_get_size (dev, unit);
|
|
||||||
- radius = ped_div_round_up (unit_size, dev->sector_size) - 1;
|
|
||||||
+ radius = (ped_div_round_up (unit_size, dev->sector_size) / 2) - 1;
|
|
||||||
if (radius < 0)
|
|
||||||
radius = 0;
|
|
||||||
/* If the user specifies units in a power of 2, e.g., 4MiB, as in
|
|
||||||
--
|
|
||||||
1.7.4.4
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
|||||||
From 68ff2e0c7563054e95389c1da5164b3d9c75c52b Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
|
||||||
Date: Fri, 7 Oct 2011 10:56:00 -0700
|
|
||||||
Subject: [PATCH 1/2] libparted: make pc98 detection depend on signatures
|
|
||||||
(#646053)
|
|
||||||
|
|
||||||
pc98 is not a common disk label. Change pc98_probe to only return true
|
|
||||||
if one of the recognized signatures is present.
|
|
||||||
Currently these include:
|
|
||||||
|
|
||||||
IPL1
|
|
||||||
Linux 98
|
|
||||||
GRUB/98
|
|
||||||
|
|
||||||
This will prevent false-positive detection on msdos labeled disks
|
|
||||||
|
|
||||||
* libparted/labels/pc98.c (pc98_probe): Change to require signature
|
|
||||||
(pc98_check_ipl_signature): Add more signatures
|
|
||||||
---
|
|
||||||
libparted/labels/pc98.c | 32 ++++++++++----------------------
|
|
||||||
1 files changed, 10 insertions(+), 22 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libparted/labels/pc98.c b/libparted/labels/pc98.c
|
|
||||||
index 3afa8a2..ea3cf4e 100644
|
|
||||||
--- a/libparted/labels/pc98.c
|
|
||||||
+++ b/libparted/labels/pc98.c
|
|
||||||
@@ -140,7 +140,14 @@ pc98_check_magic (const PC98RawTable *part_table)
|
|
||||||
static int
|
|
||||||
pc98_check_ipl_signature (const PC98RawTable *part_table)
|
|
||||||
{
|
|
||||||
- return !memcmp (part_table->boot_code + 4, "IPL1", 4);
|
|
||||||
+ if (memcmp (part_table->boot_code + 4, "IPL1", 4) == 0)
|
|
||||||
+ return 1;
|
|
||||||
+ else if (memcmp (part_table->boot_code + 4, "Linux 98", 8) == 0)
|
|
||||||
+ return 1;
|
|
||||||
+ else if (memcmp (part_table->boot_code + 4, "GRUB/98 ", 8) == 0)
|
|
||||||
+ return 1;
|
|
||||||
+ else
|
|
||||||
+ return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
@@ -192,27 +199,8 @@ pc98_probe (const PedDevice *dev)
|
|
||||||
if (!pc98_check_magic (&part_table))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
- /* check consistency */
|
|
||||||
- empty = 1;
|
|
||||||
- for (p = part_table.partitions;
|
|
||||||
- p < part_table.partitions + MAX_PART_COUNT;
|
|
||||||
- p++)
|
|
||||||
- {
|
|
||||||
- if (p->mid == 0 && p->sid == 0)
|
|
||||||
- continue;
|
|
||||||
- empty = 0;
|
|
||||||
- if (!check_partition_consistency (dev, p))
|
|
||||||
- return 0;
|
|
||||||
- }
|
|
||||||
-
|
|
||||||
- /* check boot loader */
|
|
||||||
- if (pc98_check_ipl_signature (&part_table))
|
|
||||||
- return 1;
|
|
||||||
- else if (part_table.boot_code[0]) /* invalid boot loader */
|
|
||||||
- return 0;
|
|
||||||
-
|
|
||||||
- /* Not to mistake msdos disk map for PC-9800's empty disk map */
|
|
||||||
- if (empty)
|
|
||||||
+ /* check for boot loader signatures */
|
|
||||||
+ if (!pc98_check_ipl_signature (&part_table))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
--
|
|
||||||
1.7.6.4
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
|||||||
From acb972e2dffecdb5e464236978d22bc6387a2f69 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
|
||||||
Date: Fri, 27 Jan 2012 16:59:03 -0800
|
|
||||||
Subject: [PATCH 2/5] parted: when printing, also print the new disk flags
|
|
||||||
|
|
||||||
This adds a 'Disk Flags:' line the displays the active disk flags.
|
|
||||||
In machine mode this is appended to the disk info line, after the
|
|
||||||
device model.
|
|
||||||
|
|
||||||
* parted/parted.c (disk_print_flags): New function
|
|
||||||
(_print_disk_info): Add Disk Flags information.
|
|
||||||
---
|
|
||||||
parted/parted.c | 44 ++++++++++++++++++++++++++++++++++++++++++--
|
|
||||||
1 files changed, 42 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/parted/parted.c b/parted/parted.c
|
|
||||||
index 4220265..38daf81 100644
|
|
||||||
--- a/parted/parted.c
|
|
||||||
+++ b/parted/parted.c
|
|
||||||
@@ -825,6 +825,43 @@ partition_print (PedPartition* part)
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static char*
|
|
||||||
+disk_print_flags (PedDisk const *disk)
|
|
||||||
+{
|
|
||||||
+ PedDiskFlag flag;
|
|
||||||
+ int first_flag;
|
|
||||||
+ const char* name;
|
|
||||||
+ char* res = ped_malloc(1);
|
|
||||||
+ void* _res = res;
|
|
||||||
+
|
|
||||||
+ *res = '\0';
|
|
||||||
+ if (!disk)
|
|
||||||
+ return res;
|
|
||||||
+
|
|
||||||
+ first_flag = 1;
|
|
||||||
+ for (flag = ped_disk_flag_next (0); flag;
|
|
||||||
+ flag = ped_disk_flag_next (flag)) {
|
|
||||||
+ if (ped_disk_get_flag (disk, flag)) {
|
|
||||||
+ if (first_flag)
|
|
||||||
+ first_flag = 0;
|
|
||||||
+ else {
|
|
||||||
+ _res = res;
|
|
||||||
+ ped_realloc (&_res, strlen (res) + 1 + 2);
|
|
||||||
+ res = _res;
|
|
||||||
+ strncat (res, ", ", 2);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ name = _(ped_disk_flag_get_name (flag));
|
|
||||||
+ _res = res;
|
|
||||||
+ ped_realloc (&_res, strlen (res) + 1 + strlen (name));
|
|
||||||
+ res = _res;
|
|
||||||
+ strcat(res, name);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return res;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static void
|
|
||||||
_print_disk_geometry (const PedDevice *dev)
|
|
||||||
{
|
|
||||||
@@ -862,6 +899,7 @@ _print_disk_info (const PedDevice *dev, const PedDisk *disk)
|
|
||||||
default_unit == PED_UNIT_CYLINDER));
|
|
||||||
|
|
||||||
const char* pt_name = disk ? disk->type->name : "unknown";
|
|
||||||
+ char *disk_flags = disk_print_flags (disk);
|
|
||||||
|
|
||||||
if (opt_machine_mode) {
|
|
||||||
switch (default_unit) {
|
|
||||||
@@ -873,10 +911,10 @@ _print_disk_info (const PedDevice *dev, const PedDisk *disk)
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
- printf ("%s:%s:%s:%lld:%lld:%s:%s;\n",
|
|
||||||
+ printf ("%s:%s:%s:%lld:%lld:%s:%s:%s;\n",
|
|
||||||
dev->path, end, transport[dev->type],
|
|
||||||
dev->sector_size, dev->phys_sector_size,
|
|
||||||
- pt_name, dev->model);
|
|
||||||
+ pt_name, dev->model, disk_flags);
|
|
||||||
} else {
|
|
||||||
printf (_("Model: %s (%s)\n"),
|
|
||||||
dev->model, transport[dev->type]);
|
|
||||||
@@ -894,7 +932,9 @@ _print_disk_info (const PedDevice *dev, const PedDisk *disk)
|
|
||||||
|
|
||||||
if (!opt_machine_mode) {
|
|
||||||
printf (_("Partition Table: %s\n"), pt_name);
|
|
||||||
+ printf (_("Disk Flags: %s\n"), disk_flags);
|
|
||||||
}
|
|
||||||
+ free (disk_flags);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
--
|
|
||||||
1.7.6.5
|
|
||||||
|
|
@ -1,210 +0,0 @@
|
|||||||
From 1fad3afd9587de566b2f3b451ed4de2fc409ad21 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
|
||||||
Date: Mon, 31 Oct 2011 14:30:12 -0700
|
|
||||||
Subject: [PATCH 2/2] tests: add new test to check ped_disk_duplicate
|
|
||||||
|
|
||||||
* tests/duplicate.c: New test
|
|
||||||
* tests/t0501-duplicate.sh: New test program
|
|
||||||
* tests/Makefile.am (TEST): Add new test
|
|
||||||
(check_PROGRAMS): Add new test program
|
|
||||||
---
|
|
||||||
tests/Makefile.am | 3 +-
|
|
||||||
tests/duplicate.c | 129 ++++++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
tests/t0501-duplicate.sh | 28 ++++++++++
|
|
||||||
3 files changed, 159 insertions(+), 1 deletions(-)
|
|
||||||
create mode 100644 tests/duplicate.c
|
|
||||||
create mode 100644 tests/t0501-duplicate.sh
|
|
||||||
|
|
||||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
|
||||||
index 5a8a539..ae4c5f4 100644
|
|
||||||
--- a/tests/Makefile.am
|
|
||||||
+++ b/tests/Makefile.am
|
|
||||||
@@ -24,6 +24,7 @@ TESTS = \
|
|
||||||
t0300-dos-on-gpt.sh \
|
|
||||||
t0400-loop-clobber-infloop.sh \
|
|
||||||
t0500-dup-clobber.sh \
|
|
||||||
+ t0501-duplicate.sh \
|
|
||||||
t1100-busy-label.sh \
|
|
||||||
t1101-busy-partition.sh \
|
|
||||||
t1700-probe-fs.sh \
|
|
||||||
@@ -62,7 +63,7 @@ EXTRA_DIST = \
|
|
||||||
$(TESTS) lvm-utils.sh t-local.sh t-lvm.sh \
|
|
||||||
init.cfg init.sh t-lib-helpers.sh
|
|
||||||
|
|
||||||
-check_PROGRAMS = print-align print-max dup-clobber
|
|
||||||
+check_PROGRAMS = print-align print-max dup-clobber duplicate
|
|
||||||
LDADD = \
|
|
||||||
$(top_builddir)/libparted/libparted.la
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
diff --git a/tests/duplicate.c b/tests/duplicate.c
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..5af8543
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/duplicate.c
|
|
||||||
@@ -0,0 +1,129 @@
|
|
||||||
+/* Demonstrate that ped_disk_duplicate is working correctly.
|
|
||||||
+*/
|
|
||||||
+#include <config.h>
|
|
||||||
+#include <parted/parted.h>
|
|
||||||
+#include <stdio.h>
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+#include <assert.h>
|
|
||||||
+#include <sys/types.h>
|
|
||||||
+#include <unistd.h>
|
|
||||||
+#include <fcntl.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+
|
|
||||||
+#include "closeout.h"
|
|
||||||
+#include "progname.h"
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main (int argc, char **argv)
|
|
||||||
+{
|
|
||||||
+ atexit (close_stdout);
|
|
||||||
+ set_program_name (argv[0]);
|
|
||||||
+
|
|
||||||
+ if (argc != 2)
|
|
||||||
+ return EXIT_FAILURE;
|
|
||||||
+
|
|
||||||
+ char const *dev_name = "dev-file";
|
|
||||||
+
|
|
||||||
+ /* Create a file. */
|
|
||||||
+ int fd = open (dev_name, O_CREAT|O_TRUNC|O_WRONLY, 0644);
|
|
||||||
+ assert (0 <= fd);
|
|
||||||
+ off_t size = 8 * 1024 * 1024;
|
|
||||||
+ assert (ftruncate (fd, size) == 0);
|
|
||||||
+ assert (close (fd) == 0);
|
|
||||||
+
|
|
||||||
+ PedDevice *dev = ped_device_get (dev_name);
|
|
||||||
+ assert (dev);
|
|
||||||
+
|
|
||||||
+ PedDisk *disk = ped_disk_new_fresh (dev, ped_disk_type_get (argv[1]));
|
|
||||||
+ assert (disk);
|
|
||||||
+ assert (ped_disk_commit(disk));
|
|
||||||
+ ped_disk_destroy (disk);
|
|
||||||
+
|
|
||||||
+ /* re-open the disk */
|
|
||||||
+ disk = ped_disk_new (dev);
|
|
||||||
+ assert (disk);
|
|
||||||
+
|
|
||||||
+ /* Create a partition */
|
|
||||||
+ const PedFileSystemType *fs_type = ped_file_system_type_get ("ext2");
|
|
||||||
+ assert (fs_type);
|
|
||||||
+ PedPartitionType part_type = PED_PARTITION_NORMAL;
|
|
||||||
+ const PedGeometry *geometry = ped_geometry_new (dev, 34, 1024);
|
|
||||||
+ assert (geometry);
|
|
||||||
+ PedPartition *part = ped_partition_new (disk, part_type, fs_type, geometry->start, geometry->end);
|
|
||||||
+ assert (part);
|
|
||||||
+ PedConstraint *constraint = ped_constraint_exact (geometry);
|
|
||||||
+ assert (constraint);
|
|
||||||
+
|
|
||||||
+ if (ped_partition_is_flag_available (part, PED_PARTITION_BOOT))
|
|
||||||
+ assert (ped_partition_set_flag (part, PED_PARTITION_BOOT, 1));
|
|
||||||
+
|
|
||||||
+ assert (ped_disk_add_partition (disk, part, constraint));
|
|
||||||
+ ped_constraint_destroy (constraint);
|
|
||||||
+
|
|
||||||
+ assert (ped_partition_set_system (part, fs_type));
|
|
||||||
+ if (ped_partition_is_flag_available (part, PED_PARTITION_LBA))
|
|
||||||
+ ped_partition_set_flag (part, PED_PARTITION_LBA, 1);
|
|
||||||
+
|
|
||||||
+ assert (ped_disk_commit(disk));
|
|
||||||
+
|
|
||||||
+ /* Duplicate it */
|
|
||||||
+ PedDisk *copy = ped_disk_duplicate (disk);
|
|
||||||
+ assert (ped_disk_commit(copy));
|
|
||||||
+
|
|
||||||
+ /* Compare the two copies */
|
|
||||||
+
|
|
||||||
+ /* Check the device */
|
|
||||||
+ assert (strcmp (disk->dev->model, copy->dev->model) == 0);
|
|
||||||
+ assert (strcmp (disk->dev->path, copy->dev->path) == 0);
|
|
||||||
+ assert (disk->dev->sector_size == copy->dev->sector_size);
|
|
||||||
+ assert (disk->dev->phys_sector_size == copy->dev->phys_sector_size);
|
|
||||||
+ assert (disk->dev->length == copy->dev->length);
|
|
||||||
+
|
|
||||||
+ /* Check the type */
|
|
||||||
+ assert (strcmp (disk->type->name, copy->type->name) == 0);
|
|
||||||
+ assert (disk->type->features == copy->type->features);
|
|
||||||
+
|
|
||||||
+ /* Check the flags */
|
|
||||||
+ for (PedDiskFlag flag = PED_DISK_FIRST_FLAG; flag <= PED_DISK_LAST_FLAG; flag++) {
|
|
||||||
+ if (!ped_disk_is_flag_available(disk, flag))
|
|
||||||
+ continue;
|
|
||||||
+ assert (ped_disk_get_flag (disk, flag) == ped_disk_get_flag (copy, flag));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Check the partitions */
|
|
||||||
+ PedPartition *disk_part, *copy_part;
|
|
||||||
+ for ( disk_part = disk->part_list, copy_part = copy->part_list;
|
|
||||||
+ disk_part && copy_part;
|
|
||||||
+ disk_part = disk_part->next, copy_part = copy_part->next)
|
|
||||||
+ {
|
|
||||||
+ /* Only active partitions are duplicated */
|
|
||||||
+ if (!ped_partition_is_active (disk_part))
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ assert (disk_part->geom.start == copy_part->geom.start);
|
|
||||||
+ assert (disk_part->geom.end == copy_part->geom.end);
|
|
||||||
+ assert (disk_part->geom.length == copy_part->geom.length);
|
|
||||||
+ assert (disk_part->num == copy_part->num);
|
|
||||||
+ assert (disk_part->type == copy_part->type);
|
|
||||||
+
|
|
||||||
+ if (disk_part->fs_type && disk_part->fs_type->name) {
|
|
||||||
+ assert (strcmp (disk_part->fs_type->name, copy_part->fs_type->name) == 0);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Check the flags */
|
|
||||||
+ for (PedPartitionFlag flag = PED_PARTITION_FIRST_FLAG; flag <= PED_PARTITION_LAST_FLAG; flag++) {
|
|
||||||
+ if (!ped_partition_is_flag_available(disk_part, flag))
|
|
||||||
+ continue;
|
|
||||||
+ fprintf (stderr, "Checking partition flag %d\n", flag);
|
|
||||||
+ fprintf (stderr, "%d ? %d\n", ped_partition_get_flag (disk_part, flag), ped_partition_get_flag (copy_part, flag));
|
|
||||||
+ assert (ped_partition_get_flag (disk_part, flag) == ped_partition_get_flag (copy_part, flag));
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Cleanup the mess */
|
|
||||||
+ ped_disk_destroy (copy);
|
|
||||||
+ ped_disk_destroy (disk);
|
|
||||||
+ ped_device_destroy (dev);
|
|
||||||
+
|
|
||||||
+ return EXIT_SUCCESS;
|
|
||||||
+}
|
|
||||||
diff --git a/tests/t0501-duplicate.sh b/tests/t0501-duplicate.sh
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..0585a95
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/t0501-duplicate.sh
|
|
||||||
@@ -0,0 +1,28 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# Drive the dup-clobber program.
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2011 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+# This program is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
|
||||||
+
|
|
||||||
+PATH="..:$PATH"
|
|
||||||
+export PATH
|
|
||||||
+
|
|
||||||
+for t in msdos gpt bsd; do
|
|
||||||
+ duplicate $t || fail=1
|
|
||||||
+done
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
--
|
|
||||||
1.7.6.4
|
|
||||||
|
|
@ -1,112 +0,0 @@
|
|||||||
From 9c3bf96c790d963ff9dff7223a97c51989feaa75 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
|
||||||
Date: Wed, 1 Feb 2012 13:11:59 -0800
|
|
||||||
Subject: [PATCH 4/5] tests: add test for GPT PMBR pmbr_boot flag
|
|
||||||
|
|
||||||
* tests/t0209-gpt-pmbr_boot.sh: New test
|
|
||||||
* tests/Makefile.am: Add new test
|
|
||||||
* NEWS: Add information about the GPT PMBR pmbr_boot flag
|
|
||||||
---
|
|
||||||
NEWS | 21 ++++++++++++++++++++-
|
|
||||||
tests/Makefile.am | 1 +
|
|
||||||
tests/t0209-gpt-pmbr_boot.sh | 38 ++++++++++++++++++++++++++++++++++++++
|
|
||||||
3 files changed, 59 insertions(+), 1 deletions(-)
|
|
||||||
create mode 100755 tests/t0209-gpt-pmbr_boot.sh
|
|
||||||
|
|
||||||
diff --git a/NEWS b/NEWS
|
|
||||||
index e8ffed5..d535612 100644
|
|
||||||
--- a/NEWS
|
|
||||||
+++ b/NEWS
|
|
||||||
@@ -1,5 +1,24 @@
|
|
||||||
GNU parted NEWS -*- outline -*-
|
|
||||||
|
|
||||||
+* Noteworthy changes in release 3.0-6 (Fedora)
|
|
||||||
+
|
|
||||||
+ Add the ability to set the boot flag on the GPT PMBR. This is needed
|
|
||||||
+ for some BIOS systems that refuse to boot from GPT unless this is set.
|
|
||||||
+ disk_set and disk_toggle commands can be used to set the pmbr_boot
|
|
||||||
+ flag on the disk.
|
|
||||||
+
|
|
||||||
+ The flag is also displayed in a new line, 'Disk Flags:' like this:
|
|
||||||
+
|
|
||||||
+ Model: (file)
|
|
||||||
+ Disk /home/bcl/disk.img: 4295MB
|
|
||||||
+ Sector size (logical/physical): 512B/512B
|
|
||||||
+ Partition Table: gpt
|
|
||||||
+ Disk Flags: pmbr_boot
|
|
||||||
+
|
|
||||||
+ Using -m the flags are added after the model name field:
|
|
||||||
+
|
|
||||||
+ /root/disk.img:4295MB:file:512:512:gpt::pmbr_boot;
|
|
||||||
+
|
|
||||||
* Noteworthy changes in release 3.0 (2011-05-30) [stable]
|
|
||||||
|
|
||||||
** Bug fixes
|
|
||||||
@@ -16,7 +35,7 @@ GNU parted NEWS -*- outline -*-
|
|
||||||
|
|
||||||
** Changes in behavior
|
|
||||||
|
|
||||||
- Remove all FS-related (file system-related) sub-commands; these commands
|
|
||||||
+ Remove all FS-gelated (file system-related) sub-commands; these commands
|
|
||||||
are no longer recognized because they were all dependent on parted "knowing"
|
|
||||||
too much about file system: mkpartfs, mkfs, cp, move, check, resize.
|
|
||||||
This change removes not just the user interface bits, but also the
|
|
||||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
|
||||||
index 2218a2c..cd74ff9 100644
|
|
||||||
--- a/tests/Makefile.am
|
|
||||||
+++ b/tests/Makefile.am
|
|
||||||
@@ -15,6 +15,7 @@ TESTS = \
|
|
||||||
t0205-gpt-list-clobbers-pmbr.sh \
|
|
||||||
t0206-gpt-print-with-corrupt-primary-clobbers-pmbr.sh \
|
|
||||||
t0207-IEC-binary-notation.sh \
|
|
||||||
+ t0209-gpt-pmbr_boot.sh \
|
|
||||||
t0220-gpt-msftres.sh \
|
|
||||||
t0250-gpt.sh \
|
|
||||||
t0280-gpt-corrupt.sh \
|
|
||||||
diff --git a/tests/t0209-gpt-pmbr_boot.sh b/tests/t0209-gpt-pmbr_boot.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..b15cc9c
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/t0209-gpt-pmbr_boot.sh
|
|
||||||
@@ -0,0 +1,38 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# Ensure that pmbr_boot flag can be set
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2012 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+# This program is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
|
||||||
+
|
|
||||||
+N=2M
|
|
||||||
+dev=loop-file
|
|
||||||
+# create a file large enough to hold a GPT partition table
|
|
||||||
+dd if=/dev/null of=$dev bs=1 seek=$N || framework_failure
|
|
||||||
+
|
|
||||||
+# create a GPT partition table
|
|
||||||
+parted -s $dev mklabel gpt > out 2>&1 || fail=1
|
|
||||||
+# expect no output
|
|
||||||
+compare out /dev/null || fail=1
|
|
||||||
+
|
|
||||||
+# Set the pmbr_boot flag on the PMBR
|
|
||||||
+parted -s $dev disk_set pmbr_boot on
|
|
||||||
+
|
|
||||||
+# Check to see if the flag is set
|
|
||||||
+parted -m -s $dev u s p > out 2> err || fail=1
|
|
||||||
+grep "$dev:.*:gpt::pmbr_boot;" out || { cat out; fail=1; }
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
--
|
|
||||||
1.7.6.5
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
|||||||
From 801a0d9957116757dddc4e62abe62a403d22c9b2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brian C. Lane <bcl@redhat.com>
|
|
||||||
Date: Tue, 21 Jun 2011 10:44:17 -0700
|
|
||||||
Subject: [PATCH 3/4] tests: add test for radius divide by 2 fix
|
|
||||||
|
|
||||||
* tests/t9022-one-unit-snap.sh: New file.
|
|
||||||
* tests/Makefile.am (TESTS): Add it.
|
|
||||||
---
|
|
||||||
tests/Makefile.am | 1 +
|
|
||||||
tests/t9022-one-unit-snap.sh | 42 ++++++++++++++++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 43 insertions(+), 0 deletions(-)
|
|
||||||
create mode 100644 tests/t9022-one-unit-snap.sh
|
|
||||||
|
|
||||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
|
||||||
index 4ea08f3..7487a5d 100644
|
|
||||||
--- a/tests/Makefile.am
|
|
||||||
+++ b/tests/Makefile.am
|
|
||||||
@@ -44,6 +44,7 @@ TESTS = \
|
|
||||||
t9010-big-sector.sh \
|
|
||||||
t9020-alignment.sh \
|
|
||||||
t9021-maxima.sh \
|
|
||||||
+ t9022-one-unit-snap.sh \
|
|
||||||
t9030-align-check.sh \
|
|
||||||
t9040-many-partitions.sh \
|
|
||||||
t9041-undetected-in-use-16th-partition.sh \
|
|
||||||
diff --git a/tests/t9022-one-unit-snap.sh b/tests/t9022-one-unit-snap.sh
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..ce903a5
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/t9022-one-unit-snap.sh
|
|
||||||
@@ -0,0 +1,42 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# Confirm that specifying 1 unit snaps to the correct value
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2011 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+# This program is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
|
||||||
+
|
|
||||||
+ss=$sector_size_
|
|
||||||
+n_sectors=3000
|
|
||||||
+dev=dev-file
|
|
||||||
+
|
|
||||||
+# Create an example of what the result should look like
|
|
||||||
+# start should be at 1 sector.
|
|
||||||
+dd if=/dev/null of=$dev bs=$ss seek=$n_sectors || fail=1
|
|
||||||
+parted --align=none -s $dev mklabel msdos mkpart pri 1s $((1000*1000))B \
|
|
||||||
+ > err 2>&1 || fail=1
|
|
||||||
+compare err /dev/null || fail=1
|
|
||||||
+parted -m -s $dev u s p > exp || fail=1
|
|
||||||
+
|
|
||||||
+rm $dev
|
|
||||||
+dd if=/dev/null of=$dev bs=$ss seek=$n_sectors || fail=1
|
|
||||||
+parted --align=none -s $dev mklabel msdos mkpart pri 0 1MB \
|
|
||||||
+ > err 2>&1 || fail=1
|
|
||||||
+compare err /dev/null || fail=1
|
|
||||||
+parted -m -s $dev u s p > out || fail=1
|
|
||||||
+
|
|
||||||
+compare out exp || fail=1
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
--
|
|
||||||
1.7.4.4
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
|||||||
From b8f017f18fa99f9377ef461cbbd3264c7878a9aa Mon Sep 17 00:00:00 2001
|
|
||||||
From: Brian C. Lane <bcl@redhat.com>
|
|
||||||
Date: Tue, 21 Jun 2011 10:44:18 -0700
|
|
||||||
Subject: [PATCH 4/4] tests: add test for value less than 1
|
|
||||||
|
|
||||||
* tests/t9023-value-lt-one.sh: New file.
|
|
||||||
* tests/Makefile.am (TESTS): Add it.
|
|
||||||
---
|
|
||||||
tests/Makefile.am | 1 +
|
|
||||||
tests/t9023-value-lt-one.sh | 32 ++++++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 33 insertions(+), 0 deletions(-)
|
|
||||||
create mode 100644 tests/t9023-value-lt-one.sh
|
|
||||||
|
|
||||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
|
||||||
index 7487a5d..b57142b 100644
|
|
||||||
--- a/tests/Makefile.am
|
|
||||||
+++ b/tests/Makefile.am
|
|
||||||
@@ -45,6 +45,7 @@ TESTS = \
|
|
||||||
t9020-alignment.sh \
|
|
||||||
t9021-maxima.sh \
|
|
||||||
t9022-one-unit-snap.sh \
|
|
||||||
+ t9023-value-lt-one.sh \
|
|
||||||
t9030-align-check.sh \
|
|
||||||
t9040-many-partitions.sh \
|
|
||||||
t9041-undetected-in-use-16th-partition.sh \
|
|
||||||
diff --git a/tests/t9023-value-lt-one.sh b/tests/t9023-value-lt-one.sh
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..67be8d6
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/t9023-value-lt-one.sh
|
|
||||||
@@ -0,0 +1,32 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# Confirm that a value between 0 and 1 throws an error
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2011 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+# This program is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
|
||||||
+
|
|
||||||
+ss=$sector_size_
|
|
||||||
+n_sectors=3000
|
|
||||||
+dev=dev-file
|
|
||||||
+
|
|
||||||
+echo 'Error: Use a smaller unit instead of a value < 1' > exp
|
|
||||||
+
|
|
||||||
+dd if=/dev/null of=$dev bs=$ss seek=$n_sectors || fail=1
|
|
||||||
+parted --align=none -s $dev mklabel msdos mkpart pri 0 0.5MB \
|
|
||||||
+ > err 2>&1
|
|
||||||
+compare err exp || fail=1
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
--
|
|
||||||
1.7.4.4
|
|
||||||
|
|
@ -1,75 +0,0 @@
|
|||||||
From 1a6336b7a903a6720604d7e8983f99939ec4b070 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
|
||||||
Date: Fri, 7 Oct 2011 11:41:25 -0700
|
|
||||||
Subject: [PATCH 2/2] tests: add tests for new pc98 signatures (#646053)
|
|
||||||
|
|
||||||
* tests/t2201-pc98-label-recog.sh: New file
|
|
||||||
* tests/Makefile.am: Add test
|
|
||||||
---
|
|
||||||
tests/Makefile.am | 1 +
|
|
||||||
tests/t2201-pc98-label-recog.sh | 41 +++++++++++++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 42 insertions(+), 0 deletions(-)
|
|
||||||
create mode 100755 tests/t2201-pc98-label-recog.sh
|
|
||||||
|
|
||||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
|
||||||
index 903ca64..525ec99 100644
|
|
||||||
--- a/tests/Makefile.am
|
|
||||||
+++ b/tests/Makefile.am
|
|
||||||
@@ -25,6 +25,7 @@ TESTS = \
|
|
||||||
t1101-busy-partition.sh \
|
|
||||||
t1700-probe-fs.sh \
|
|
||||||
t2200-dos-label-recog.sh \
|
|
||||||
+ t2201-pc98-label-recog.sh \
|
|
||||||
t2300-dos-label-extended-bootcode.sh \
|
|
||||||
t2310-dos-extended-2-sector-min-offset.sh \
|
|
||||||
t2400-dos-hfs-partition-type.sh \
|
|
||||||
diff --git a/tests/t2201-pc98-label-recog.sh b/tests/t2201-pc98-label-recog.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..6228159
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/t2201-pc98-label-recog.sh
|
|
||||||
@@ -0,0 +1,41 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# Recognize PC98 labeled disks
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2011 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+# This program is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
|
||||||
+
|
|
||||||
+require_512_byte_sector_size_
|
|
||||||
+
|
|
||||||
+ss=$sector_size_
|
|
||||||
+N=8192
|
|
||||||
+dev=loop-file
|
|
||||||
+
|
|
||||||
+# create a file to simulate the underlying device
|
|
||||||
+dd if=/dev/null of=$dev bs=$ss seek=$N 2> /dev/null || fail=1
|
|
||||||
+
|
|
||||||
+# label the test disk
|
|
||||||
+parted -s $dev mklabel pc98 > out 2>&1 || fail=1
|
|
||||||
+compare out /dev/null || fail=1 # expect no output
|
|
||||||
+
|
|
||||||
+parted -s $dev p | grep "^Partition Table: pc98" || fail=1
|
|
||||||
+
|
|
||||||
+for s in "Linux 98" "GRUB/98 "; do
|
|
||||||
+ printf "$s" | dd bs=1c seek=4 of=$dev conv=notrunc || fail=1
|
|
||||||
+ parted -s $dev p | grep "^Partition Table: pc98" || fail=1
|
|
||||||
+done
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
--
|
|
||||||
1.7.6.4
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
|||||||
From d8d4eac278939db6a22fe69181138be2d2dd79e6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jim Meyering <meyering@redhat.com>
|
|
||||||
Date: Wed, 28 Sep 2011 19:43:40 +0200
|
|
||||||
Subject: [PATCH 3/4] tests: test for the nilfs2 bug
|
|
||||||
|
|
||||||
* tests/t4300-nilfs2-tiny.sh: New test.
|
|
||||||
* tests/Makefile.am (TESTS): Add it.
|
|
||||||
---
|
|
||||||
tests/Makefile.am | 1 +
|
|
||||||
tests/t4300-nilfs2-tiny.sh | 32 ++++++++++++++++++++++++++++++++
|
|
||||||
2 files changed, 33 insertions(+), 0 deletions(-)
|
|
||||||
create mode 100755 tests/t4300-nilfs2-tiny.sh
|
|
||||||
|
|
||||||
diff --git a/tests/Makefile.am b/tests/Makefile.am
|
|
||||||
index 86402c0..e721f88 100644
|
|
||||||
--- a/tests/Makefile.am
|
|
||||||
+++ b/tests/Makefile.am
|
|
||||||
@@ -38,6 +38,7 @@ TESTS = \
|
|
||||||
t4100-dvh-partition-limits.sh \
|
|
||||||
t4100-msdos-starting-sector.sh \
|
|
||||||
t4200-partprobe.sh \
|
|
||||||
+ t4300-nilfs2-tiny.sh \
|
|
||||||
t5000-tags.sh \
|
|
||||||
t6000-dm.sh \
|
|
||||||
t7000-scripting.sh \
|
|
||||||
diff --git a/tests/t4300-nilfs2-tiny.sh b/tests/t4300-nilfs2-tiny.sh
|
|
||||||
new file mode 100755
|
|
||||||
index 0000000..009a3cd
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/tests/t4300-nilfs2-tiny.sh
|
|
||||||
@@ -0,0 +1,32 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+# Trigger a nilfs2-related bug.
|
|
||||||
+
|
|
||||||
+# Copyright (C) 2011 Free Software Foundation, Inc.
|
|
||||||
+
|
|
||||||
+# This program is free software; you can redistribute it and/or modify
|
|
||||||
+# it under the terms of the GNU General Public License as published by
|
|
||||||
+# the Free Software Foundation; either version 3 of the License, or
|
|
||||||
+# (at your option) any later version.
|
|
||||||
+
|
|
||||||
+# This program is distributed in the hope that it will be useful,
|
|
||||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
+# GNU General Public License for more details.
|
|
||||||
+
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/init.sh"; path_prepend_ ../parted
|
|
||||||
+ss=$sector_size_
|
|
||||||
+
|
|
||||||
+n_sectors=200
|
|
||||||
+dev=dev-file
|
|
||||||
+dd if=/dev/null of=$dev bs=$ss seek=$n_sectors || framework_failure_
|
|
||||||
+
|
|
||||||
+# Create a tiny, 7-sector partition.
|
|
||||||
+parted -s $dev mklabel gpt mkpart p1 64s 70s || framework_failure_
|
|
||||||
+
|
|
||||||
+# This used to make parted abort.
|
|
||||||
+parted -s $dev u s p || fail=1
|
|
||||||
+
|
|
||||||
+Exit $fail
|
|
||||||
--
|
|
||||||
1.7.6.4
|
|
||||||
|
|
@ -1,337 +0,0 @@
|
|||||||
From 26d43fea236f7e1af0d9fd3531b39cceb5276c0e Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Brian C. Lane" <bcl@redhat.com>
|
|
||||||
Date: Wed, 1 Feb 2012 13:11:58 -0800
|
|
||||||
Subject: [PATCH 3/5] tests: update tests for new disk flags output
|
|
||||||
|
|
||||||
* tests/t0010-script-no-ctrl-chars.sh: Updated
|
|
||||||
* tests/t0100-print.sh: Updated
|
|
||||||
* tests/t0101-print-empty.sh: Updated
|
|
||||||
* tests/t0220-gpt-msftres.sh: Updated
|
|
||||||
* tests/t0250-gpt.sh: Updated
|
|
||||||
* tests/t0280-gpt-corrupt.sh: Updated
|
|
||||||
* tests/t2310-dos-extended-2-sector-min-offset.sh: Updated
|
|
||||||
* tests/t4000-sun-raid-type.sh: Updated
|
|
||||||
* tests/t4100-dvh-partition-limits.sh: Updated
|
|
||||||
* tests/t4100-msdos-partition-limits.sh: Updated
|
|
||||||
* tests/t4100-msdos-starting-sector.sh: Updated
|
|
||||||
* tests/t4200-partprobe.sh: Updated
|
|
||||||
* tests/t5000-tags.sh: Updated
|
|
||||||
* tests/t6000-dm.sh: Updated
|
|
||||||
* tests/t9040-many-partitions.sh: Updated
|
|
||||||
* tests/t9041-undetected-in-use-16th-partition.sh: Updated
|
|
||||||
---
|
|
||||||
tests/t0010-script-no-ctrl-chars.sh | 2 +-
|
|
||||||
tests/t0100-print.sh | 6 ++++--
|
|
||||||
tests/t0101-print-empty.sh | 2 ++
|
|
||||||
tests/t0220-gpt-msftres.sh | 2 +-
|
|
||||||
tests/t0250-gpt.sh | 2 +-
|
|
||||||
tests/t0280-gpt-corrupt.sh | 4 ++--
|
|
||||||
tests/t2310-dos-extended-2-sector-min-offset.sh | 2 +-
|
|
||||||
tests/t4000-sun-raid-type.sh | 2 +-
|
|
||||||
tests/t4100-dvh-partition-limits.sh | 6 ++++--
|
|
||||||
tests/t4100-msdos-partition-limits.sh | 6 ++++--
|
|
||||||
tests/t4100-msdos-starting-sector.sh | 4 ++--
|
|
||||||
tests/t4200-partprobe.sh | 2 +-
|
|
||||||
tests/t5000-tags.sh | 6 +++---
|
|
||||||
tests/t6000-dm.sh | 5 +++--
|
|
||||||
tests/t9040-many-partitions.sh | 2 +-
|
|
||||||
tests/t9041-undetected-in-use-16th-partition.sh | 2 +-
|
|
||||||
16 files changed, 32 insertions(+), 23 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tests/t0010-script-no-ctrl-chars.sh b/tests/t0010-script-no-ctrl-chars.sh
|
|
||||||
index 49b3ff1..25efb73 100755
|
|
||||||
--- a/tests/t0010-script-no-ctrl-chars.sh
|
|
||||||
+++ b/tests/t0010-script-no-ctrl-chars.sh
|
|
||||||
@@ -32,7 +32,7 @@ compare out /dev/null || fail=1
|
|
||||||
TERM=xterm parted -m -s $dev u s p > out 2>&1 || fail=1
|
|
||||||
|
|
||||||
sed "s,.*/$dev:,$dev:," out > k && mv k out || fail=1
|
|
||||||
-printf "BYT;\n$dev:${n_sectors}s:file:$ss:$ss:msdos:;\n" > exp || fail=1
|
|
||||||
+printf "BYT;\n$dev:${n_sectors}s:file:$ss:$ss:msdos::;\n" > exp || fail=1
|
|
||||||
|
|
||||||
compare out exp || fail=1
|
|
||||||
|
|
||||||
diff --git a/tests/t0100-print.sh b/tests/t0100-print.sh
|
|
||||||
index d09b8ed..ccf58b4 100755
|
|
||||||
--- a/tests/t0100-print.sh
|
|
||||||
+++ b/tests/t0100-print.sh
|
|
||||||
@@ -27,6 +27,7 @@ Model: (file)
|
|
||||||
Disk .../$dev: 8s
|
|
||||||
Sector size (logical/physical): ${ss}B/${ss}B
|
|
||||||
Partition Table: msdos
|
|
||||||
+Disk Flags:
|
|
||||||
|
|
||||||
Number Start End Size Type File system Flags
|
|
||||||
|
|
||||||
@@ -46,10 +47,11 @@ msdos_magic='\125\252'
|
|
||||||
{ dd if=/dev/zero bs=510 count=1; printf "$msdos_magic"
|
|
||||||
dd if=/dev/zero bs=$(expr 8 '*' $ss - 510) count=1; } > $dev || fail=1
|
|
||||||
|
|
||||||
-# print the empty table' \
|
|
||||||
+# print the empty table
|
|
||||||
parted -s $dev unit s print >out 2>&1 || fail=1
|
|
||||||
|
|
||||||
-# prepare actual and expected output' \
|
|
||||||
+# prepare actual and expected output
|
|
||||||
+sed 's/ $//' out > k && mv k out || fail=1 # Remove trailing blank.
|
|
||||||
mv out o2 && sed "s,^Disk .*/$dev:,Disk .../$dev:," o2 > out || fail=1
|
|
||||||
|
|
||||||
# check for expected output
|
|
||||||
diff --git a/tests/t0101-print-empty.sh b/tests/t0101-print-empty.sh
|
|
||||||
index 3e77850..1c15eb2 100755
|
|
||||||
--- a/tests/t0101-print-empty.sh
|
|
||||||
+++ b/tests/t0101-print-empty.sh
|
|
||||||
@@ -28,6 +28,7 @@ Model: (file)
|
|
||||||
Disk .../$dev: 8s
|
|
||||||
Sector size (logical/physical): ${ss}B/${ss}B
|
|
||||||
Partition Table: unknown
|
|
||||||
+Disk Flags:
|
|
||||||
EOF
|
|
||||||
} > exp || framework_failure
|
|
||||||
|
|
||||||
@@ -38,6 +39,7 @@ dd if=/dev/zero of=$dev bs=$(expr 8 '*' $ss) count=1 >/dev/null 2>&1 || fail=1
|
|
||||||
parted -s $dev unit s print >out 2>&1 || fail=1
|
|
||||||
|
|
||||||
# prepare actual and expected output
|
|
||||||
+sed 's/ $//' out > k && mv k out || fail=1 # Remove trailing blank.
|
|
||||||
mv out o2 && sed "s,^Disk .*/$dev:,Disk .../$dev:,; \
|
|
||||||
s,^Error: .*/$dev:,Error: .../$dev:," o2 > out || fail=1
|
|
||||||
|
|
||||||
diff --git a/tests/t0220-gpt-msftres.sh b/tests/t0220-gpt-msftres.sh
|
|
||||||
index 1247ee0..00d588c 100755
|
|
||||||
--- a/tests/t0220-gpt-msftres.sh
|
|
||||||
+++ b/tests/t0220-gpt-msftres.sh
|
|
||||||
@@ -52,7 +52,7 @@ parted -s $dev mklabel gpt > out 2>&1 || fail=1
|
|
||||||
# expect no output
|
|
||||||
compare out /dev/null || fail=1
|
|
||||||
|
|
||||||
-printf "BYT;\n$dev:${n_sectors}s:file:$ss:$ss:gpt:;\n" > exp
|
|
||||||
+printf "BYT;\n$dev:${n_sectors}s:file:$ss:$ss:gpt::;\n" > exp
|
|
||||||
i=1
|
|
||||||
for type in $fs_types; do
|
|
||||||
end=$(expr $start + $part_size - 1)
|
|
||||||
diff --git a/tests/t0250-gpt.sh b/tests/t0250-gpt.sh
|
|
||||||
index 5f42440..d9e0496 100755
|
|
||||||
--- a/tests/t0250-gpt.sh
|
|
||||||
+++ b/tests/t0250-gpt.sh
|
|
||||||
@@ -35,7 +35,7 @@ parted -m -s $dev unit s print > t 2>&1 || fail=1
|
|
||||||
sed "s,.*/$dev:,$dev:," t > out || fail=1
|
|
||||||
|
|
||||||
# check for expected output
|
|
||||||
-printf "BYT;\n$dev:${n_sectors}s:file:$sector_size_:$sector_size_:gpt:;\n" \
|
|
||||||
+printf "BYT;\n$dev:${n_sectors}s:file:$sector_size_:$sector_size_:gpt::;\n" \
|
|
||||||
> exp || fail=1
|
|
||||||
compare exp out || fail=1
|
|
||||||
|
|
||||||
diff --git a/tests/t0280-gpt-corrupt.sh b/tests/t0280-gpt-corrupt.sh
|
|
||||||
index df54817..375da0e 100755
|
|
||||||
--- a/tests/t0280-gpt-corrupt.sh
|
|
||||||
+++ b/tests/t0280-gpt-corrupt.sh
|
|
||||||
@@ -34,7 +34,7 @@ parted -m -s $dev unit s print > t 2>&1 || fail=1
|
|
||||||
sed "s,.*/$dev:,$dev:," t > out || fail=1
|
|
||||||
|
|
||||||
# check for expected output
|
|
||||||
-printf "BYT;\n$dev:${n_sectors}s:file:$sector_size_:$sector_size_:gpt:;\n" \
|
|
||||||
+printf "BYT;\n$dev:${n_sectors}s:file:$sector_size_:$sector_size_:gpt::;\n" \
|
|
||||||
> exp || fail=1
|
|
||||||
compare exp out || fail=1
|
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ parted -m -s $dev u s print > out 2>&1 || fail=1
|
|
||||||
|
|
||||||
# check for expected output
|
|
||||||
printf "BYT;\nfile\n1:2048s:4095s:2048s::foo:;\n" > exp || fail=1
|
|
||||||
-sed "s/.*gpt:;/file/" out > k && mv k out || fail=1
|
|
||||||
+sed "s/.*gpt::;/file/" out > k && mv k out || fail=1
|
|
||||||
compare exp out || fail=1
|
|
||||||
|
|
||||||
Exit $fail
|
|
||||||
diff --git a/tests/t2310-dos-extended-2-sector-min-offset.sh b/tests/t2310-dos-extended-2-sector-min-offset.sh
|
|
||||||
index b86c6bc..aad575a 100644
|
|
||||||
--- a/tests/t2310-dos-extended-2-sector-min-offset.sh
|
|
||||||
+++ b/tests/t2310-dos-extended-2-sector-min-offset.sh
|
|
||||||
@@ -33,7 +33,7 @@ p5=${scsi_dev}5
|
|
||||||
|
|
||||||
cat <<EOF > exp || framework_failure
|
|
||||||
BYT;
|
|
||||||
-$scsi_dev:2048s:scsi:512:512:msdos:Linux scsi_debug;
|
|
||||||
+$scsi_dev:2048s:scsi:512:512:msdos:Linux scsi_debug:;
|
|
||||||
1:64s:128s:65s:::lba;
|
|
||||||
5:66s:128s:63s:::;
|
|
||||||
EOF
|
|
||||||
diff --git a/tests/t4000-sun-raid-type.sh b/tests/t4000-sun-raid-type.sh
|
|
||||||
index 91a9f63..84b170a 100755
|
|
||||||
--- a/tests/t4000-sun-raid-type.sh
|
|
||||||
+++ b/tests/t4000-sun-raid-type.sh
|
|
||||||
@@ -24,7 +24,7 @@ ss=$sector_size_
|
|
||||||
|
|
||||||
N=2000 # number of sectors
|
|
||||||
dev=sun-disk-file
|
|
||||||
-exp="BYT;\n---:${N}s:file:$ss:$ss:sun:;\n1:0s:127s:128s"
|
|
||||||
+exp="BYT;\n---:${N}s:file:$ss:$ss:sun::;\n1:0s:127s:128s"
|
|
||||||
# create an empty file as a test disk
|
|
||||||
dd if=/dev/zero of=$dev bs=${ss}c count=$N 2> /dev/null || fail=1
|
|
||||||
|
|
||||||
diff --git a/tests/t4100-dvh-partition-limits.sh b/tests/t4100-dvh-partition-limits.sh
|
|
||||||
index b57a1c3..1280f8e 100755
|
|
||||||
--- a/tests/t4100-dvh-partition-limits.sh
|
|
||||||
+++ b/tests/t4100-dvh-partition-limits.sh
|
|
||||||
@@ -129,9 +129,10 @@ do_mkpart_start_and_len $(echo 2^32-1|bc) 1000 || fail=1
|
|
||||||
# FIXME: In the long run, figure out if it's sensible.
|
|
||||||
cat > exp <<EOF
|
|
||||||
Model: (file)
|
|
||||||
-Disk: 4294970342s
|
|
||||||
+Disk $dev: 4294970342s
|
|
||||||
Sector size (logical/physical): ${ss}B/${ss}B
|
|
||||||
Partition Table: $table_type
|
|
||||||
+Disk Flags:
|
|
||||||
|
|
||||||
Number Start End Size Type File system Name Flags
|
|
||||||
9 0s 4095s 4096s extended
|
|
||||||
@@ -141,7 +142,8 @@ EOF
|
|
||||||
|
|
||||||
# print the result
|
|
||||||
parted -s $dev unit s p > out 2>&1 || fail=1
|
|
||||||
-sed "s/Disk .*:/Disk:/;s/ *$//" out > k && mv k out || fail=1
|
|
||||||
+sed "s/^Disk .*\($dev: [0-9][0-9]*s\)$/Disk \1/;s/ *$//" out > k \
|
|
||||||
+ && mv k out || fail=1
|
|
||||||
compare out exp || fail=1
|
|
||||||
|
|
||||||
# a partition start sector number of 2^32 must fail
|
|
||||||
diff --git a/tests/t4100-msdos-partition-limits.sh b/tests/t4100-msdos-partition-limits.sh
|
|
||||||
index 4ec3c27..f8f1fc4 100755
|
|
||||||
--- a/tests/t4100-msdos-partition-limits.sh
|
|
||||||
+++ b/tests/t4100-msdos-partition-limits.sh
|
|
||||||
@@ -116,9 +116,10 @@ do_mkpart_start_and_len $(echo 2^32-1|bc) 1000 || fail=1
|
|
||||||
|
|
||||||
cat > exp <<EOF
|
|
||||||
Model: (file)
|
|
||||||
-Disk: 4294970342s
|
|
||||||
+Disk $dev: 4294970342s
|
|
||||||
Sector size (logical/physical): ${ss}B/${ss}B
|
|
||||||
Partition Table: $table_type
|
|
||||||
+Disk Flags:
|
|
||||||
|
|
||||||
Number Start End Size Type File system Flags
|
|
||||||
1 4294967295s 4294968294s 1000s primary
|
|
||||||
@@ -127,7 +128,8 @@ EOF
|
|
||||||
|
|
||||||
# print the result
|
|
||||||
parted -s $dev unit s p > out 2>&1 || fail=1
|
|
||||||
-sed "s/Disk .*:/Disk:/;s/ *$//" out > k && mv k out || fail=1
|
|
||||||
+sed "s/^Disk .*\($dev: [0-9][0-9]*s\)$/Disk \1/;s/ *$//" out > k \
|
|
||||||
+ && mv k out || fail=1
|
|
||||||
compare out exp || fail=1
|
|
||||||
|
|
||||||
# a partition start sector number of 2^32 must fail
|
|
||||||
diff --git a/tests/t4100-msdos-starting-sector.sh b/tests/t4100-msdos-starting-sector.sh
|
|
||||||
index f768646..26b5a57 100755
|
|
||||||
--- a/tests/t4100-msdos-starting-sector.sh
|
|
||||||
+++ b/tests/t4100-msdos-starting-sector.sh
|
|
||||||
@@ -38,7 +38,7 @@ compare out /dev/null || fail=1
|
|
||||||
# Test the output of print free with no partitions.
|
|
||||||
cat <<EOF > exp || fail=1
|
|
||||||
BYT;
|
|
||||||
-path:${N}s:file:$ss:$ss:msdos:;
|
|
||||||
+path:${N}s:file:$ss:$ss:msdos::;
|
|
||||||
1:32s:4095s:4064s:free;
|
|
||||||
EOF
|
|
||||||
|
|
||||||
@@ -54,7 +54,7 @@ compare out exp || fail=1
|
|
||||||
# Test the output of print free with one partition.
|
|
||||||
cat <<EOF > exp || fail=1
|
|
||||||
BYT;
|
|
||||||
-path:${N}s:file:$ss:$ss:msdos:;
|
|
||||||
+path:${N}s:file:$ss:$ss:msdos::;
|
|
||||||
1:32s:2047s:2016s:free;
|
|
||||||
1:2048s:4095s:2048s:::;
|
|
||||||
EOF
|
|
||||||
diff --git a/tests/t4200-partprobe.sh b/tests/t4200-partprobe.sh
|
|
||||||
index bd5e15d..41bc802 100755
|
|
||||||
--- a/tests/t4200-partprobe.sh
|
|
||||||
+++ b/tests/t4200-partprobe.sh
|
|
||||||
@@ -33,7 +33,7 @@ dvhtool -d $dev --unix-to-vh d data || fail=1
|
|
||||||
|
|
||||||
# Here's sample output from the parted...print command below:
|
|
||||||
# BYT;
|
|
||||||
-# /dev/sdd:128880s:scsi:512:512:dvh: Flash Disk;
|
|
||||||
+# /dev/sdd:128880s:scsi:512:512:dvh: Flash Disk:;
|
|
||||||
# 9:0s:4095s:4096s:::;
|
|
||||||
# 17:4s:11s:8s::data:;
|
|
||||||
|
|
||||||
diff --git a/tests/t5000-tags.sh b/tests/t5000-tags.sh
|
|
||||||
index ef2f610..47437d3 100755
|
|
||||||
--- a/tests/t5000-tags.sh
|
|
||||||
+++ b/tests/t5000-tags.sh
|
|
||||||
@@ -44,7 +44,7 @@ parted -m -s $dev unit s print > t 2>&1 || fail=1
|
|
||||||
sed "s,.*/$dev:,$dev:," t > out || fail=1
|
|
||||||
|
|
||||||
# check for expected output
|
|
||||||
-printf "BYT;\n$dev:${N}s:file:$ss:$ss:gpt:;\n" > exp || fail=1
|
|
||||||
+printf "BYT;\n$dev:${N}s:file:$ss:$ss:gpt::;\n" > exp || fail=1
|
|
||||||
compare exp out || fail=1
|
|
||||||
|
|
||||||
# add a partition
|
|
||||||
@@ -66,10 +66,10 @@ gen_exp()
|
|
||||||
{
|
|
||||||
cat <<EOF
|
|
||||||
BYT;
|
|
||||||
-$dev:${N}s:file:$ss:$ss:gpt:;
|
|
||||||
+$dev:${N}s:file:$ss:$ss:gpt::;
|
|
||||||
1:${start_sector}s:${end_sector}s:${part_sectors}s::name1:;
|
|
||||||
BYT;
|
|
||||||
-$dev:${N}s:file:$ss:$ss:gpt:;
|
|
||||||
+$dev:${N}s:file:$ss:$ss:gpt::;
|
|
||||||
1:${start_sector}s:${end_sector}s:${part_sectors}s::name1:bios_grub;
|
|
||||||
EOF
|
|
||||||
}
|
|
||||||
diff --git a/tests/t6000-dm.sh b/tests/t6000-dm.sh
|
|
||||||
index 03586c7..d593914 100755
|
|
||||||
--- a/tests/t6000-dm.sh
|
|
||||||
+++ b/tests/t6000-dm.sh
|
|
||||||
@@ -72,14 +72,15 @@ for type in linear ; do
|
|
||||||
compare out /dev/null || fail=1
|
|
||||||
|
|
||||||
parted -s "$dev" print > out 2>&1 || fail=1
|
|
||||||
- sed 's/^Disk .*: /Disk DEV: /' out > k; mv k out
|
|
||||||
+ sed 's/ $//' out > k && mv k out || fail=1 # Remove trailing blank.
|
|
||||||
|
|
||||||
# Create expected output file.
|
|
||||||
cat <<EOF >> exp || fail=1
|
|
||||||
Model: Linux device-mapper ($type) (dm)
|
|
||||||
-Disk DEV: 524kB
|
|
||||||
+Disk $dev: 524kB
|
|
||||||
Sector size (logical/physical): 512B/512B
|
|
||||||
Partition Table: msdos
|
|
||||||
+Disk Flags:
|
|
||||||
|
|
||||||
Number Start End Size Type File system Flags
|
|
||||||
|
|
||||||
diff --git a/tests/t9040-many-partitions.sh b/tests/t9040-many-partitions.sh
|
|
||||||
index 1282c1f..55530fe 100644
|
|
||||||
--- a/tests/t9040-many-partitions.sh
|
|
||||||
+++ b/tests/t9040-many-partitions.sh
|
|
||||||
@@ -40,7 +40,7 @@ scsi_debug_setup_ sector_size=$ss dev_size_mb=$n_MiB > dev-name ||
|
|
||||||
scsi_dev=$(cat dev-name)
|
|
||||||
|
|
||||||
n=$((n_MiB * sectors_per_MiB))
|
|
||||||
-printf "BYT;\n$scsi_dev:${n}s:scsi:$ss:$ss:gpt:Linux scsi_debug;\n" \
|
|
||||||
+printf "BYT;\n$scsi_dev:${n}s:scsi:$ss:$ss:gpt:Linux scsi_debug:;\n" \
|
|
||||||
> exp || fail=1
|
|
||||||
|
|
||||||
parted -s $scsi_dev mklabel gpt || fail=1
|
|
||||||
diff --git a/tests/t9041-undetected-in-use-16th-partition.sh b/tests/t9041-undetected-in-use-16th-partition.sh
|
|
||||||
index 74c30fc..1c6bad2 100644
|
|
||||||
--- a/tests/t9041-undetected-in-use-16th-partition.sh
|
|
||||||
+++ b/tests/t9041-undetected-in-use-16th-partition.sh
|
|
||||||
@@ -40,7 +40,7 @@ scsi_debug_setup_ sector_size=$ss dev_size_mb=$n_MiB > dev-name ||
|
|
||||||
scsi_dev=$(cat dev-name)
|
|
||||||
|
|
||||||
n=$((n_MiB * sectors_per_MiB))
|
|
||||||
-printf "BYT;\n$scsi_dev:${n}s:scsi:$ss:$ss:gpt:Linux scsi_debug;\n" \
|
|
||||||
+printf "BYT;\n$scsi_dev:${n}s:scsi:$ss:$ss:gpt:Linux scsi_debug:;\n" \
|
|
||||||
> exp || fail=1
|
|
||||||
|
|
||||||
parted -s $scsi_dev mklabel gpt || fail=1
|
|
||||||
--
|
|
||||||
1.7.6.5
|
|
||||||
|
|
36
parted.spec
36
parted.spec
@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
Summary: The GNU disk partition manipulation program
|
Summary: The GNU disk partition manipulation program
|
||||||
Name: parted
|
Name: parted
|
||||||
Version: 3.0
|
Version: 3.1
|
||||||
Release: 7%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Group: Applications/System
|
Group: Applications/System
|
||||||
URL: http://www.gnu.org/software/parted
|
URL: http://www.gnu.org/software/parted
|
||||||
@ -12,32 +12,8 @@ URL: http://www.gnu.org/software/parted
|
|||||||
Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
Source0: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
||||||
Source1: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
|
Source1: ftp://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz.sig
|
||||||
Source2: pubkey.jim.meyering
|
Source2: pubkey.jim.meyering
|
||||||
# All patches are in upstream git
|
|
||||||
|
|
||||||
# Report partitions changes when using blkext major numbers
|
Patch0: parted-3.0-libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
|
||||||
Patch0: parted-2.3-lpn.patch
|
|
||||||
# Document the align-check command
|
|
||||||
Patch1: parted-2.3-Document-align-check-642476.patch
|
|
||||||
Patch2: parted-3.0-libparted-fix-snap-radius-so-that-it-is-using-half.patch
|
|
||||||
Patch3: parted-3.0-libparted-don-t-allow-values-less-than-1.patch
|
|
||||||
Patch4: parted-3.0-tests-add-test-for-radius-divide-by-2-fix.patch
|
|
||||||
Patch5: parted-3.0-tests-add-test-for-value-less-than-1.patch
|
|
||||||
# Fix for kernel 3.0 new version numbering.
|
|
||||||
Patch6: parted-3.0-libparted-accommodate-two-component-linux-version-nu.patch
|
|
||||||
Patch7: parted-3.0-gpt-don-t-abort-for-a-truncated-GPT-formatted-device.patch
|
|
||||||
Patch8: parted-3.0-libparted-fix-a-bug-in-the-nilfs2-probe-function.patch
|
|
||||||
Patch9: parted-3.0-tests-test-for-the-nilfs2-bug.patch
|
|
||||||
Patch10: parted-3.0-libparted-Fix-a-bug-in-the-hfs-probe-functions-71475.patch
|
|
||||||
Patch11: parted-3.0-libparted-make-pc98-detection-depend-on-signatures.patch
|
|
||||||
Patch12: parted-3.0-tests-add-tests-for-new-pc98-signatures-646053.patch
|
|
||||||
Patch13: parted-3.0-libparted-copy-flags-when-duplicating-GPT-partitions.patch
|
|
||||||
Patch14: parted-3.0-tests-add-new-test-to-check-ped_disk_duplicate.patch
|
|
||||||
Patch15: parted-3.0-gpt-add-commands-to-manipulate-pMBR-boot-flag.patch
|
|
||||||
Patch16: parted-3.0-parted-when-printing-also-print-the-new-disk-flags.patch
|
|
||||||
Patch17: parted-3.0-tests-update-tests-for-new-disk-flags-output.patch
|
|
||||||
Patch18: parted-3.0-tests-add-test-for-GPT-PMBR-pmbr_boot-flag.patch
|
|
||||||
Patch19: parted-3.0-doc-update-parted-documentation.patch
|
|
||||||
Patch20: parted-3.0-libparted-copy-pmbr_boot-when-duplicating-GPT-disk.patch
|
|
||||||
|
|
||||||
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
BuildRequires: e2fsprogs-devel
|
BuildRequires: e2fsprogs-devel
|
||||||
@ -158,6 +134,7 @@ fi
|
|||||||
%{_mandir}/man8/parted.8.gz
|
%{_mandir}/man8/parted.8.gz
|
||||||
%{_mandir}/man8/partprobe.8.gz
|
%{_mandir}/man8/partprobe.8.gz
|
||||||
%{_libdir}/libparted.so.*
|
%{_libdir}/libparted.so.*
|
||||||
|
%{_libdir}/libparted-fs-resize.so*
|
||||||
%{_infodir}/parted.info.gz
|
%{_infodir}/parted.info.gz
|
||||||
|
|
||||||
%files devel
|
%files devel
|
||||||
@ -168,6 +145,11 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Mar 13 2012 Brian C. Lane <bcl@redhat.com> 3.1-1
|
||||||
|
- Rebase to upstream parted v3.1
|
||||||
|
- removed merged patches
|
||||||
|
- add new libparted-fs-resize library
|
||||||
|
|
||||||
* Fri Feb 03 2012 Brian C. Lane <bcl@redhat.com> - 3.0-7
|
* Fri Feb 03 2012 Brian C. Lane <bcl@redhat.com> - 3.0-7
|
||||||
- Update patch for copying flags so that it is generic
|
- Update patch for copying flags so that it is generic
|
||||||
- Copy pmbr_boot flag in gpt_duplicate
|
- Copy pmbr_boot flag in gpt_duplicate
|
||||||
|
Loading…
Reference in New Issue
Block a user