https://git.reactos.org/?p=reactos.git;a=commitdiff;h=59acff79e50fea4e32c18…
commit 59acff79e50fea4e32c1853877289535051590ef
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Aug 25 02:08:23 2019 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Aug 25 02:38:53 2019 +0200
[SETUPLIB][USETUP] Slightly modify how and when the HW system partition is detected and used.
CORE-16274
SETUPLIB:
=========
- Find the system partition initially when we create the list of
partitions.
- Split the old CheckActiveSystemPartition() helper in two helpers:
FindSupportedSystemPartition() and SetActivePartition(). This allows
simplifying slightly the former one, and allows the user, in an
interactive situation, to decide whether the "supported system
partition" found can actually be used or not.
- Remove the "OriginalSystemPartition" hack in the PARTLIST structure.
- Add a note regarding the SystemPartition member in PARTLIST.
USETUP:
=======
- Use the introduced helpers from above. If the "system" partition we
are going to use, in case we install ReactOS on a fixed disk, is *NOT*
the same as the original one (e.g. because it is detected to be not
supported by ReactOS...), display an informative screen to the user
and let him confirm whether or not he wants to change the partition.
If we install on a fixed disk, try to find a supported system partition
on the system. Otherwise if we install on a removable disk, use the
install partition as the system partition instead.
This allows providing a fix for CORE-16274.
---
base/setup/lib/utils/partlist.c | 505 +++++++++++++++++++++++-----------------
base/setup/lib/utils/partlist.h | 30 +--
base/setup/usetup/lang/bg-BG.h | 120 +++++++++-
base/setup/usetup/lang/bn-BD.h | 126 +++++++++-
base/setup/usetup/lang/cs-CZ.h | 114 ++++++++-
base/setup/usetup/lang/da-DK.h | 113 ++++++++-
base/setup/usetup/lang/de-DE.h | 114 ++++++++-
base/setup/usetup/lang/el-GR.h | 121 +++++++++-
base/setup/usetup/lang/en-US.h | 126 +++++++++-
base/setup/usetup/lang/es-ES.h | 114 ++++++++-
base/setup/usetup/lang/et-EE.h | 116 ++++++++-
base/setup/usetup/lang/fr-FR.h | 136 +++++++++--
base/setup/usetup/lang/he-IL.h | 114 ++++++++-
base/setup/usetup/lang/it-IT.h | 114 ++++++++-
base/setup/usetup/lang/ja-JP.h | 118 +++++++++-
base/setup/usetup/lang/lt-LT.h | 126 +++++++++-
base/setup/usetup/lang/ms-MY.h | 212 ++++++++++++++++-
base/setup/usetup/lang/nl-NL.h | 115 ++++++++-
base/setup/usetup/lang/pl-PL.h | 114 ++++++++-
base/setup/usetup/lang/pt-BR.h | 118 +++++++++-
base/setup/usetup/lang/pt-PT.h | 120 +++++++++-
base/setup/usetup/lang/ro-RO.h | 114 ++++++++-
base/setup/usetup/lang/ru-RU.h | 114 ++++++++-
base/setup/usetup/lang/sk-SK.h | 118 +++++++++-
base/setup/usetup/lang/sq-AL.h | 118 +++++++++-
base/setup/usetup/lang/sv-SE.h | 118 +++++++++-
base/setup/usetup/lang/tr-TR.h | 114 ++++++++-
base/setup/usetup/lang/uk-UA.h | 114 ++++++++-
base/setup/usetup/usetup.c | 191 ++++++++++++++-
base/setup/usetup/usetup.h | 1 +
30 files changed, 3544 insertions(+), 344 deletions(-)
diff --git a/base/setup/lib/utils/partlist.c b/base/setup/lib/utils/partlist.c
index 19b49a6a9b0..5c094e31123 100644
--- a/base/setup/lib/utils/partlist.c
+++ b/base/setup/lib/utils/partlist.c
@@ -1883,10 +1883,147 @@ AddDiskToList(
ScanForUnpartitionedDiskSpace(DiskEntry);
}
+/*
+ * Retrieve the system disk, i.e. the fixed disk that is accessible by the
+ * firmware during boot time and where the system partition resides.
+ * If no system partition has been determined, we retrieve the first disk
+ * that verifies the mentioned criteria above.
+ */
+static
+PDISKENTRY
+GetSystemDisk(
+ IN PPARTLIST List)
+{
+ PLIST_ENTRY Entry;
+ PDISKENTRY DiskEntry;
+
+ /* Check for empty disk list */
+ if (IsListEmpty(&List->DiskListHead))
+ return NULL;
+
+ /*
+ * If we already have a system partition, the system disk
+ * is the one on which the system partition resides.
+ */
+ if (List->SystemPartition)
+ return List->SystemPartition->DiskEntry;
+
+ /* Loop over the disks and find the correct one */
+ for (Entry = List->DiskListHead.Flink;
+ Entry != &List->DiskListHead;
+ Entry = Entry->Flink)
+ {
+ DiskEntry = CONTAINING_RECORD(Entry, DISKENTRY, ListEntry);
+
+ /* The disk must be a fixed disk and be found by the firmware */
+ if (DiskEntry->MediaType == FixedMedia && DiskEntry->BiosFound)
+ {
+ break;
+ }
+ }
+ if (Entry == &List->DiskListHead)
+ {
+ /* We haven't encountered any suitable disk */
+ return NULL;
+ }
+
+ if (DiskEntry->DiskStyle == PARTITION_STYLE_GPT)
+ {
+ DPRINT1("System disk -- GPT-partitioned disk detected, not currently supported by SETUP!\n");
+ }
+
+ return DiskEntry;
+}
+
+/*
+ * Retrieve the actual "active" partition of the given disk.
+ * On MBR disks, partition with the Active/Boot flag set;
+ * on GPT disks, partition with the correct GUID.
+ */
+BOOLEAN
+IsPartitionActive(
+ IN PPARTENTRY PartEntry)
+{
+ // TODO: Support for GPT disks!
+
+ if (IsContainerPartition(PartEntry->PartitionType))
+ return FALSE;
+
+ /* Check if the partition is partitioned, used and active */
+ if (PartEntry->IsPartitioned &&
+ // !IsContainerPartition(PartEntry->PartitionType) &&
+ PartEntry->BootIndicator)
+ {
+ /* Yes it is */
+ ASSERT(PartEntry->PartitionType != PARTITION_ENTRY_UNUSED);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static
+PPARTENTRY
+GetActiveDiskPartition(
+ IN PDISKENTRY DiskEntry)
+{
+ PLIST_ENTRY ListEntry;
+ PPARTENTRY PartEntry;
+ PPARTENTRY ActivePartition = NULL;
+
+ /* Check for empty disk list */
+ // ASSERT(DiskEntry);
+ if (!DiskEntry)
+ return NULL;
+
+ /* Check for empty partition list */
+ if (IsListEmpty(&DiskEntry->PrimaryPartListHead))
+ return NULL;
+
+ if (DiskEntry->DiskStyle == PARTITION_STYLE_GPT)
+ {
+ DPRINT1("GPT-partitioned disk detected, not currently supported by SETUP!\n");
+ return NULL;
+ }
+
+ /* Scan all (primary) partitions to find the active disk partition */
+ for (ListEntry = DiskEntry->PrimaryPartListHead.Flink;
+ ListEntry != &DiskEntry->PrimaryPartListHead;
+ ListEntry = ListEntry->Flink)
+ {
+ /* Retrieve the partition */
+ PartEntry = CONTAINING_RECORD(ListEntry, PARTENTRY, ListEntry);
+ if (IsPartitionActive(PartEntry))
+ {
+ /* Yes, we've found it */
+ ASSERT(DiskEntry == PartEntry->DiskEntry);
+ ASSERT(PartEntry->IsPartitioned);
+
+ ActivePartition = PartEntry;
+
+ DPRINT1("Found active system partition %lu in disk %lu, drive letter %C\n",
+ PartEntry->PartitionNumber, DiskEntry->DiskNumber,
+ (PartEntry->DriveLetter == 0) ? L'-' : PartEntry->DriveLetter);
+ break;
+ }
+ }
+
+ /* Check if the disk is new and if so, use its first partition as the active system partition */
+ if (DiskEntry->NewDisk && ActivePartition != NULL)
+ {
+ // FIXME: What to do??
+ DPRINT1("NewDisk TRUE but already existing active partition?\n");
+ }
+
+ /* Return the active partition found (or none) */
+ return ActivePartition;
+}
+
PPARTLIST
CreatePartitionList(VOID)
{
PPARTLIST List;
+ PDISKENTRY SystemDisk;
OBJECT_ATTRIBUTES ObjectAttributes;
SYSTEM_DEVICE_INFORMATION Sdi;
IO_STATUS_BLOCK Iosb;
@@ -1904,7 +2041,6 @@ CreatePartitionList(VOID)
return NULL;
List->SystemPartition = NULL;
- List->OriginalSystemPartition = NULL;
InitializeListHead(&List->DiskListHead);
InitializeListHead(&List->BiosDiskListHead);
@@ -1957,6 +2093,13 @@ CreatePartitionList(VOID)
UpdateHwDiskNumbers(List);
AssignDriveLetters(List);
+ /*
+ * Retrieve the system partition: the active partition on the system
+ * disk (the one that will be booted by default by the hardware).
+ */
+ SystemDisk = GetSystemDisk(List);
+ List->SystemPartition = (SystemDisk ? GetActiveDiskPartition(SystemDisk) : NULL);
+
return List;
}
@@ -3093,14 +3236,10 @@ DeletePartition(
ASSERT(PartEntry->PartitionType != PARTITION_ENTRY_UNUSED);
- /* Clear the system partition pointers if it is being deleted */
+ /* Clear the system partition if it is being deleted */
if (List->SystemPartition == PartEntry)
{
ASSERT(List->SystemPartition);
- ASSERT(List->SystemPartition->DiskEntry->MediaType != RemovableMedia);
-
- if (List->SystemPartition == List->OriginalSystemPartition)
- List->OriginalSystemPartition = NULL;
List->SystemPartition = NULL;
}
@@ -3209,90 +3348,6 @@ DeletePartition(
return TRUE;
}
-/*
- * Retrieve the actual "active" partition of the given disk.
- * On MBR disks, partition with the Active/Boot flag set;
- * on GPT disks, partition with the correct GUID.
- */
-BOOLEAN
-IsPartitionActive(
- IN PPARTENTRY PartEntry)
-{
- // TODO: Support for GPT disks!
-
- if (IsContainerPartition(PartEntry->PartitionType))
- return FALSE;
-
- /* Check if the partition is partitioned, used and active */
- if (PartEntry->IsPartitioned &&
- // !IsContainerPartition(PartEntry->PartitionType) &&
- PartEntry->BootIndicator)
- {
- /* Yes it is */
- ASSERT(PartEntry->PartitionType != PARTITION_ENTRY_UNUSED);
- return TRUE;
- }
-
- return FALSE;
-}
-
-static
-PPARTENTRY
-GetActiveDiskPartition(
- IN PDISKENTRY DiskEntry)
-{
- PLIST_ENTRY ListEntry;
- PPARTENTRY PartEntry;
- PPARTENTRY ActivePartition = NULL;
-
- /* Check for empty disk list */
- // ASSERT(DiskEntry);
- if (!DiskEntry)
- return NULL;
-
- /* Check for empty partition list */
- if (IsListEmpty(&DiskEntry->PrimaryPartListHead))
- return NULL;
-
- if (DiskEntry->DiskStyle == PARTITION_STYLE_GPT)
- {
- DPRINT1("GPT-partitioned disk detected, not currently supported by SETUP!\n");
- return NULL;
- }
-
- /* Scan all (primary) partitions to find the active disk partition */
- for (ListEntry = DiskEntry->PrimaryPartListHead.Flink;
- ListEntry != &DiskEntry->PrimaryPartListHead;
- ListEntry = ListEntry->Flink)
- {
- /* Retrieve the partition */
- PartEntry = CONTAINING_RECORD(ListEntry, PARTENTRY, ListEntry);
- if (IsPartitionActive(PartEntry))
- {
- /* Yes, we've found it */
- ASSERT(DiskEntry == PartEntry->DiskEntry);
- ASSERT(PartEntry->IsPartitioned);
-
- ActivePartition = PartEntry;
-
- DPRINT1("Found active system partition %lu in disk %lu, drive letter %C\n",
- PartEntry->PartitionNumber, DiskEntry->DiskNumber,
- (PartEntry->DriveLetter == 0) ? L'-' : PartEntry->DriveLetter);
- break;
- }
- }
-
- /* Check if the disk is new and if so, use its first partition as the active system partition */
- if (DiskEntry->NewDisk && ActivePartition != NULL)
- {
- // FIXME: What to do??
- DPRINT1("NewDisk TRUE but already existing active partition?\n");
- }
-
- /* Return the active partition found (or none) */
- return ActivePartition;
-}
-
static
BOOLEAN
IsSupportedActivePartition(
@@ -3374,12 +3429,12 @@ IsSupportedActivePartition(
return TRUE;
}
-VOID
-CheckActiveSystemPartition(
+PPARTENTRY
+FindSupportedSystemPartition(
IN PPARTLIST List,
IN BOOLEAN ForceSelect,
- IN PDISKENTRY AlternateDisk OPTIONAL,
- IN PPARTENTRY AlternatePart OPTIONAL)
+ IN PDISKENTRY AlternativeDisk OPTIONAL,
+ IN PPARTENTRY AlternativePart OPTIONAL)
{
PLIST_ENTRY ListEntry;
PDISKENTRY DiskEntry;
@@ -3391,75 +3446,63 @@ CheckActiveSystemPartition(
if (IsListEmpty(&List->DiskListHead))
{
/* No system partition! */
- List->SystemPartition = NULL;
- List->OriginalSystemPartition = NULL;
+ ASSERT(List->SystemPartition == NULL);
goto NoSystemPartition;
}
- if (List->SystemPartition != NULL)
- {
- /* We already have an active system partition */
- DPRINT1("Use the current system partition %lu in disk %lu, drive letter %C\n",
- List->SystemPartition->PartitionNumber,
- List->SystemPartition->DiskEntry->DiskNumber,
- (List->SystemPartition->DriveLetter == 0) ? L'-' : List->SystemPartition->DriveLetter);
- return;
- }
-
- /* Start fresh */
- List->SystemPartition = NULL;
- List->OriginalSystemPartition = NULL;
+ /* Adjust the optional alternative disk if needed */
+ if (!AlternativeDisk && AlternativePart)
+ AlternativeDisk = AlternativePart->DiskEntry;
- /* Adjust the optional alternate disk if needed */
- if (!AlternateDisk && AlternatePart)
- AlternateDisk = AlternatePart->DiskEntry;
+ /* Ensure that the alternative partition is on the alternative disk */
+ if (AlternativePart)
+ ASSERT(AlternativeDisk && (AlternativePart->DiskEntry == AlternativeDisk));
- /* Ensure that the alternate partition is on the alternate disk */
- if (AlternatePart)
- ASSERT(AlternateDisk && (AlternatePart->DiskEntry == AlternateDisk));
+ /* Ensure that the alternative disk is in the list */
+ if (AlternativeDisk)
+ ASSERT(AlternativeDisk->PartList == List);
- /* Ensure that the alternate disk is in the list */
- if (AlternateDisk)
- ASSERT(AlternateDisk->PartList == List);
+ /* Start fresh */
+ CandidatePartition = NULL;
//
-// Pass == 1 : Check the first (system) disk.
+// Step 1 : Check the system disk.
//
/*
- * First, check whether the first disk (the one that will be booted
- * by default by the hardware) contains an active partition. If so
- * this should be our system partition.
+ * First, check whether the system disk, i.e. the one that will be booted
+ * by default by the hardware, contains an active partition. If so this
+ * should be our system partition.
*/
- DiskEntry = CONTAINING_RECORD(List->DiskListHead.Flink,
- DISKENTRY, ListEntry);
+ DiskEntry = GetSystemDisk(List);
if (DiskEntry->DiskStyle == PARTITION_STYLE_GPT)
{
- DPRINT1("First (system) disk -- GPT-partitioned disk detected, not currently supported by SETUP!\n");
- goto UseAlternateDisk;
+ DPRINT1("System disk -- GPT-partitioned disk detected, not currently supported by SETUP!\n");
+ goto UseAlternativeDisk;
}
- ActivePartition = GetActiveDiskPartition(DiskEntry);
- if (ActivePartition)
+ /* If we have a system partition (in the system disk), validate it */
+ ActivePartition = List->SystemPartition;
+ if (ActivePartition && IsSupportedActivePartition(ActivePartition))
{
- /* Save the actual system partition */
- List->OriginalSystemPartition = ActivePartition;
+ CandidatePartition = ActivePartition;
- /* If we get a candidate active partition in the first disk, validate it */
- if (IsSupportedActivePartition(ActivePartition))
- {
- CandidatePartition = ActivePartition;
- goto SystemPartitionFound;
- }
+ DPRINT1("Use the current system partition %lu in disk %lu, drive letter %C\n",
+ CandidatePartition->PartitionNumber,
+ CandidatePartition->DiskEntry->DiskNumber,
+ (CandidatePartition->DriveLetter == 0) ? L'-' : CandidatePartition->DriveLetter);
+
+ /* Return the candidate system partition */
+ return CandidatePartition;
}
- /* If this first disk is not the optional alternate disk, perform the minimal checks */
- if (DiskEntry != AlternateDisk)
+ /* If the system disk is not the optional alternative disk, perform the minimal checks */
+ if (DiskEntry != AlternativeDisk)
{
/*
* No active partition has been recognized. Enumerate all the (primary)
- * partitions in the first disk, excluding the possible current active
+ * partitions in the system disk, excluding the possible current active
* partition, to find a new candidate.
*/
for (ListEntry = DiskEntry->PrimaryPartListHead.Flink;
@@ -3470,7 +3513,7 @@ CheckActiveSystemPartition(
PartEntry = CONTAINING_RECORD(ListEntry, PARTENTRY, ListEntry);
/* Skip the current active partition */
- if (/* ActivePartition != NULL && */ PartEntry == ActivePartition)
+ if (PartEntry == ActivePartition)
continue;
/* Check if the partition is partitioned and used */
@@ -3479,11 +3522,11 @@ CheckActiveSystemPartition(
{
ASSERT(PartEntry->PartitionType != PARTITION_ENTRY_UNUSED);
- /* If we get a candidate active partition in the first disk, validate it */
+ /* If we get a candidate active partition in the disk, validate it */
if (IsSupportedActivePartition(PartEntry))
{
CandidatePartition = PartEntry;
- goto FindAndUseAlternativeSystemPartition;
+ goto UseAlternativePartition;
}
}
@@ -3495,7 +3538,7 @@ CheckActiveSystemPartition(
// TODO: Check for minimal size!!
CandidatePartition = PartEntry;
- goto FindAndUseAlternativeSystemPartition;
+ goto UseAlternativePartition;
}
#endif
}
@@ -3520,7 +3563,7 @@ CheckActiveSystemPartition(
PartEntry = CONTAINING_RECORD(ListEntry, PARTENTRY, ListEntry);
/* Skip the current active partition */
- if (/* ActivePartition != NULL && */ PartEntry == ActivePartition)
+ if (PartEntry == ActivePartition)
continue;
/* Check for unpartitioned space */
@@ -3530,7 +3573,7 @@ CheckActiveSystemPartition(
// TODO: Check for minimal size!!
CandidatePartition = PartEntry;
- goto FindAndUseAlternativeSystemPartition;
+ goto UseAlternativePartition;
}
}
}
@@ -3538,33 +3581,30 @@ CheckActiveSystemPartition(
//
-// Pass == 2 : No active partition found: Check the alternate disk if specified.
+// Step 2 : No active partition found: Check the alternative disk if specified.
//
-UseAlternateDisk:
- if (!AlternateDisk || (!ForceSelect && (DiskEntry != AlternateDisk)))
+UseAlternativeDisk:
+ if (!AlternativeDisk || (!ForceSelect && (DiskEntry != AlternativeDisk)))
goto NoSystemPartition;
- if (AlternateDisk->DiskStyle == PARTITION_STYLE_GPT)
+ if (AlternativeDisk->DiskStyle == PARTITION_STYLE_GPT)
{
- DPRINT1("Alternate disk -- GPT-partitioned disk detected, not currently supported by SETUP!\n");
+ DPRINT1("Alternative disk -- GPT-partitioned disk detected, not currently supported by SETUP!\n");
goto NoSystemPartition;
}
- if (DiskEntry != AlternateDisk)
+ if (DiskEntry != AlternativeDisk)
{
- /* Choose the alternate disk */
- DiskEntry = AlternateDisk;
+ /* Choose the alternative disk */
+ DiskEntry = AlternativeDisk;
+ /* If we get a candidate active partition, validate it */
ActivePartition = GetActiveDiskPartition(DiskEntry);
- if (ActivePartition)
+ if (ActivePartition && IsSupportedActivePartition(ActivePartition))
{
- /* If we get a candidate active partition, validate it */
- if (IsSupportedActivePartition(ActivePartition))
- {
- CandidatePartition = ActivePartition;
- goto FindAndUseAlternativeSystemPartition;
- }
+ CandidatePartition = ActivePartition;
+ goto UseAlternativePartition;
}
}
@@ -3575,7 +3615,7 @@ UseAlternateDisk:
*** - If we want a really separate system partition from the partition where
*** we install, do something similar to what's done below in the code.
*** - Otherwise if we allow for the system partition to be also the partition
- *** where we install, just directly fall down to using AlternatePart.
+ *** where we install, just directly fall down to using AlternativePart.
***/
/* Retrieve the first partition of the disk */
@@ -3597,15 +3637,13 @@ UseAlternateDisk:
{
ASSERT(DiskEntry == CandidatePartition->DiskEntry);
- List->SystemPartition = CandidatePartition;
- List->OriginalSystemPartition = List->SystemPartition;
-
DPRINT1("Use new first active system partition %lu in disk %lu, drive letter %C\n",
- List->SystemPartition->PartitionNumber,
- List->SystemPartition->DiskEntry->DiskNumber,
- (List->SystemPartition->DriveLetter == 0) ? L'-' : List->SystemPartition->DriveLetter);
+ CandidatePartition->PartitionNumber,
+ CandidatePartition->DiskEntry->DiskNumber,
+ (CandidatePartition->DriveLetter == 0) ? L'-' : CandidatePartition->DriveLetter);
- goto SetSystemPartition;
+ /* Return the candidate system partition */
+ return CandidatePartition;
}
// FIXME: What to do??
@@ -3638,81 +3676,116 @@ UseAlternateDisk:
* so use the first one as the system partition.
*/
ASSERT(DiskEntry == CandidatePartition->DiskEntry);
- List->SystemPartition = CandidatePartition; // The first PartEntry
- List->OriginalSystemPartition = List->SystemPartition;
DPRINT1("Use first active system partition %lu in disk %lu, drive letter %C\n",
- List->SystemPartition->PartitionNumber,
- List->SystemPartition->DiskEntry->DiskNumber,
- (List->SystemPartition->DriveLetter == 0) ? L'-' : List->SystemPartition->DriveLetter);
+ CandidatePartition->PartitionNumber,
+ CandidatePartition->DiskEntry->DiskNumber,
+ (CandidatePartition->DriveLetter == 0) ? L'-' : CandidatePartition->DriveLetter);
- goto SetSystemPartition;
+ /* Return the candidate system partition */
+ return CandidatePartition;
}
/*
* The disk is not new, we did not find any actual active partition,
- * or the one we found was not supported, or any possible other canditate
- * is not supported. We then use the alternate partition if specified.
+ * or the one we found was not supported, or any possible other candidate
+ * is not supported. We then use the alternative partition if specified.
*/
- if (AlternatePart)
+ if (AlternativePart)
{
- DPRINT1("No system partition found, use the alternative partition!\n");
- CandidatePartition = AlternatePart;
- goto UseAlternativeSystemPartition;
+ DPRINT1("No valid or supported system partition has been found, use the alternative partition!\n");
+ CandidatePartition = AlternativePart;
+ goto UseAlternativePartition;
}
else
{
NoSystemPartition:
DPRINT1("No valid or supported system partition has been found on this system!\n");
- return;
+ return NULL;
}
-
-SystemPartitionFound:
+UseAlternativePartition:
+ /*
+ * We are here because we did not find any (active) candidate system
+ * partition that we know how to support. What we are going to do is
+ * to change the existing system partition and use the alternative partition
+ * (e.g. on which we install ReactOS) as the new system partition.
+ * Then we will need to add in FreeLdr's boot menu an entry for booting
+ * from the original system partition.
+ */
ASSERT(CandidatePartition);
- List->SystemPartition = CandidatePartition;
- DPRINT1("Use existing active system partition %lu in disk %lu, drive letter %C\n",
- List->SystemPartition->PartitionNumber,
- List->SystemPartition->DiskEntry->DiskNumber,
- (List->SystemPartition->DriveLetter == 0) ? L'-' : List->SystemPartition->DriveLetter);
+ DPRINT1("Use alternative active system partition %lu in disk %lu, drive letter %C\n",
+ CandidatePartition->PartitionNumber,
+ CandidatePartition->DiskEntry->DiskNumber,
+ (CandidatePartition->DriveLetter == 0) ? L'-' : CandidatePartition->DriveLetter);
+
+ /* Return the candidate system partition */
+ return CandidatePartition;
+}
+
+BOOLEAN
+SetActivePartition(
+ IN PPARTLIST List,
+ IN PPARTENTRY PartEntry,
+ IN PPARTENTRY OldActivePart OPTIONAL)
+{
+ /* Check for empty disk list */
+ if (IsListEmpty(&List->DiskListHead))
+ return FALSE;
+
+ /* Validate the partition entry */
+ if (!PartEntry)
+ return FALSE;
+
+ /*
+ * If the partition entry is already the system partition, or if it is
+ * the same as the old active partition hint the user provided (and if
+ * it is already active), just return success.
+ */
+ if ((PartEntry == List->SystemPartition) ||
+ ((PartEntry == OldActivePart) && IsPartitionActive(OldActivePart)))
+ {
+ return TRUE;
+ }
- return;
+ ASSERT(PartEntry->DiskEntry);
+
+ /* Ensure that the partition's disk is in the list */
+ ASSERT(PartEntry->DiskEntry->PartList == List);
-FindAndUseAlternativeSystemPartition:
/*
- * We are here because we have not found any (active) candidate
- * system partition that we know how to support. What we are going
- * to do is to change the existing system partition and use the
- * partition on which we install ReactOS as the new system partition,
- * and then we will need to add in FreeLdr's entry a boot entry to boot
- * from the original system partition.
+ * If the user provided an old active partition hint, verify that it is
+ * indeeed active and belongs to the same disk where the new partition
+ * belongs. Otherwise determine the current active partition on the disk
+ * where the new partition belongs.
*/
+ if (!(OldActivePart && IsPartitionActive(OldActivePart) && (OldActivePart->DiskEntry == PartEntry->DiskEntry)))
+ {
+ /* It's not, determine the current active partition for the disk */
+ OldActivePart = GetActiveDiskPartition(PartEntry->DiskEntry);
+ }
- /* Unset the old system partition */
- if (List->OriginalSystemPartition)
+ /* Unset the old active partition if it exists */
+ if (OldActivePart)
{
- List->OriginalSystemPartition->BootIndicator = FALSE;
- List->OriginalSystemPartition->DiskEntry->LayoutBuffer->PartitionEntry[List->OriginalSystemPartition->PartitionIndex].BootIndicator = FALSE;
- List->OriginalSystemPartition->DiskEntry->LayoutBuffer->PartitionEntry[List->OriginalSystemPartition->PartitionIndex].RewritePartition = TRUE;
- List->OriginalSystemPartition->DiskEntry->Dirty = TRUE;
+ OldActivePart->BootIndicator = FALSE;
+ OldActivePart->DiskEntry->LayoutBuffer->PartitionEntry[OldActivePart->PartitionIndex].BootIndicator = FALSE;
+ OldActivePart->DiskEntry->LayoutBuffer->PartitionEntry[OldActivePart->PartitionIndex].RewritePartition = TRUE;
+ OldActivePart->DiskEntry->Dirty = TRUE;
}
-UseAlternativeSystemPartition:
- ASSERT(CandidatePartition);
- List->SystemPartition = CandidatePartition;
+ /* Modify the system partition if the new partition is on the system disk */
+ if (PartEntry->DiskEntry == GetSystemDisk(List))
+ List->SystemPartition = PartEntry;
- DPRINT1("Use alternative active system partition %lu in disk %lu, drive letter %C\n",
- List->SystemPartition->PartitionNumber,
- List->SystemPartition->DiskEntry->DiskNumber,
- (List->SystemPartition->DriveLetter == 0) ? L'-' : List->SystemPartition->DriveLetter);
-
-SetSystemPartition:
- /* Set the new active system partition */
- List->SystemPartition->BootIndicator = TRUE;
- List->SystemPartition->DiskEntry->LayoutBuffer->PartitionEntry[List->SystemPartition->PartitionIndex].BootIndicator = TRUE;
- List->SystemPartition->DiskEntry->LayoutBuffer->PartitionEntry[List->SystemPartition->PartitionIndex].RewritePartition = TRUE;
- List->SystemPartition->DiskEntry->Dirty = TRUE;
+ /* Set the new active partition */
+ PartEntry->BootIndicator = TRUE;
+ PartEntry->DiskEntry->LayoutBuffer->PartitionEntry[PartEntry->PartitionIndex].BootIndicator = TRUE;
+ PartEntry->DiskEntry->LayoutBuffer->PartitionEntry[PartEntry->PartitionIndex].RewritePartition = TRUE;
+ PartEntry->DiskEntry->Dirty = TRUE;
+
+ return TRUE;
}
NTSTATUS
diff --git a/base/setup/lib/utils/partlist.h b/base/setup/lib/utils/partlist.h
index 19c24e1224e..fb548b0e2ed 100644
--- a/base/setup/lib/utils/partlist.h
+++ b/base/setup/lib/utils/partlist.h
@@ -42,7 +42,7 @@ typedef struct _PARTENTRY
ULARGE_INTEGER StartSector;
ULARGE_INTEGER SectorCount;
- BOOLEAN BootIndicator;
+ BOOLEAN BootIndicator; // NOTE: See comment for the PARTLIST::SystemPartition member.
UCHAR PartitionType;
ULONG OnDiskPartitionNumber; /* Enumerated partition number (primary partitions first, excluding the extended partition container, then the logical partitions) */
ULONG PartitionNumber; /* Current partition number, only valid for the currently running NTOS instance */
@@ -149,17 +149,11 @@ typedef struct _PARTLIST
* The corresponding system disk is obtained via:
* SystemPartition->DiskEntry.
*/
+ // NOTE: It seems to appear that the specifications of ARC and (u)EFI
+ // actually allow for multiple system partitions to exist on the system.
+ // If so we should instead rely on the BootIndicator bit of the PARTENTRY
+ // structure in order to find these.
PPARTENTRY SystemPartition;
- /*
- * The original system partition in case we are redefining it because
- * we do not have write support on it.
- * Please note that this is partly a HACK and MUST NEVER happen on
- * architectures where real system partitions are mandatory (because then
- * they are formatted in FAT FS and we support write operation on them).
- * The corresponding original system disk is obtained via:
- * OriginalSystemPartition->DiskEntry.
- */
- PPARTENTRY OriginalSystemPartition;
LIST_ENTRY DiskListHead;
LIST_ENTRY BiosDiskListHead;
@@ -323,12 +317,18 @@ DeletePartition(
IN PPARTENTRY PartEntry,
OUT PPARTENTRY* FreeRegion OPTIONAL);
-VOID
-CheckActiveSystemPartition(
+PPARTENTRY
+FindSupportedSystemPartition(
IN PPARTLIST List,
IN BOOLEAN ForceSelect,
- IN PDISKENTRY AlternateDisk OPTIONAL,
- IN PPARTENTRY AlternatePart OPTIONAL);
+ IN PDISKENTRY AlternativeDisk OPTIONAL,
+ IN PPARTENTRY AlternativePart OPTIONAL);
+
+BOOLEAN
+SetActivePartition(
+ IN PPARTLIST List,
+ IN PPARTENTRY PartEntry,
+ IN PPARTENTRY OldActivePart OPTIONAL);
NTSTATUS
WritePartitions(
diff --git a/base/setup/usetup/lang/bg-BG.h b/base/setup/usetup/lang/bg-BG.h
index 244d2d3c740..2b92b5f71ef 100644
--- a/base/setup/usetup/lang/bg-BG.h
+++ b/base/setup/usetup/lang/bg-BG.h
@@ -127,7 +127,7 @@ static MUI_ENTRY bgBGWelcomePageEntries[] =
"\x07 \215\240\342\250\341\255\245\342\245 L, \247\240 \244\240 \242\250\244\250\342\245 \340\240\247\340\245\350\250\342\245\253\255\250\342\245 (\253\250\346\245\255\247\255\250\342\245)",
TEXT_STYLE_NORMAL
},
- {
+ {
8,
20,
" \250\247\250\341\252\242\240\255\250\357 \250 \343\341\253\256\242\250\357 \255\240 \220\245\240\252\342\216\221",
@@ -738,7 +738,8 @@ static MUI_ENTRY bgBGDisplayPageEntries[] =
"\220\245\350\250\253\250 \341\342\245 \244\240 \341\254\245\255\250\342\245 \242\250\244\240 \255\240 \245\252\340\240\255\240.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 \210\247\241\245\340\245\342\245 \242\250\244\240 \255\240 \245\252\340\240\255\240 \341\352\341 \341\342\340\245\253\252\250\342\245 \255\240\243\256\340\245 \250 \255\240\244\256\253\343 \250 ",
TEXT_STYLE_NORMAL
@@ -939,6 +940,112 @@ static MUI_ENTRY bgBGSelectPartitionEntries[] =
}
};
+static MUI_ENTRY bgBGChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY bgBGConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1384,7 +1491,6 @@ static MUI_ENTRY bgBGSelectFSEntries[] =
" ENTER = \217\340\256\244\352\253\246\240\242\240\255\245 ESC = \216\342\252\240\247 F3 = \210\247\345\256\244",
TEXT_TYPE_STATUS
},
-
{
0,
0,
@@ -1705,14 +1811,14 @@ MUI_ERROR bgBGErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1779,6 +1885,10 @@ MUI_PAGE bgBGPages[] =
SELECT_PARTITION_PAGE,
bgBGSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ bgBGChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
bgBGConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/bn-BD.h b/base/setup/usetup/lang/bn-BD.h
index 03746a6c4c0..08552cc0d1b 100644
--- a/base/setup/usetup/lang/bn-BD.h
+++ b/base/setup/usetup/lang/bn-BD.h
@@ -729,7 +729,8 @@ static MUI_ENTRY bnBDDisplayPageEntries[] =
"You want to change the type of display to be installed.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Press the UP or DOWN key to select the desired display type.",
TEXT_STYLE_NORMAL
@@ -929,6 +930,112 @@ static MUI_ENTRY bnBDSelectPartitionEntries[] =
}
};
+static MUI_ENTRY bnBDChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY bnBDConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1373,7 +1480,6 @@ static MUI_ENTRY bnBDSelectFSEntries[] =
"ENTER = Continue ESC = Cancel F3 = Quit",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1546,7 +1652,7 @@ MUI_ERROR bnBDErrorEntries[] =
{
// ERROR_WARN_PARTITION,
"Setup found that at least one harddisk contains an incompatible\n"
- "partition table that can not be handled properly!\n"
+ "partition table that cannot be handled properly!\n"
"\n"
"Creating or deleting partitions can destroy the partition table.\n"
"\n"
@@ -1556,15 +1662,15 @@ MUI_ERROR bnBDErrorEntries[] =
},
{
// ERROR_NEW_PARTITION,
- "You can not create a new Partition inside\n"
- "of an already existing Partition!\n"
+ "You cannot create a new partition inside\n"
+ "of an already existing partition!\n"
"\n"
" * Press any key to continue.",
NULL
},
{
// ERROR_DELETE_SPACE,
- "You can not delete unpartitioned disk space!\n"
+ "You cannot delete unpartitioned disk space!\n"
"\n"
" * Press any key to continue.",
NULL
@@ -1692,14 +1798,14 @@ MUI_ERROR bnBDErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1766,6 +1872,10 @@ MUI_PAGE bnBDPages[] =
SELECT_PARTITION_PAGE,
bnBDSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ bnBDChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
bnBDConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/cs-CZ.h b/base/setup/usetup/lang/cs-CZ.h
index 4d3a719129f..83fd41c742b 100644
--- a/base/setup/usetup/lang/cs-CZ.h
+++ b/base/setup/usetup/lang/cs-CZ.h
@@ -738,7 +738,8 @@ static MUI_ENTRY csCZDisplayPageEntries[] =
"Chcete zm\330nit typ obrazovky, kter\240 bude nainstalov\240na.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Po\247adovan\354 typ obrazovky zvolte pomoc\241 \347ipek nahoru a dol\205.",
TEXT_STYLE_NORMAL
@@ -938,6 +939,112 @@ static MUI_ENTRY csCZSelectPartitionEntries[] =
}
};
+static MUI_ENTRY csCZChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY csCZConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1382,7 +1489,6 @@ static MUI_ENTRY csCZSelectFSEntries[] =
"ENTER = Pokra\237ovat ESC = Zru\347it F3 = Ukon\237it",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1775,6 +1881,10 @@ MUI_PAGE csCZPages[] =
SELECT_PARTITION_PAGE,
csCZSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ csCZChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
csCZConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/da-DK.h b/base/setup/usetup/lang/da-DK.h
index e33dad89cf4..fb0ef679270 100644
--- a/base/setup/usetup/lang/da-DK.h
+++ b/base/setup/usetup/lang/da-DK.h
@@ -466,7 +466,7 @@ static MUI_ENTRY daDKRepairPageEntries[] =
"underst\233tter den ikke alle funtionerne i et fult brugbart",
TEXT_STYLE_NORMAL
},
- {
+ {
6,
10,
"installationsprogram.",
@@ -945,6 +945,112 @@ static MUI_ENTRY daDKSelectPartitionEntries[] =
}
};
+static MUI_ENTRY daDKChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY daDKConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1389,7 +1495,6 @@ static MUI_ENTRY daDKSelectFSEntries[] =
"ENTER = Forts\221t ESC = Annuller F3 = Afslut",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1783,6 +1888,10 @@ MUI_PAGE daDKPages[] =
SELECT_PARTITION_PAGE,
daDKSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ daDKChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
daDKConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/de-DE.h b/base/setup/usetup/lang/de-DE.h
index 08f8a3dd4ea..31157330d1e 100644
--- a/base/setup/usetup/lang/de-DE.h
+++ b/base/setup/usetup/lang/de-DE.h
@@ -732,7 +732,8 @@ static MUI_ENTRY deDEDisplayPageEntries[] =
"Sie wollen den zu installierenden Bildschirmtyp \204ndern.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Benutzen Sie die PFEILTASTEN, um den gew\201nschten",
TEXT_STYLE_NORMAL
@@ -926,6 +927,112 @@ static MUI_ENTRY deDESelectPartitionEntries[] =
}
};
+static MUI_ENTRY deDEChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY deDEConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1376,7 +1483,6 @@ static MUI_ENTRY deDESelectFSEntries[] =
"EINGABETASTE = Fortfahren ESC = Zur\201ck F3 = Installation abbrechen",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1772,6 +1878,10 @@ MUI_PAGE deDEPages[] =
SELECT_PARTITION_PAGE,
deDESelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ deDEChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
deDEConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/el-GR.h b/base/setup/usetup/lang/el-GR.h
index 69e5baaf6bc..890232f5f6f 100644
--- a/base/setup/usetup/lang/el-GR.h
+++ b/base/setup/usetup/lang/el-GR.h
@@ -738,12 +738,14 @@ static MUI_ENTRY elGRDisplayPageEntries[] =
"\207\342\242\234\253\234 \244\230 \230\242\242\341\245\234\253\234 \253\246\244 \253\347\247\246 \253\236\252 \234\243\255\341\244\240\251\236\252 \247\246\254 \237\230 \234\232\241\230\253\230\251\253\230\237\234\345.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 \217\230\253\343\251\253\234 \253\246 \247\242\343\241\253\250\246 \217\200\214\227 \343 \211\200\222\227 \232\240\230 \244\230 \234\247\240\242\342\245\234\253\234 \253\246\244 \234\247\240\237\254\243\236\253\346.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
11,
" \253\347\247\246 \234\243\255\341\244\240\251\236\252.",
TEXT_STYLE_NORMAL
@@ -944,6 +946,112 @@ static MUI_ENTRY elGRSelectPartitionEntries[] =
}
};
+static MUI_ENTRY elGRChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY elGRConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1400,7 +1508,6 @@ static MUI_ENTRY elGRSelectFSEntries[] =
" ENTER = \221\254\244\342\256\234\240\230 ESC = \200\241\347\250\340\251\236 F3 = \200\247\246\256\351\250\236\251\236",
TEXT_TYPE_STATUS
},
-
{
0,
0,
@@ -1711,14 +1818,14 @@ MUI_ERROR elGRErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1785,6 +1892,10 @@ MUI_PAGE elGRPages[] =
SELECT_PARTITION_PAGE,
elGRSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ elGRChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
elGRConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/en-US.h b/base/setup/usetup/lang/en-US.h
index 1ddbbad1582..aedc8f94420 100644
--- a/base/setup/usetup/lang/en-US.h
+++ b/base/setup/usetup/lang/en-US.h
@@ -730,7 +730,8 @@ static MUI_ENTRY enUSDisplayPageEntries[] =
"You want to change the type of display to be installed.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Press the UP or DOWN key to select the desired display type.",
TEXT_STYLE_NORMAL
@@ -930,6 +931,112 @@ static MUI_ENTRY enUSSelectPartitionEntries[] =
}
};
+static MUI_ENTRY enUSChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY enUSConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1374,7 +1481,6 @@ static MUI_ENTRY enUSSelectFSEntries[] =
"ENTER = Continue ESC = Cancel F3 = Quit",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1547,7 +1653,7 @@ MUI_ERROR enUSErrorEntries[] =
{
// ERROR_WARN_PARTITION,
"Setup found that at least one harddisk contains an incompatible\n"
- "partition table that can not be handled properly!\n"
+ "partition table that cannot be handled properly!\n"
"\n"
"Creating or deleting partitions can destroy the partition table.\n"
"\n"
@@ -1557,15 +1663,15 @@ MUI_ERROR enUSErrorEntries[] =
},
{
// ERROR_NEW_PARTITION,
- "You can not create a new Partition inside\n"
- "of an already existing Partition!\n"
+ "You cannot create a new partition inside\n"
+ "of an already existing partition!\n"
"\n"
" * Press any key to continue.",
NULL
},
{
// ERROR_DELETE_SPACE,
- "You can not delete unpartitioned disk space!\n"
+ "You cannot delete unpartitioned disk space!\n"
"\n"
" * Press any key to continue.",
NULL
@@ -1693,14 +1799,14 @@ MUI_ERROR enUSErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1767,6 +1873,10 @@ MUI_PAGE enUSPages[] =
SELECT_PARTITION_PAGE,
enUSSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ enUSChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
enUSConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/es-ES.h b/base/setup/usetup/lang/es-ES.h
index 57cb10c5f7c..05e827501c7 100644
--- a/base/setup/usetup/lang/es-ES.h
+++ b/base/setup/usetup/lang/es-ES.h
@@ -734,7 +734,8 @@ static MUI_ENTRY esESDisplayPageEntries[] =
"Desea modificar el tipo de pantalla a instalar.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Presione ARRIBA y ABAJO para modificar el tipo.",
TEXT_STYLE_NORMAL
@@ -935,6 +936,112 @@ static MUI_ENTRY esESSelectPartitionEntries[] =
}
};
+static MUI_ENTRY esESChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY esESConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1379,7 +1486,6 @@ static MUI_ENTRY esESSelectFSEntries[] =
" INTRO = Continuar ESC = Cancelar F3 = Salir",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1772,6 +1878,10 @@ MUI_PAGE esESPages[] =
SELECT_PARTITION_PAGE,
esESSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ esESChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
esESConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/et-EE.h b/base/setup/usetup/lang/et-EE.h
index 9173c6a8847..4dba511c70f 100644
--- a/base/setup/usetup/lang/et-EE.h
+++ b/base/setup/usetup/lang/et-EE.h
@@ -732,7 +732,8 @@ static MUI_ENTRY etEEDisplayPageEntries[] =
"Ekraani t\201\201bi muutmine.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Liigu \201les-alla, et ekraani t\201\201pi muuta.",
TEXT_STYLE_NORMAL
@@ -933,6 +934,112 @@ static MUI_ENTRY etEESelectPartitionEntries[] =
}
};
+static MUI_ENTRY etEEChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY etEEConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1377,7 +1484,6 @@ static MUI_ENTRY etEESelectFSEntries[] =
"ENTER = J\204tka ESC = Katkesta F3 = V\204lju",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1694,7 +1800,7 @@ MUI_ERROR etEEErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Vajuta mis tahes klahvi, et j\204tkata."
@@ -1768,6 +1874,10 @@ MUI_PAGE etEEPages[] =
SELECT_PARTITION_PAGE,
etEESelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ etEEChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
etEEConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/fr-FR.h b/base/setup/usetup/lang/fr-FR.h
index 3c5b2bf6d51..5fd6a1430bd 100644
--- a/base/setup/usetup/lang/fr-FR.h
+++ b/base/setup/usetup/lang/fr-FR.h
@@ -738,7 +738,8 @@ static MUI_ENTRY frFRDisplayPageEntries[] =
"Vous voulez changer le type d'\202cran \205 installer.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Appuyer sur HAUT ou BAS pour s\202lectionner le type d'\202cran.",
TEXT_STYLE_NORMAL
@@ -938,6 +939,112 @@ static MUI_ENTRY frFRSelectPartitionEntries[] =
}
};
+static MUI_ENTRY frFRChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " Installation de ReactOS " KERNEL_VERSION_STR " ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "La partition syst\212me actuelle de votre ordinateur",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "sur le disque syst\212me",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "emploie un format qui n'est pas support\202 par ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "Afin de pouvoir installer ReactOS avec succ\212s, ReactOS Setup doit changer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "la partition syst\212me actuelle par une nouvelle.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "La nouvelle partition syst\212me candidate est :",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 Pour accepter ce choix, appuyez sur ENTR\220E.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 Pour changer manuellement la partition syst\212me, appuyez sur \220CHAP",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " afin de revenir dans la liste des partitions, puis s\202lectionnez ou",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " cr\202ez une nouvelle partition syst\212me sur le disque syst\212me.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "S'il existe d'autres syst\212mes d'exploitation qui d\202pendent de la partition",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "syst\212me d'origine, vous devrez peut-\210tre les reconfigurer pour la nouvelle",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "partition syst\212me, ou bien changer la partition syst\212me vers celle",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "d'origine apr\212s la fin de l'installation de ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTR\220E = Continuer \220CHAP = Annuler",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY frFRConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1394,7 +1501,6 @@ static MUI_ENTRY frFRSelectFSEntries[] =
"ENTR\220E = Continuer \220CHAP = Annuler F3 = Quitter",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1438,7 +1544,7 @@ static MUI_ENTRY frFRDeletePartitionEntries[] =
{
0,
0,
- "L = Supprimer la Partition \220CHAP = Annuler F3 = Quitter",
+ "L = Supprimer la partition \220CHAP = Annuler F3 = Quitter",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
{
@@ -1577,8 +1683,8 @@ MUI_ERROR frFRErrorEntries[] =
},
{
// ERROR_NEW_PARTITION,
- "Vous ne pouvez cr\202er une nouvelle Partition \205 l'int\202rieur\n"
- "d'une Partition d\202j\205 existante!\n"
+ "Vous ne pouvez cr\202er une nouvelle partition \205 l'int\202rieur\n"
+ "d'une partition d\202j\205 existante!\n"
"\n"
" * Appuyer sur une touche pour continuer.",
NULL
@@ -1787,6 +1893,10 @@ MUI_PAGE frFRPages[] =
SELECT_PARTITION_PAGE,
frFRSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ frFRChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
frFRConfirmDeleteSystemPartitionEntries
@@ -1854,13 +1964,13 @@ MUI_STRING frFRStrings[] =
{STRING_PLEASEWAIT,
" Veuillez patienter..."},
{STRING_INSTALLCREATEPARTITION,
- " ENTR\220E = Installer P/E = Cr\202er Partition Primaire/\220tendue F3 = Quitter"},
+ " ENTR\220E = Installer P/E = Cr\202er partition Primaire/\220tendue F3 = Quitter"},
{STRING_INSTALLCREATELOGICAL,
- " ENTR\220E = Installer L = Cr\202er Partition Logique F3 = Quitter"},
+ " ENTR\220E = Installer L = Cr\202er partition Logique F3 = Quitter"},
{STRING_INSTALLDELETEPARTITION,
- " ENTR\220E = Installer D = Supprimer Partition F3 = Quitter"},
+ " ENTR\220E = Installer D = Supprimer partition F3 = Quitter"},
{STRING_DELETEPARTITION,
- " D = Supprimer Partition F3 = Quitter"},
+ " D = Supprimer partition F3 = Quitter"},
{STRING_PARTITIONSIZE,
"Taille de la nouvelle partition :"},
{STRING_CHOOSENEWPARTITION,
@@ -1872,15 +1982,15 @@ MUI_STRING frFRStrings[] =
{STRING_HDDSIZE,
"Veuillez entrer la taille de la nouvelle partition en m\202gaoctets."},
{STRING_CREATEPARTITION,
- " ENTR\220E = Cr\202er Partition \220CHAP = Annuler F3 = Quitter"},
+ " ENTR\220E = Cr\202er partition \220CHAP = Annuler F3 = Quitter"},
{STRING_PARTFORMAT,
- "Cette Partition sera ensuite format\202e."},
+ "Cette partition sera ensuite format\202e."},
{STRING_NONFORMATTEDPART,
"Vous avez choisi d'installer ReactOS sur une nouvelle partition."},
{STRING_NONFORMATTEDSYSTEMPART,
- "The system partition is not formatted yet."},
+ "La partition syst\212me n'est pas encore format\202e."},
{STRING_NONFORMATTEDOTHERPART,
- "The new partition is not formatted yet."},
+ "La nouvelle partition n'est pas encore format\202e."},
{STRING_INSTALLONPART,
"Setup installe ReactOS sur la partition"},
{STRING_CHECKINGPART,
diff --git a/base/setup/usetup/lang/he-IL.h b/base/setup/usetup/lang/he-IL.h
index a6550708c56..6a1bb1f7558 100644
--- a/base/setup/usetup/lang/he-IL.h
+++ b/base/setup/usetup/lang/he-IL.h
@@ -734,7 +734,8 @@ static MUI_ENTRY heILDisplayPageEntries[] =
".\217\227\232\205\216\204 \204\202\205\226\232\204 \202\205\221 \232\200 \232\205\220\231\214 \212\220\205\226\230\201",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 .\211\205\226\230\204 \204\202\205\226\232\204 \202\205\221 \232\200 \230\205\207\201\214 \211\203\213 \204\210\216\214 \205\200 \204\214\222\216\214 \214\222 \225\207\214",
TEXT_STYLE_NORMAL
@@ -934,6 +935,112 @@ static MUI_ENTRY heILSelectPartitionEntries[] =
}
};
+static MUI_ENTRY heILChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY heILConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1378,7 +1485,6 @@ static MUI_ENTRY heILSelectFSEntries[] =
"\204\220\227\232\204 \214\205\210\211\201 = F3 \214\205\210\211\201 = ESC \212\231\216\204 = ENTER",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1769,6 +1875,10 @@ MUI_PAGE heILPages[] =
SELECT_PARTITION_PAGE,
heILSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ heILChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
heILConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/it-IT.h b/base/setup/usetup/lang/it-IT.h
index 15e369997b5..88a22312d6d 100644
--- a/base/setup/usetup/lang/it-IT.h
+++ b/base/setup/usetup/lang/it-IT.h
@@ -729,7 +729,8 @@ static MUI_ENTRY itITDisplayPageEntries[] =
"Desidera modificare il tipo di schermo.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Premere i tasti SU e GI\xEB per modificare il tipo.",
TEXT_STYLE_NORMAL
@@ -929,6 +930,112 @@ static MUI_ENTRY itITSelectPartitionEntries[] =
}
};
+static MUI_ENTRY itITChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY itITConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1379,7 +1486,6 @@ static MUI_ENTRY itITSelectFSEntries[] =
" INVIO = Continua ESC = Annulla F3 = Termina",
TEXT_TYPE_STATUS
},
-
{
0,
0,
@@ -1772,6 +1878,10 @@ MUI_PAGE itITPages[] =
SELECT_PARTITION_PAGE,
itITSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ itITChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
itITConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/ja-JP.h b/base/setup/usetup/lang/ja-JP.h
index c1408ad5b65..35e2584e691 100644
--- a/base/setup/usetup/lang/ja-JP.h
+++ b/base/setup/usetup/lang/ja-JP.h
@@ -732,7 +732,8 @@ static MUI_ENTRY jaJPDisplayPageEntries[] =
"\262\335\275\304\260\331 \273\332\331 \303\336\250\275\314\337\332\262\311 \274\255\331\262\246 \315\335\272\263 \275\331 \272\304\266\336 \276\335\300\270 \273\332\317\274\300\241",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 UP \323\274\270\312 DOWN \267\260\246 \265\274\303 \303\267\275\331 \303\336\250\275\314\337\332\262\311 \274\255\331\262\246 \276\335\300\270 \274\303 \270\300\336\273\262\241",
TEXT_STYLE_NORMAL
@@ -933,6 +934,112 @@ static MUI_ENTRY jaJPSelectPartitionEntries[] =
}
};
+static MUI_ENTRY jaJPChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY jaJPConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1377,7 +1484,6 @@ static MUI_ENTRY jaJPSelectFSEntries[] =
"ENTER = \277\336\257\272\263 ESC = \267\254\335\276\331 F3 = \301\255\263\274",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1696,14 +1802,14 @@ MUI_ERROR jaJPErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1770,6 +1876,10 @@ MUI_PAGE jaJPPages[] =
SELECT_PARTITION_PAGE,
jaJPSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ jaJPChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
jaJPConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/lt-LT.h b/base/setup/usetup/lang/lt-LT.h
index f3c3bdf4e74..4590770fe97 100644
--- a/base/setup/usetup/lang/lt-LT.h
+++ b/base/setup/usetup/lang/lt-LT.h
@@ -741,7 +741,8 @@ static MUI_ENTRY ltLTDisplayPageEntries[] =
"You want to change the type of display to be installed.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Press the UP or DOWN key to select the desired display type.",
TEXT_STYLE_NORMAL
@@ -941,6 +942,112 @@ static MUI_ENTRY ltLTSelectPartitionEntries[] =
}
};
+static MUI_ENTRY ltLTChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY ltLTConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1385,7 +1492,6 @@ static MUI_ENTRY ltLTSelectFSEntries[] =
"ENTER = T\322sti ESC = At\325aukti F3 = Baigti",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1558,7 +1664,7 @@ MUI_ERROR ltLTErrorEntries[] =
{
// ERROR_WARN_PARTITION,
"Setup found that at least one harddisk contains an incompatible\n"
- "partition table that can not be handled properly!\n"
+ "partition table that cannot be handled properly!\n"
"\n"
"Creating or deleting partitions can destroy the partition table.\n"
"\n"
@@ -1568,15 +1674,15 @@ MUI_ERROR ltLTErrorEntries[] =
},
{
// ERROR_NEW_PARTITION,
- "You can not create a new Partition inside\n"
- "of an already existing Partition!\n"
+ "You cannot create a new partition inside\n"
+ "of an already existing partition!\n"
"\n"
" * Press any key to continue.",
NULL
},
{
// ERROR_DELETE_SPACE,
- "You can not delete unpartitioned disk space!\n"
+ "You cannot delete unpartitioned disk space!\n"
"\n"
" * Press any key to continue.",
NULL
@@ -1704,14 +1810,14 @@ MUI_ERROR ltLTErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1778,6 +1884,10 @@ MUI_PAGE ltLTPages[] =
SELECT_PARTITION_PAGE,
ltLTSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ ltLTChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
ltLTConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/ms-MY.h b/base/setup/usetup/lang/ms-MY.h
index 67ac883ae42..9b4ea9a90dc 100644
--- a/base/setup/usetup/lang/ms-MY.h
+++ b/base/setup/usetup/lang/ms-MY.h
@@ -729,7 +729,8 @@ static MUI_ENTRY msMYDisplayPageEntries[] =
"Anda ingin tukar jenis paparan untuk dipasang.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Tekan kekunci UP atau DOWN untuk memilih",
TEXT_STYLE_NORMAL
@@ -923,6 +924,206 @@ static MUI_ENTRY msMYSelectPartitionEntries[] =
}
};
+static MUI_ENTRY msMYChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
+static MUI_ENTRY msMYConfirmDeleteSystemPartitionEntries[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "You have chosen to delete the system partition.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 10,
+ "System partitions can contain diagnostic programs, hardware configuration",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 11,
+ "programs, programs to start an operating system (like ReactOS) or other",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "programs provided by the hardware manufacturer.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 14,
+ "Delete a system partition only when you are sure that there are no such",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 15,
+ "programs on the partition, or when you are sure you want to delete them.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "When you delete the partition, you might not be able to boot the",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 17,
+ "computer from the harddisk until you finished the ReactOS Setup.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 20,
+ "\x07 Press ENTER to delete the system partition. You will be asked",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 21,
+ " to confirm the deletion of the partition again later.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 24,
+ "\x07 Press ESC to return to the previous page. The partition will",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ " not be deleted.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER=Continue ESC=Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY msMYFormatPartitionEntries[] =
{
{
@@ -1273,7 +1474,6 @@ static MUI_ENTRY msMYSelectFSEntries[] =
"ENTER = Teruskan ESC = Batal F3 = Keluar",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1659,6 +1859,14 @@ MUI_PAGE msMYPages[] =
SELECT_PARTITION_PAGE,
msMYSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ msMYChangeSystemPartition
+ },
+ {
+ CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
+ msMYConfirmDeleteSystemPartitionEntries
+ },
{
SELECT_FILE_SYSTEM_PAGE,
msMYSelectFSEntries
diff --git a/base/setup/usetup/lang/nl-NL.h b/base/setup/usetup/lang/nl-NL.h
index 076240d56e0..55624d32e4e 100644
--- a/base/setup/usetup/lang/nl-NL.h
+++ b/base/setup/usetup/lang/nl-NL.h
@@ -945,6 +945,112 @@ static MUI_ENTRY nlNLSelectPartitionEntries[] =
}
};
+static MUI_ENTRY nlNLChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY nlNLConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1389,7 +1495,6 @@ static MUI_ENTRY nlNLSelectFSEntries[] =
"ENTER = Doorgaan ESC = Annuleren F3 = Afsluiten",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1718,14 +1823,14 @@ MUI_ERROR nlNLErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1792,6 +1897,10 @@ MUI_PAGE nlNLPages[] =
SELECT_PARTITION_PAGE,
nlNLSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ nlNLChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
nlNLConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/pl-PL.h b/base/setup/usetup/lang/pl-PL.h
index d4d77483dc8..fb5f1e7b1cb 100644
--- a/base/setup/usetup/lang/pl-PL.h
+++ b/base/setup/usetup/lang/pl-PL.h
@@ -741,7 +741,8 @@ static MUI_ENTRY plPLDisplayPageEntries[] =
"Chcesz zmieni\206 rozdzielczo\230\206 monitora.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 U\276ywaj\245c klawiszy G\340RA lub D\340\235, wybierz rozdzielczo\230\206 i llo\230\206",
TEXT_STYLE_NORMAL
@@ -941,6 +942,112 @@ static MUI_ENTRY plPLSelectPartitionEntries[] =
}
};
+static MUI_ENTRY plPLChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY plPLConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1385,7 +1492,6 @@ static MUI_ENTRY plPLSelectFSEntries[] =
"ENTER = Kontynuacja ESC = Anulowanie F3 = Wyj\230cie",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1778,6 +1884,10 @@ MUI_PAGE plPLPages[] =
SELECT_PARTITION_PAGE,
plPLSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ plPLChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
plPLConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/pt-BR.h b/base/setup/usetup/lang/pt-BR.h
index d19033fadd0..721df7ed588 100644
--- a/base/setup/usetup/lang/pt-BR.h
+++ b/base/setup/usetup/lang/pt-BR.h
@@ -738,7 +738,8 @@ static MUI_ENTRY ptBRDisplayPageEntries[] =
"A lista a seguir mostra os tipos de v\241deo dispon\241veis para instala\207\306o.",
TEXT_STYLE_NORMAL
},
- { 6,
+ {
+ 6,
10,
"Use as teclas SETA PARA CIMA e SETA PARA BAIXO para selecionar",
TEXT_STYLE_NORMAL
@@ -945,6 +946,112 @@ static MUI_ENTRY ptBRSelectPartitionEntries[] =
}
};
+static MUI_ENTRY ptBRChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY ptBRConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1401,7 +1508,6 @@ static MUI_ENTRY ptBRSelectFSEntries[] =
"ENTER=Continuar ESC=Cancelar F3=Sair",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1726,14 +1832,14 @@ MUI_ERROR ptBRErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1800,6 +1906,10 @@ MUI_PAGE ptBRPages[] =
SELECT_PARTITION_PAGE,
ptBRSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ ptBRChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
ptBRConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/pt-PT.h b/base/setup/usetup/lang/pt-PT.h
index 68d5a0b9d22..bd08cc81855 100644
--- a/base/setup/usetup/lang/pt-PT.h
+++ b/base/setup/usetup/lang/pt-PT.h
@@ -57,7 +57,7 @@ static MUI_ENTRY ptPTLanguagePageEntries[] =
"\x07 Por favor, seleccione o idioma a ser utilizado durante a instala\207\306o.",
TEXT_STYLE_NORMAL
},
- {
+ {
8,
11,
"\x07 O idioma seleccionado ser\240 o idioma padr\306o do sistema.",
@@ -738,7 +738,8 @@ static MUI_ENTRY ptPTDisplayPageEntries[] =
"A lista a seguir mostra os tipos de v\241deo dispon\241veis para instala\207\306o.",
TEXT_STYLE_NORMAL
},
- { 6,
+ {
+ 6,
10,
"Use as teclas SETA PARA CIMA e SETA PARA BAIXO para seleccionar",
TEXT_STYLE_NORMAL
@@ -945,6 +946,112 @@ static MUI_ENTRY ptPTSelectPartitionEntries[] =
}
};
+static MUI_ENTRY ptPTChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY ptPTConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1401,7 +1508,6 @@ static MUI_ENTRY ptPTSelectFSEntries[] =
"ENTER=Continuar ESC=Cancelar F3=Sair",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1711,14 +1817,14 @@ MUI_ERROR ptPTErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1785,6 +1891,10 @@ MUI_PAGE ptPTPages[] =
SELECT_PARTITION_PAGE,
ptPTSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ ptPTChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
ptPTConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/ro-RO.h b/base/setup/usetup/lang/ro-RO.h
index 8a1c5f2135b..8bd56a5a121 100644
--- a/base/setup/usetup/lang/ro-RO.h
+++ b/base/setup/usetup/lang/ro-RO.h
@@ -764,7 +764,8 @@ static MUI_ENTRY roRODisplayPageEntries[] =
"Dori\376i modificarea parametrilor grafici de afi\272are?",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Utiliza\376i tastele SUS/JOS pentru a selecta",
TEXT_STYLE_NORMAL
@@ -964,6 +965,112 @@ static MUI_ENTRY roROSelectPartitionEntries[] =
}
};
+static MUI_ENTRY roROChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY roROConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1408,7 +1515,6 @@ static MUI_ENTRY roROSelectFSEntries[] =
"ENTER = Continuare ESC = Anulare F3 = Ie\272ire",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1816,6 +1922,10 @@ MUI_PAGE roROPages[] =
SELECT_PARTITION_PAGE,
roROSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ roROChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
roROConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/ru-RU.h b/base/setup/usetup/lang/ru-RU.h
index 75e9f1e92df..16b53c9aaa2 100644
--- a/base/setup/usetup/lang/ru-RU.h
+++ b/base/setup/usetup/lang/ru-RU.h
@@ -750,7 +750,8 @@ static MUI_ENTRY ruRUDisplayPageEntries[] =
"\202\353 \345\256\342\250\342\245 \250\247\254\245\255\250\342\354 \343\341\342\240\255\240\242\253\250\242\240\245\254\353\251 \342\250\257 \355\252\340\240\255\240.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 \215\240\246\254\250\342\245 \252\253\240\242\250\350\250 \202\202\205\220\225 \250\253\250 \202\215\210\207 \244\253\357 \242\353\241\256\340\240 \342\250\257\240 \355\252\340\240\255\240.",
TEXT_STYLE_NORMAL
@@ -950,6 +951,112 @@ static MUI_ENTRY ruRUSelectPartitionEntries[] =
}
};
+static MUI_ENTRY ruRUChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY ruRUConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1394,7 +1501,6 @@ static MUI_ENTRY ruRUSelectFSEntries[] =
"ENTER = \217\340\256\244\256\253\246\250\342\354 ESC = \216\342\254\245\255\240 F3 = \202\353\345\256\244",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1787,6 +1893,10 @@ MUI_PAGE ruRUPages[] =
SELECT_PARTITION_PAGE,
ruRUSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ ruRUChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
ruRUConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/sk-SK.h b/base/setup/usetup/lang/sk-SK.h
index 1462032784d..412c3750388 100644
--- a/base/setup/usetup/lang/sk-SK.h
+++ b/base/setup/usetup/lang/sk-SK.h
@@ -738,7 +738,8 @@ static MUI_ENTRY skSKDisplayPageEntries[] =
"Chcete zmeni\234 typ monitora, ktor\354 m\240 by\234 nain\347talovan\354.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Stla\237te kl\240ves HORE alebo DOLE pre v\354ber po\247adovan\202ho typu monitora.",
TEXT_STYLE_NORMAL
@@ -939,6 +940,112 @@ static MUI_ENTRY skSKSelectPartitionEntries[] =
}
};
+static MUI_ENTRY skSKChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY skSKConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1383,7 +1490,6 @@ static MUI_ENTRY skSKSelectFSEntries[] =
"ENTER = Pokra\237ova\234 ESC = Zru\347i\234 F3 = Skon\237i\234",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1705,14 +1811,14 @@ MUI_ERROR skSKErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1779,6 +1885,10 @@ MUI_PAGE skSKPages[] =
SELECT_PARTITION_PAGE,
skSKSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ skSKChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
skSKConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/sq-AL.h b/base/setup/usetup/lang/sq-AL.h
index 98bd309e0e5..0964ea34e13 100644
--- a/base/setup/usetup/lang/sq-AL.h
+++ b/base/setup/usetup/lang/sq-AL.h
@@ -736,7 +736,8 @@ static MUI_ENTRY sqALDisplayPageEntries[] =
"Ju deshironi t\211 ndryshoje llojin e ekranit p\211r t\211 instaluar.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Klikoni butonat UP aso DOWN p\211r t\211 p\211rzgjedhur tipin e ekranin t\211 d\211shiruar.",
TEXT_STYLE_NORMAL
@@ -937,6 +938,112 @@ static MUI_ENTRY sqALSelectPartitionEntries[] =
}
};
+static MUI_ENTRY sqALChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY sqALConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1381,7 +1488,6 @@ static MUI_ENTRY sqALSelectFSEntries[] =
"ENTER = Vazhdo ESC = Anulo F3 = Dil",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1706,14 +1812,14 @@ MUI_ERROR sqALErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1780,6 +1886,10 @@ MUI_PAGE sqALPages[] =
SELECT_PARTITION_PAGE,
sqALSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ sqALChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
sqALConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/sv-SE.h b/base/setup/usetup/lang/sv-SE.h
index 0b392550fd7..09b89b172bd 100644
--- a/base/setup/usetup/lang/sv-SE.h
+++ b/base/setup/usetup/lang/sv-SE.h
@@ -738,7 +738,8 @@ static MUI_ENTRY svSEDisplayPageEntries[] =
"\216ndra vilken typ av bildsk\204rmsinst\204llning som ska installeras.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 Anv\204nd UPP- och NED-piltangenterna f\224r att v\204lja \224nskad inst\204llning.",
TEXT_STYLE_NORMAL
@@ -939,6 +940,112 @@ static MUI_ENTRY svSESelectPartitionEntries[] =
}
};
+static MUI_ENTRY svSEChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY svSEConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1383,7 +1490,6 @@ static MUI_ENTRY svSESelectFSEntries[] =
" ENTER = Forts\204tt ESC = Avbryt F3 = Avsluta",
TEXT_TYPE_STATUS
},
-
{
0,
0,
@@ -1702,14 +1808,14 @@ MUI_ERROR svSEErrorEntries[] =
},
{
// ERROR_PARTITION_TABLE_FULL,
- "You can not create a new primary or extended partition in the\n"
+ "You cannot create a new primary or extended partition in the\n"
"partition table of this disk because the partition table is full.\n"
"\n"
" * Press any key to continue."
},
{
// ERROR_ONLY_ONE_EXTENDED,
- "You can not create more than one extended partition per disk.\n"
+ "You cannot create more than one extended partition per disk.\n"
"\n"
" * Press any key to continue."
},
@@ -1776,6 +1882,10 @@ MUI_PAGE svSEPages[] =
SELECT_PARTITION_PAGE,
svSESelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ svSEChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
svSEConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/tr-TR.h b/base/setup/usetup/lang/tr-TR.h
index 5fad4675b9b..49672aa5275 100644
--- a/base/setup/usetup/lang/tr-TR.h
+++ b/base/setup/usetup/lang/tr-TR.h
@@ -729,7 +729,8 @@ static MUI_ENTRY trTRDisplayPageEntries[] =
"Kurulum yap\215lacak g\224r\201nt\201n\201n t\201r\201n\201 se\207mek isteyebilirsiniz.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 \230stenen g\224r\201nt\201 t\201r\201n\201 se\207mek i\207in YUKARI'ya veya A\236A\246I'ya bas\215n\215z.",
TEXT_STYLE_NORMAL
@@ -923,6 +924,112 @@ static MUI_ENTRY trTRSelectPartitionEntries[] =
}
};
+static MUI_ENTRY trTRChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 21,
+ "The new candidate system partition is:",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 25,
+ "\x07 To accept this choice, press ENTER.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 27,
+ "\x07 To manually change the system partition, press ESC to go back to",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 28,
+ " the partition selection list, then select or create a new system",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 8,
+ 29,
+ " partition on the system disk.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 32,
+ "In case there are other operating systems that depend on the original",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 33,
+ "system partition, you may need to either reconfigure them for the new",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 34,
+ "system partition, or you may need to change the system partition back",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 35,
+ "to the original one after finishing the installation of ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 0,
+ 0,
+ "ENTER = Continue ESC = Cancel",
+ TEXT_TYPE_STATUS | TEXT_PADDING_BIG
+ },
+ {
+ 0,
+ 0,
+ NULL,
+ 0
+ }
+};
+
static MUI_ENTRY trTRConfirmDeleteSystemPartitionEntries[] =
{
{
@@ -1355,7 +1462,6 @@ static MUI_ENTRY trTRSelectFSEntries[] =
"ENTER = S\201rd\201r ESC = \230ptal F3 = \200\215k",
TEXT_TYPE_STATUS | TEXT_PADDING_BIG
},
-
{
0,
0,
@@ -1748,6 +1854,10 @@ MUI_PAGE trTRPages[] =
SELECT_PARTITION_PAGE,
trTRSelectPartitionEntries
},
+ {
+ CHANGE_SYSTEM_PARTITION,
+ trTRChangeSystemPartition
+ },
{
CONFIRM_DELETE_SYSTEM_PARTITION_PAGE,
trTRConfirmDeleteSystemPartitionEntries
diff --git a/base/setup/usetup/lang/uk-UA.h b/base/setup/usetup/lang/uk-UA.h
index 4d12092d41b..61c81ca4572 100644
--- a/base/setup/usetup/lang/uk-UA.h
+++ b/base/setup/usetup/lang/uk-UA.h
@@ -737,7 +737,8 @@ static MUI_ENTRY ukUADisplayPageEntries[] =
"\222\343\342 \242\250 \254\256\246\245\342\245 \247\254i\255\250\342\250 \342\250\257 \245\252\340\240\255\343.",
TEXT_STYLE_NORMAL
},
- { 8,
+ {
+ 8,
10,
"\x07 \215\240\342\250\341\252\240\251\342\245 \252\253\240\242i\350i \202\202\205\220\225 \342\240 \202\215\210\207 \244\253\357 \242\250\241\256\340\343 \257\256\342\340i\241\255\256\243\256 \342\250\257\343 \254\256\255i\342\256\340\343",
TEXT_STYLE_NORMAL
@@ -938,6 +939,112 @@ static MUI_ENTRY ukUASelectPartitionEntries[] =
}
};
+static MUI_ENTRY ukUAChangeSystemPartition[] =
+{
+ {
+ 4,
+ 3,
+ " ReactOS " KERNEL_VERSION_STR " Setup ",
+ TEXT_STYLE_UNDERLINE
+ },
+ {
+ 6,
+ 8,
+ "The current system partition of your computer",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 12,
+ "on the system disk",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 16,
+ "uses a format not supported by ReactOS.",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 18,
+ "In order to successfully install ReactOS, the Setup program must change",
+ TEXT_STYLE_NORMAL
+ },
+ {
+ 6,
+ 19,
+ "the current system partition to a new one.",
+ TEXT_STYLE_NORMAL
+ },
... 334 lines suppressed ...
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=626c654a1028de572ae67…
commit 626c654a1028de572ae6703295593b1ff9677558
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Aug 25 01:32:46 2019 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Aug 25 02:38:52 2019 +0200
[SETUPLIB][USETUP] Code simplifications & fixes.
SETUPLIB:
=========
- Remove useless HiddenSectors member in PARTENTRY structure.
- InsertDiskRegion() helper returns a BOOLEAN success.
- CreateInsertBlankRegion() helper sets LogicalPartition.
- Simplify the InitializePartitionEntry() helper so that its PartEntry
parameter is clearly the one that is being initialized (i.e. converted
from a blank region to) an actual partition, and use the helper
CreateInsertBlankRegion(). The calculations for the StartSector and
SectorCount are exactly equivalent with the old version of this
function. Also make it return a BOOLEAN success instead.
+ Add some extra validation checks.
+ Adjust CreatePrimaryPartition(), CreateExtendedPartition() and
CreateLogicalPartition() in this regard.
- Better handling of "RAW"-mounted partitions: treat them as
"Unformatted" only if they are RAW *AND* their PartitionType is one of
those associated with FAT file-system. Otherwise we cannot decide
whether they are indeed unformatted or have an unknown file-system on
them, therefore treat them as the latter.
In this regard, the IsSupportedActivePartition() helper should not
look for FileSystem == RAW but instead only look whether the partition
is Unformatted.
This should help with situations similar to the one described in CORE-16274
where a partition with a genuine file-system but not recognized by
ReactOS (because we currently do not have the EXT2/3/4 filesystem
driver loaded during 1st-stage setup due to commit 5a650f6b) and
therefore mounted as RAW, was thought to be unformatted.
USETUP:
=======
- Use the "global" SystemPartition pointer: this is the "system"
partition we will actually use. It can be different from the actual
one of the computer, for example when we install ReactOS on a
removable disk. This allows also to simplify the code.
- Remove the single-used DestinationDriveLetter variable.
- Remove BuildInstallPaths() helper and use InitDestinationPaths()
directly instead.
- Always mention the disk where the partition being formatted is.
- Cleanup old code comments, add assertions here & there...
---
base/setup/lib/utils/partlist.c | 276 ++++++++++++++++++++++++----------------
base/setup/lib/utils/partlist.h | 14 +-
base/setup/usetup/usetup.c | 131 +++++++++----------
3 files changed, 237 insertions(+), 184 deletions(-)
diff --git a/base/setup/lib/utils/partlist.c b/base/setup/lib/utils/partlist.c
index 1930748ab80..19b49a6a9b0 100644
--- a/base/setup/lib/utils/partlist.c
+++ b/base/setup/lib/utils/partlist.c
@@ -748,7 +748,7 @@ IsSuperFloppy(
* Of course no disk region should overlap at all with one another.
*/
static
-VOID
+BOOLEAN
InsertDiskRegion(
IN PDISKENTRY DiskEntry,
IN PPARTENTRY PartEntry,
@@ -801,7 +801,7 @@ InsertDiskRegion(
PartEntry->StartSector.QuadPart + PartEntry->SectorCount.QuadPart - 1,
PartEntry2->StartSector.QuadPart,
PartEntry2->StartSector.QuadPart + PartEntry2->SectorCount.QuadPart - 1);
- return;
+ return FALSE;
}
/* We have found the first region before which the new one has to be inserted */
@@ -810,6 +810,7 @@ InsertDiskRegion(
/* Insert the disk region */
InsertTailList(Entry, &PartEntry->ListEntry);
+ return TRUE;
}
static
@@ -834,6 +835,7 @@ CreateInsertBlankRegion(
NewPartEntry->StartSector.QuadPart = StartSector;
NewPartEntry->SectorCount.QuadPart = SectorCount;
+ NewPartEntry->LogicalPartition = LogicalSpace;
NewPartEntry->IsPartitioned = FALSE;
NewPartEntry->PartitionType = PARTITION_ENTRY_UNUSED;
NewPartEntry->FormatState = Unformatted;
@@ -850,69 +852,72 @@ CreateInsertBlankRegion(
}
static
-// BOOLEAN
-PPARTENTRY
+BOOLEAN
InitializePartitionEntry(
- IN PDISKENTRY DiskEntry,
- IN PPARTENTRY PartEntry,
+ IN OUT PPARTENTRY PartEntry,
IN ULONGLONG SectorCount,
IN BOOLEAN AutoCreate)
{
- PPARTENTRY NewPartEntry;
+ PDISKENTRY DiskEntry = PartEntry->DiskEntry;
DPRINT1("Current partition sector count: %I64u\n", PartEntry->SectorCount.QuadPart);
+ /* Fail if we try to initialize this partition entry with more sectors than what it actually contains */
+ if (SectorCount > PartEntry->SectorCount.QuadPart)
+ return FALSE;
+
+ /* Fail if the partition is already in use */
+ ASSERT(!PartEntry->IsPartitioned);
+
if ((AutoCreate != FALSE) ||
(AlignDown(PartEntry->StartSector.QuadPart + SectorCount, DiskEntry->SectorAlignment) -
PartEntry->StartSector.QuadPart == PartEntry->SectorCount.QuadPart))
{
- DPRINT1("Convert existing partition entry\n");
-
- NewPartEntry = PartEntry;
- NewPartEntry->AutoCreate = AutoCreate;
+ PartEntry->AutoCreate = AutoCreate;
}
else
{
- DPRINT1("Add new partition entry\n");
-
- /* Insert and initialize a new partition entry */
- NewPartEntry = RtlAllocateHeap(ProcessHeap,
- HEAP_ZERO_MEMORY,
- sizeof(PARTENTRY));
- if (NewPartEntry == NULL)
- return NULL;
+ ULONGLONG StartSector;
+ ULONGLONG SectorCount2;
+ PPARTENTRY NewPartEntry;
- NewPartEntry->DiskEntry = DiskEntry;
+ /* Create a partition entry that represents the remaining space after the partition to be initialized */
- NewPartEntry->StartSector.QuadPart = PartEntry->StartSector.QuadPart;
- NewPartEntry->SectorCount.QuadPart = AlignDown(NewPartEntry->StartSector.QuadPart + SectorCount, DiskEntry->SectorAlignment) -
- NewPartEntry->StartSector.QuadPart;
+ StartSector = AlignDown(PartEntry->StartSector.QuadPart + SectorCount, DiskEntry->SectorAlignment);
+ SectorCount2 = PartEntry->StartSector.QuadPart + PartEntry->SectorCount.QuadPart - StartSector;
- PartEntry->StartSector.QuadPart = NewPartEntry->StartSector.QuadPart + NewPartEntry->SectorCount.QuadPart;
- PartEntry->SectorCount.QuadPart -= (PartEntry->StartSector.QuadPart - NewPartEntry->StartSector.QuadPart);
+ NewPartEntry = CreateInsertBlankRegion(DiskEntry,
+ PartEntry->ListEntry.Flink,
+ StartSector,
+ SectorCount2,
+ PartEntry->LogicalPartition);
+ if (NewPartEntry == NULL)
+ {
+ DPRINT1("Failed to create a new empty region for disk space!\n");
+ return FALSE;
+ }
- /* Insert the new entry into the list */
- InsertTailList(&PartEntry->ListEntry, &NewPartEntry->ListEntry);
+ /* Resize down the partition entry; its StartSector remains the same */
+ PartEntry->SectorCount.QuadPart = StartSector - PartEntry->StartSector.QuadPart;
}
- /* Create entry as 'New (Unformatted)' */
- NewPartEntry->New = TRUE;
- NewPartEntry->IsPartitioned = TRUE;
+ /* Convert the partition entry to 'New (Unformatted)' */
+ PartEntry->New = TRUE;
+ PartEntry->IsPartitioned = TRUE;
- NewPartEntry->PartitionType = FileSystemToPartitionType(L"RAW", &NewPartEntry->StartSector, &NewPartEntry->SectorCount);
- ASSERT(NewPartEntry->PartitionType != PARTITION_ENTRY_UNUSED);
+ PartEntry->PartitionType = FileSystemToPartitionType(L"RAW", &PartEntry->StartSector, &PartEntry->SectorCount);
+ ASSERT(PartEntry->PartitionType != PARTITION_ENTRY_UNUSED);
- NewPartEntry->FormatState = Unformatted;
- NewPartEntry->FileSystem[0] = L'\0';
- // NewPartEntry->AutoCreate = AutoCreate;
- NewPartEntry->BootIndicator = FALSE;
- NewPartEntry->LogicalPartition = FALSE;
+ PartEntry->FormatState = Unformatted;
+ PartEntry->FileSystem[0] = L'\0';
+ // PartEntry->AutoCreate = AutoCreate;
+ PartEntry->BootIndicator = FALSE;
- DPRINT1("First Sector : %I64u\n", NewPartEntry->StartSector.QuadPart);
- DPRINT1("Last Sector : %I64u\n", NewPartEntry->StartSector.QuadPart + NewPartEntry->SectorCount.QuadPart - 1);
- DPRINT1("Total Sectors: %I64u\n", NewPartEntry->SectorCount.QuadPart);
+ DPRINT1("First Sector : %I64u\n", PartEntry->StartSector.QuadPart);
+ DPRINT1("Last Sector : %I64u\n", PartEntry->StartSector.QuadPart + PartEntry->SectorCount.QuadPart - 1);
+ DPRINT1("Total Sectors: %I64u\n", PartEntry->SectorCount.QuadPart);
- return NewPartEntry;
+ return TRUE;
}
@@ -956,7 +961,6 @@ AddPartitionToDisk(
PartEntry->BootIndicator = PartitionInfo->BootIndicator;
PartEntry->PartitionType = PartitionInfo->PartitionType;
- PartEntry->HiddenSectors = PartitionInfo->HiddenSectors;
PartEntry->LogicalPartition = LogicalPartition;
PartEntry->IsPartitioned = TRUE;
@@ -983,7 +987,7 @@ AddPartitionToDisk(
ASSERT(PartitionInfo->RecognizedPartition);
ASSERT(PartEntry->IsPartitioned && PartEntry->PartitionNumber != 0);
- /* Open the volume, ignore any errors */
+ /* Try to open the volume so as to mount it */
RtlStringCchPrintfW(PathBuffer, ARRAYSIZE(PathBuffer),
L"\\Device\\Harddisk%lu\\Partition%lu",
DiskEntry->DiskNumber,
@@ -1008,8 +1012,10 @@ AddPartitionToDisk(
DPRINT1("NtOpenFile() failed, Status 0x%08lx\n", Status);
}
- if (/* NT_SUCCESS(Status) && */ PartitionHandle)
+ if (PartitionHandle)
{
+ ASSERT(NT_SUCCESS(Status));
+
/* We don't have a FS, try to guess one */
Status = InferFileSystemByHandle(PartitionHandle,
PartEntry->PartitionType,
@@ -1020,10 +1026,54 @@ AddPartitionToDisk(
}
if (*PartEntry->FileSystem)
{
+ ASSERT(PartitionHandle);
+
+ /*
+ * Handle partition mounted with RawFS: it is
+ * either unformatted or has an unknown format.
+ */
if (wcsicmp(PartEntry->FileSystem, L"RAW") == 0)
- PartEntry->FormatState = Unformatted;
+ {
+ /*
+ * True unformatted partitions on NT are created with their
+ * partition type set to either one of the following values,
+ * and are mounted with RawFS. This is done this way since we
+ * are assured to have FAT support, which is the only FS that
+ * uses these partition types. Therefore, having a partition
+ * mounted with RawFS and with these partition types means that
+ * the FAT FS was unable to mount it beforehand and thus the
+ * partition is unformatted.
+ * However, any partition mounted by RawFS that does NOT have
+ * any of these partition types must be considered as having
+ * an unknown format.
+ */
+ if (PartEntry->PartitionType == PARTITION_FAT_12 ||
+ PartEntry->PartitionType == PARTITION_FAT_16 ||
+ PartEntry->PartitionType == PARTITION_HUGE ||
+ PartEntry->PartitionType == PARTITION_XINT13 ||
+ PartEntry->PartitionType == PARTITION_FAT32 ||
+ PartEntry->PartitionType == PARTITION_FAT32_XINT13)
+ {
+ PartEntry->FormatState = Unformatted;
+ }
+ else
+ {
+ /* Close the partition before dismounting */
+ NtClose(PartitionHandle);
+ PartitionHandle = NULL;
+ /*
+ * Dismount the partition since RawFS owns it, and set its
+ * format to unknown (may or may not be actually formatted).
+ */
+ DismountVolume(PartEntry);
+ PartEntry->FormatState = UnknownFormat;
+ PartEntry->FileSystem[0] = L'\0';
+ }
+ }
else
+ {
PartEntry->FormatState = Preformatted;
+ }
}
else
{
@@ -1056,7 +1106,7 @@ AddPartitionToDisk(
}
else
{
- /* Unknown partition, hence unknown partition format (may or may not be actually formatted) */
+ /* Unknown partition, hence unknown format (may or may not be actually formatted) */
PartEntry->FormatState = UnknownFormat;
}
@@ -1195,7 +1245,6 @@ ScanForUnpartitionedDiskSpace(
DPRINT1("Failed to create a new empty region for full extended partition space!\n");
return;
}
- NewPartEntry->LogicalPartition = TRUE;
return;
}
@@ -1236,7 +1285,6 @@ ScanForUnpartitionedDiskSpace(
DPRINT1("Failed to create a new empty region for extended partition space!\n");
return;
}
- NewPartEntry->LogicalPartition = TRUE;
}
LastStartSector = PartEntry->StartSector.QuadPart;
@@ -1269,7 +1317,6 @@ ScanForUnpartitionedDiskSpace(
DPRINT1("Failed to create a new empty region for extended partition space!\n");
return;
}
- NewPartEntry->LogicalPartition = TRUE;
}
}
}
@@ -1846,9 +1893,9 @@ CreatePartitionList(VOID)
ULONG ReturnSize;
NTSTATUS Status;
ULONG DiskNumber;
- WCHAR Buffer[MAX_PATH];
- UNICODE_STRING Name;
HANDLE FileHandle;
+ UNICODE_STRING Name;
+ WCHAR Buffer[MAX_PATH];
List = (PPARTLIST)RtlAllocateHeap(ProcessHeap,
0,
@@ -2768,37 +2815,34 @@ GetNextUnpartitionedEntry(
BOOLEAN
CreatePrimaryPartition(
IN PPARTLIST List,
- IN PPARTENTRY SelectedEntry,
+ IN OUT PPARTENTRY PartEntry,
IN ULONGLONG SectorCount,
IN BOOLEAN AutoCreate)
{
ERROR_NUMBER Error;
- PPARTENTRY PartEntry;
DPRINT1("CreatePrimaryPartition(%I64u)\n", SectorCount);
- if (List == NULL ||
- SelectedEntry == NULL ||
- SelectedEntry->DiskEntry == NULL ||
- SelectedEntry->IsPartitioned)
+ if (List == NULL || PartEntry == NULL ||
+ PartEntry->DiskEntry == NULL || PartEntry->IsPartitioned)
{
return FALSE;
}
- Error = PrimaryPartitionCreationChecks(SelectedEntry);
+ Error = PrimaryPartitionCreationChecks(PartEntry);
if (Error != NOT_AN_ERROR)
{
DPRINT1("PrimaryPartitionCreationChecks() failed with error %lu\n", Error);
return FALSE;
}
- /* Convert the current entry, or insert and initialize a new partition entry */
- PartEntry = InitializePartitionEntry(SelectedEntry->DiskEntry, SelectedEntry, SectorCount, AutoCreate);
- if (PartEntry == NULL)
+ /* Initialize the partition entry, inserting a new blank region if needed */
+ if (!InitializePartitionEntry(PartEntry, SectorCount, AutoCreate))
return FALSE;
- UpdateDiskLayout(PartEntry->DiskEntry);
+ ASSERT(PartEntry->LogicalPartition == FALSE);
+ UpdateDiskLayout(PartEntry->DiskEntry);
AssignDriveLetters(List);
return TRUE;
@@ -2830,40 +2874,37 @@ AddLogicalDiskSpace(
DPRINT1("Failed to create a new empty region for extended partition space!\n");
return;
}
- NewPartEntry->LogicalPartition = TRUE;
}
BOOLEAN
CreateExtendedPartition(
IN PPARTLIST List,
- IN PPARTENTRY SelectedEntry,
+ IN OUT PPARTENTRY PartEntry,
IN ULONGLONG SectorCount)
{
ERROR_NUMBER Error;
- PPARTENTRY PartEntry;
DPRINT1("CreateExtendedPartition(%I64u)\n", SectorCount);
- if (List == NULL ||
- SelectedEntry == NULL ||
- SelectedEntry->DiskEntry == NULL ||
- SelectedEntry->IsPartitioned)
+ if (List == NULL || PartEntry == NULL ||
+ PartEntry->DiskEntry == NULL || PartEntry->IsPartitioned)
{
return FALSE;
}
- Error = ExtendedPartitionCreationChecks(SelectedEntry);
+ Error = ExtendedPartitionCreationChecks(PartEntry);
if (Error != NOT_AN_ERROR)
{
DPRINT1("ExtendedPartitionCreationChecks() failed with error %lu\n", Error);
return FALSE;
}
- /* Convert the current entry, or insert and initialize a new partition entry */
- PartEntry = InitializePartitionEntry(SelectedEntry->DiskEntry, SelectedEntry, SectorCount, FALSE);
- if (PartEntry == NULL)
+ /* Initialize the partition entry, inserting a new blank region if needed */
+ if (!InitializePartitionEntry(PartEntry, SectorCount, FALSE))
return FALSE;
+ ASSERT(PartEntry->LogicalPartition == FALSE);
+
if (PartEntry->StartSector.QuadPart < 1450560)
{
/* Partition starts below the 8.4GB boundary ==> CHS partition */
@@ -2884,7 +2925,6 @@ CreateExtendedPartition(
AddLogicalDiskSpace(PartEntry->DiskEntry);
UpdateDiskLayout(PartEntry->DiskEntry);
-
AssignDriveLetters(List);
return TRUE;
@@ -2893,45 +2933,39 @@ CreateExtendedPartition(
BOOLEAN
CreateLogicalPartition(
IN PPARTLIST List,
- IN PPARTENTRY SelectedEntry,
+ IN OUT PPARTENTRY PartEntry,
IN ULONGLONG SectorCount,
IN BOOLEAN AutoCreate)
{
ERROR_NUMBER Error;
- PPARTENTRY PartEntry;
DPRINT1("CreateLogicalPartition(%I64u)\n", SectorCount);
- if (List == NULL ||
- SelectedEntry == NULL ||
- SelectedEntry->DiskEntry == NULL ||
- SelectedEntry->IsPartitioned)
+ if (List == NULL || PartEntry == NULL ||
+ PartEntry->DiskEntry == NULL || PartEntry->IsPartitioned)
{
return FALSE;
}
- Error = LogicalPartitionCreationChecks(SelectedEntry);
+ Error = LogicalPartitionCreationChecks(PartEntry);
if (Error != NOT_AN_ERROR)
{
DPRINT1("LogicalPartitionCreationChecks() failed with error %lu\n", Error);
return FALSE;
}
- /* Convert the current entry, or insert and initialize a new partition entry */
- PartEntry = InitializePartitionEntry(SelectedEntry->DiskEntry, SelectedEntry, SectorCount, AutoCreate);
- if (PartEntry == NULL)
+ /* Initialize the partition entry, inserting a new blank region if needed */
+ if (!InitializePartitionEntry(PartEntry, SectorCount, AutoCreate))
return FALSE;
- PartEntry->LogicalPartition = TRUE;
+ ASSERT(PartEntry->LogicalPartition == TRUE);
UpdateDiskLayout(PartEntry->DiskEntry);
-
AssignDriveLetters(List);
return TRUE;
}
-static
NTSTATUS
DismountVolume(
IN PPARTENTRY PartEntry)
@@ -2948,7 +2982,9 @@ DismountVolume(
if (!PartEntry->IsPartitioned ||
IsContainerPartition(PartEntry->PartitionType) ||
!IsRecognizedPartition(PartEntry->PartitionType) ||
- PartEntry->FormatState == Unformatted /* || PartEntry->FormatState == UnknownFormat */ ||
+ PartEntry->FormatState == UnknownFormat ||
+ // NOTE: If FormatState == Unformatted but *FileSystem != 0 this means
+ // it has been usually mounted with RawFS and thus needs to be dismounted.
!*PartEntry->FileSystem ||
PartEntry->PartitionNumber == 0)
{
@@ -3049,10 +3085,8 @@ DeletePartition(
PPARTENTRY LogicalPartEntry;
PLIST_ENTRY Entry;
- if (List == NULL ||
- PartEntry == NULL ||
- PartEntry->DiskEntry == NULL ||
- PartEntry->IsPartitioned == FALSE)
+ if (List == NULL || PartEntry == NULL ||
+ PartEntry->DiskEntry == NULL || PartEntry->IsPartitioned == FALSE)
{
return FALSE;
}
@@ -3154,13 +3188,15 @@ DeletePartition(
{
/* Nothing to merge but change the current entry */
PartEntry->IsPartitioned = FALSE;
+ PartEntry->OnDiskPartitionNumber = 0;
+ PartEntry->PartitionNumber = 0;
+ // PartEntry->PartitionIndex = 0;
+ PartEntry->BootIndicator = FALSE;
PartEntry->PartitionType = PARTITION_ENTRY_UNUSED;
PartEntry->FormatState = Unformatted;
PartEntry->FileSystem[0] = L'\0';
PartEntry->DriveLetter = 0;
- PartEntry->OnDiskPartitionNumber = 0;
- PartEntry->PartitionNumber = 0;
- // PartEntry->PartitionIndex = 0;
+ RtlZeroMemory(PartEntry->VolumeLabel, sizeof(PartEntry->VolumeLabel));
/* Optionally return the freed region */
if (FreeRegion)
@@ -3168,7 +3204,6 @@ DeletePartition(
}
UpdateDiskLayout(DiskEntry);
-
AssignDriveLetters(List);
return TRUE;
@@ -3179,6 +3214,28 @@ DeletePartition(
* On MBR disks, partition with the Active/Boot flag set;
* on GPT disks, partition with the correct GUID.
*/
+BOOLEAN
+IsPartitionActive(
+ IN PPARTENTRY PartEntry)
+{
+ // TODO: Support for GPT disks!
+
+ if (IsContainerPartition(PartEntry->PartitionType))
+ return FALSE;
+
+ /* Check if the partition is partitioned, used and active */
+ if (PartEntry->IsPartitioned &&
+ // !IsContainerPartition(PartEntry->PartitionType) &&
+ PartEntry->BootIndicator)
+ {
+ /* Yes it is */
+ ASSERT(PartEntry->PartitionType != PARTITION_ENTRY_UNUSED);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static
PPARTENTRY
GetActiveDiskPartition(
@@ -3210,17 +3267,11 @@ GetActiveDiskPartition(
{
/* Retrieve the partition */
PartEntry = CONTAINING_RECORD(ListEntry, PARTENTRY, ListEntry);
-
- // TODO: Support for GPT disks!
-
- /* Check if the partition is partitioned, used and active */
- if (PartEntry->IsPartitioned &&
- // !IsContainerPartition(PartEntry->PartitionType) &&
- PartEntry->BootIndicator)
+ if (IsPartitionActive(PartEntry))
{
- /* Yes, we found it */
+ /* Yes, we've found it */
ASSERT(DiskEntry == PartEntry->DiskEntry);
- ASSERT(PartEntry->PartitionType != PARTITION_ENTRY_UNUSED);
+ ASSERT(PartEntry->IsPartitioned);
ActivePartition = PartEntry;
@@ -3247,7 +3298,7 @@ BOOLEAN
IsSupportedActivePartition(
IN PPARTENTRY PartEntry)
{
- /* Check the type and the filesystem of this partition */
+ /* Check the type and the file system of this partition */
/*
* We do not support extended partition containers (on MBR disks) marked
@@ -3276,9 +3327,13 @@ IsSupportedActivePartition(
* NOTE also that for those architectures looking for a
* partition boot indicator is insufficient.
*/
- if ((PartEntry->FormatState == Unformatted ) ||
- (PartEntry->FormatState == Preformatted) ||
- (PartEntry->FormatState == Formatted ))
+ if (PartEntry->FormatState == Unformatted)
+ {
+ /* If this partition is mounted, it would use RawFS ("RAW") */
+ return TRUE;
+ }
+ else if ((PartEntry->FormatState == Preformatted) ||
+ (PartEntry->FormatState == Formatted))
{
ASSERT(*PartEntry->FileSystem);
@@ -3286,8 +3341,7 @@ IsSupportedActivePartition(
if (wcsicmp(PartEntry->FileSystem, L"FAT") == 0 ||
wcsicmp(PartEntry->FileSystem, L"FAT32") == 0 ||
// wcsicmp(PartEntry->FileSystem, L"NTFS") == 0 ||
- wcsicmp(PartEntry->FileSystem, L"BTRFS") == 0 ||
- wcsicmp(PartEntry->FileSystem, L"RAW") == 0)
+ wcsicmp(PartEntry->FileSystem, L"BTRFS") == 0)
{
return TRUE;
}
diff --git a/base/setup/lib/utils/partlist.h b/base/setup/lib/utils/partlist.h
index fc31cc13331..19c24e1224e 100644
--- a/base/setup/lib/utils/partlist.h
+++ b/base/setup/lib/utils/partlist.h
@@ -44,7 +44,6 @@ typedef struct _PARTENTRY
BOOLEAN BootIndicator;
UCHAR PartitionType;
- ULONG HiddenSectors;
ULONG OnDiskPartitionNumber; /* Enumerated partition number (primary partitions first, excluding the extended partition container, then the logical partitions) */
ULONG PartitionNumber; /* Current partition number, only valid for the currently running NTOS instance */
ULONG PartitionIndex; /* Index in the LayoutBuffer->PartitionEntry[] cached array of the corresponding DiskEntry */
@@ -231,6 +230,9 @@ BOOLEAN
IsSuperFloppy(
IN PDISKENTRY DiskEntry);
+BOOLEAN
+IsPartitionActive(
+ IN PPARTENTRY PartEntry);
PPARTLIST
CreatePartitionList(VOID);
@@ -294,23 +296,27 @@ GetPrevPartition(
BOOLEAN
CreatePrimaryPartition(
IN PPARTLIST List,
- IN PPARTENTRY SelectedEntry,
+ IN OUT PPARTENTRY PartEntry,
IN ULONGLONG SectorCount,
IN BOOLEAN AutoCreate);
BOOLEAN
CreateExtendedPartition(
IN PPARTLIST List,
- IN PPARTENTRY SelectedEntry,
+ IN OUT PPARTENTRY PartEntry,
IN ULONGLONG SectorCount);
BOOLEAN
CreateLogicalPartition(
IN PPARTLIST List,
- IN PPARTENTRY SelectedEntry,
+ IN OUT PPARTENTRY PartEntry,
IN ULONGLONG SectorCount,
IN BOOLEAN AutoCreate);
+NTSTATUS
+DismountVolume(
+ IN PPARTENTRY PartEntry);
+
BOOLEAN
DeletePartition(
IN PPARTLIST List,
diff --git a/base/setup/usetup/usetup.c b/base/setup/usetup/usetup.c
index 8aaf3cc5831..daf786df87d 100644
--- a/base/setup/usetup/usetup.c
+++ b/base/setup/usetup/usetup.c
@@ -46,12 +46,19 @@ BOOLEAN IsUnattendedSetup = FALSE;
static USETUP_DATA USetupData;
-/* Partition where to perform the installation */
+/* The partition where to perform the installation */
static PPARTENTRY InstallPartition = NULL;
-// static PPARTENTRY SystemPartition = NULL; // The system partition we will actually use (can be different from PartitionList->SystemPartition in case we install on removable disk)
-
-// FIXME: Is it really useful?? Just used for SetDefaultPagefile...
-static WCHAR DestinationDriveLetter;
+/*
+ * The system partition we will actually use. It can be different from
+ * PartitionList->SystemPartition in case we don't support it, or we install
+ * on a removable disk.
+ * We may indeed not support the original system partition in case we do not
+ * have write support on it. Please note that this situation is partly a HACK
+ * and MUST NEVER happen on architectures where real system partitions are
+ * mandatory (because then they are formatted in FAT FS and we support write
+ * operation on them).
+ */
+static PPARTENTRY SystemPartition = NULL;
/* OTHER Stuff *****/
@@ -1465,7 +1472,6 @@ SelectPartitionPage(PINPUT_RECORD Ir)
PartitionList = CreatePartitionList();
if (PartitionList == NULL)
{
- /* FIXME: show an error dialog */
MUIDisplayError(ERROR_DRIVE_INFORMATION, Ir, POPUP_WAIT_ENTER);
return QUIT_PAGE;
}
@@ -1784,7 +1790,7 @@ SelectPartitionPage(PINPUT_RECORD Ir)
// FIXME TODO: PartitionList->SystemPartition is not yet initialized!!!!
if (CurrentPartition == PartitionList->SystemPartition ||
- CurrentPartition->BootIndicator)
+ IsPartitionActive(CurrentPartition))
{
return CONFIRM_DELETE_SYSTEM_PARTITION_PAGE;
}
@@ -1879,7 +1885,7 @@ ShowPartitionSizeInputBox(SHORT Left,
CONSOLE_SetCursorType(TRUE, FALSE);
break;
}
- else if (Ir.Event.KeyEvent.wVirtualKeyCode == VK_ESCAPE) /* ESCAPE */
+ else if (Ir.Event.KeyEvent.wVirtualKeyCode == VK_ESCAPE) /* ESC */
{
if (Cancel != NULL)
*Cancel = TRUE;
@@ -2733,20 +2739,21 @@ SelectFileSystemPage(PINPUT_RECORD Ir)
//
return QUIT_PAGE;
}
+ SystemPartition = PartitionList->SystemPartition;
/*
* If the system partition can be created in some
* non-partitioned space, create it now.
*/
- if (!PartitionList->SystemPartition->IsPartitioned)
+ if (!SystemPartition->IsPartitioned)
{
// if (IsUnattendedSetup)
{
CreatePrimaryPartition(PartitionList,
- PartitionList->SystemPartition,
- 0LL, // PartitionList->SystemPartition->SectorCount.QuadPart,
+ SystemPartition,
+ 0LL, // SystemPartition->SectorCount.QuadPart,
TRUE);
- ASSERT(PartitionList->SystemPartition->IsPartitioned);
+ ASSERT(SystemPartition->IsPartitioned);
}
// else
{
@@ -2767,8 +2774,8 @@ SelectFileSystemPage(PINPUT_RECORD Ir)
* installation partitions.
*/
InstallPartition->NeedsCheck = TRUE;
- if (PartitionList->SystemPartition != InstallPartition)
- PartitionList->SystemPartition->NeedsCheck = TRUE;
+ if (SystemPartition != InstallPartition)
+ SystemPartition->NeedsCheck = TRUE;
/*
* In case we just repair an existing installation, or make
@@ -2782,7 +2789,7 @@ SelectFileSystemPage(PINPUT_RECORD Ir)
return CHECK_FILE_SYSTEM_PAGE;
}
- // ASSERT(PartitionList->SystemPartition->IsPartitioned);
+ // ASSERT(SystemPartition->IsPartitioned);
/* Reset the filesystem list for each partition that is to be formatted */
ResetFileSystemList();
@@ -2799,12 +2806,12 @@ SelectFileSystemPage(PINPUT_RECORD Ir)
* and start by formatting the installation partition instead.
*/
- ASSERT(PartitionList->SystemPartition->IsPartitioned);
+ ASSERT(SystemPartition->IsPartitioned);
- if ((PartitionList->SystemPartition != InstallPartition) &&
- (PartitionList->SystemPartition->FormatState == Unformatted))
+ if ((SystemPartition != InstallPartition) &&
+ (SystemPartition->FormatState == Unformatted))
{
- TempPartition = PartitionList->SystemPartition;
+ TempPartition = SystemPartition;
TempPartition->NeedsCheck = TRUE;
// TODO: Should we let the user using a custom file-system,
@@ -2819,14 +2826,14 @@ SelectFileSystemPage(PINPUT_RECORD Ir)
TempPartition = InstallPartition;
TempPartition->NeedsCheck = TRUE;
- if (PartitionList->SystemPartition != InstallPartition)
+ if (SystemPartition != InstallPartition)
{
/* The system partition is separate, so it had better be formatted! */
- ASSERT((PartitionList->SystemPartition->FormatState == Preformatted) ||
- (PartitionList->SystemPartition->FormatState == Formatted));
+ ASSERT((SystemPartition->FormatState == Preformatted) ||
+ (SystemPartition->FormatState == Formatted));
/* Require a filesystem check on the system partition too */
- PartitionList->SystemPartition->NeedsCheck = TRUE;
+ SystemPartition->NeedsCheck = TRUE;
}
FormatState = FormatInstallPartition;
@@ -2883,7 +2890,7 @@ SelectFileSystemPage(PINPUT_RECORD Ir)
default:
{
DPRINT1("FormatState: Invalid value %ld\n", FormatState);
- /* FIXME: show an error dialog */
+ ASSERT(FALSE);
return QUIT_PAGE;
}
}
@@ -2971,10 +2978,23 @@ SelectFileSystemPage(PINPUT_RECORD Ir)
break;
default:
+ ASSERT(FALSE);
break;
}
- CONSOLE_SetTextXY(6, 10, MUIGetString(STRING_PARTFORMAT));
+ CONSOLE_PrintTextXY(8, 10, MUIGetString(STRING_HDINFOPARTZEROED_1),
+ DiskEntry->DiskNumber,
+ DiskSize,
+ DiskUnit,
+ DiskEntry->Port,
+ DiskEntry->Bus,
+ DiskEntry->Id,
+ &DiskEntry->DriverName,
+ DiskEntry->DiskStyle == PARTITION_STYLE_MBR ? "MBR" :
+ DiskEntry->DiskStyle == PARTITION_STYLE_GPT ? "GPT" :
+ "RAW");
+
+ CONSOLE_SetTextXY(6, 12, MUIGetString(STRING_PARTFORMAT));
}
else
{
@@ -3108,7 +3128,7 @@ SelectFileSystemPage(PINPUT_RECORD Ir)
* filesystem checks on it, unless it is either the system
* or the installation partition.
*/
- if (TempPartition != PartitionList->SystemPartition &&
+ if (TempPartition != SystemPartition &&
TempPartition != InstallPartition)
{
PartEntry->NeedsCheck = FALSE;
@@ -3435,15 +3455,10 @@ CheckFileSystemPage(PINPUT_RECORD Ir)
else if (!NT_SUCCESS(Status))
{
DPRINT("ChkdskPartition() failed with status 0x%08lx\n", Status);
- // sprintf(Buffer, "Setup failed to verify the selected partition.\n"
- sprintf(Buffer, "ChkDsk detected some disk errors.\n"
- "(Status 0x%08lx).\n", Status);
+ sprintf(Buffer, "ChkDsk detected some disk errors.\n(Status 0x%08lx).\n", Status);
PopupError(Buffer,
- // MUIGetString(STRING_REBOOTCOMPUTER),
MUIGetString(STRING_CONTINUE),
Ir, POPUP_WAIT_ENTER);
-
- // return QUIT_PAGE;
}
PartEntry->NeedsCheck = FALSE;
@@ -3451,28 +3466,6 @@ CheckFileSystemPage(PINPUT_RECORD Ir)
}
-static NTSTATUS
-BuildInstallPaths(
- IN PCWSTR InstallDir,
- IN PPARTENTRY PartEntry)
-{
- NTSTATUS Status;
-
- Status = InitDestinationPaths(&USetupData, InstallDir, PartEntry);
-
- if (!NT_SUCCESS(Status))
- {
- DPRINT1("InitDestinationPaths() failed with status 0x%08lx\n", Status);
- return Status;
- }
-
- /* Initialize DestinationDriveLetter */
- DestinationDriveLetter = PartEntry->DriveLetter;
-
- return STATUS_SUCCESS;
-}
-
-
static BOOLEAN
IsValidPath(
IN PCWSTR InstallDir)
@@ -3563,10 +3556,10 @@ InstallDirectoryPage(PINPUT_RECORD Ir)
*/
if ((RepairUpdateFlag || IsUnattendedSetup) && IsValidPath(InstallDir))
{
- Status = BuildInstallPaths(InstallDir, InstallPartition);
+ Status = InitDestinationPaths(&USetupData, InstallDir, InstallPartition);
if (!NT_SUCCESS(Status))
{
- DPRINT1("BuildInstallPaths() failed. Status code: 0x%lx", Status);
+ DPRINT1("InitDestinationPaths() failed. Status code: 0x%lx", Status);
MUIDisplayError(ERROR_NO_BUILD_PATH, Ir, POPUP_WAIT_ENTER);
return QUIT_PAGE;
}
@@ -3667,10 +3660,10 @@ InstallDirectoryPage(PINPUT_RECORD Ir)
return INSTALL_DIRECTORY_PAGE;
}
- Status = BuildInstallPaths(InstallDir, InstallPartition);
+ Status = InitDestinationPaths(&USetupData, InstallDir, InstallPartition);
if (!NT_SUCCESS(Status))
{
- DPRINT1("BuildInstallPaths() failed. Status code: 0x%lx", Status);
+ DPRINT1("InitDestinationPaths() failed. Status code: 0x%lx", Status);
MUIDisplayError(ERROR_NO_BUILD_PATH, Ir, POPUP_WAIT_ENTER);
return QUIT_PAGE;
}
@@ -4068,7 +4061,7 @@ RegistryPage(PINPUT_RECORD Ir)
Error = UpdateRegistry(&USetupData,
RepairUpdateFlag,
PartitionList,
- DestinationDriveLetter,
+ InstallPartition->DriveLetter,
SelectedLanguageId,
RegistryStatus);
if (Error != ERROR_SUCCESS)
@@ -4114,17 +4107,17 @@ BootLoaderPage(PINPUT_RECORD Ir)
CONSOLE_SetStatusText(MUIGetString(STRING_PLEASEWAIT));
- ASSERT(PartitionList->SystemPartition->IsPartitioned && PartitionList->SystemPartition->PartitionNumber != 0);
+ ASSERT(SystemPartition->IsPartitioned && SystemPartition->PartitionNumber != 0);
RtlFreeUnicodeString(&USetupData.SystemRootPath);
RtlStringCchPrintfW(PathBuffer, ARRAYSIZE(PathBuffer),
L"\\Device\\Harddisk%lu\\Partition%lu\\",
- PartitionList->SystemPartition->DiskEntry->DiskNumber,
- PartitionList->SystemPartition->PartitionNumber);
+ SystemPartition->DiskEntry->DiskNumber,
+ SystemPartition->PartitionNumber);
RtlCreateUnicodeString(&USetupData.SystemRootPath, PathBuffer);
DPRINT1("SystemRootPath: %wZ\n", &USetupData.SystemRootPath);
- PartitionType = PartitionList->SystemPartition->PartitionType;
+ PartitionType = SystemPartition->PartitionType;
/* For unattended setup, skip MBR installation or install on floppy if needed */
if (IsUnattendedSetup)
@@ -4392,11 +4385,11 @@ BootLoaderHarddiskVbrPage(PINPUT_RECORD Ir)
Status = InstallVBRToPartition(&USetupData.SystemRootPath,
&USetupData.SourceRootPath,
&USetupData.DestinationArcPath,
- PartitionList->SystemPartition->PartitionType);
+ SystemPartition->PartitionType);
if (!NT_SUCCESS(Status))
{
MUIDisplayError(ERROR_WRITE_BOOT, Ir, POPUP_WAIT_ENTER,
- PartitionList->SystemPartition->FileSystem);
+ SystemPartition->FileSystem);
return QUIT_PAGE;
}
@@ -4429,20 +4422,20 @@ BootLoaderHarddiskMbrPage(PINPUT_RECORD Ir)
Status = InstallVBRToPartition(&USetupData.SystemRootPath,
&USetupData.SourceRootPath,
&USetupData.DestinationArcPath,
- PartitionList->SystemPartition->PartitionType);
+ SystemPartition->PartitionType);
if (!NT_SUCCESS(Status))
{
MUIDisplayError(ERROR_WRITE_BOOT, Ir, POPUP_WAIT_ENTER,
- PartitionList->SystemPartition->FileSystem);
+ SystemPartition->FileSystem);
return QUIT_PAGE;
}
/* Step 2: Write the MBR if the disk containing the system partition is not a super-floppy */
- if (!IsSuperFloppy(PartitionList->SystemPartition->DiskEntry))
+ if (!IsSuperFloppy(SystemPartition->DiskEntry))
{
RtlStringCchPrintfW(DestinationDevicePathBuffer, ARRAYSIZE(DestinationDevicePathBuffer),
L"\\Device\\Harddisk%d\\Partition0",
- PartitionList->SystemPartition->DiskEntry->DiskNumber);
+ SystemPartition->DiskEntry->DiskNumber);
Status = InstallMbrBootCodeToDisk(&USetupData.SystemRootPath,
&USetupData.SourceRootPath,
DestinationDevicePathBuffer);