Set FlagBoot = FlagEsp and deprecate it.
This commit is contained in:
parent
f4cd7dd953
commit
4080eef0ba
|
@ -216,8 +216,6 @@ QString PartitionTable::flagName(Flag f)
|
|||
return xi18nc("@item partition flag", "msft-data");
|
||||
case PartitionTable::FlagIrst:
|
||||
return xi18nc("@item partition flag", "irst");
|
||||
case PartitionTable::FlagEsp:
|
||||
return xi18nc("@item partition flag", "esp");
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -247,7 +245,6 @@ const QList<PartitionTable::Flag> PartitionTable::flagList()
|
|||
rval.append(PartitionTable::FlagLegacyBoot);
|
||||
rval.append(PartitionTable::FlagMsftData);
|
||||
rval.append(PartitionTable::FlagIrst);
|
||||
rval.append(PartitionTable::FlagEsp);
|
||||
|
||||
return rval;
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ public:
|
|||
FlagLegacyBoot = 16384,
|
||||
FlagMsftData = 32768,
|
||||
FlagIrst = 65536,
|
||||
FlagEsp = 131072
|
||||
FlagEsp [[deprecated]] = FlagBoot
|
||||
};
|
||||
|
||||
Q_DECLARE_FLAGS(Flags, Flag)
|
||||
|
|
|
@ -227,10 +227,8 @@ void SfdiskBackend::scanDevicePartitions(Device& d, const QJsonArray& jsonPartit
|
|||
const QString partitionType = partitionObject[QLatin1String("type")].toString();
|
||||
PartitionTable::Flags activeFlags = partitionObject[QLatin1String("bootable")].toBool() ? PartitionTable::FlagBoot : PartitionTable::FlagNone;
|
||||
|
||||
if (partitionType == QStringLiteral("C12A7328-F81F-11D2-BA4B-00A0C93EC93B")) {
|
||||
if (partitionType == QStringLiteral("C12A7328-F81F-11D2-BA4B-00A0C93EC93B"))
|
||||
activeFlags |= PartitionTable::FlagBoot;
|
||||
activeFlags |= PartitionTable::FlagEsp;
|
||||
}
|
||||
else if (partitionType == QStringLiteral("21686148-6449-6E6F-744E-656564454649"))
|
||||
activeFlags |= PartitionTable::FlagBiosGrub;
|
||||
|
||||
|
@ -479,7 +477,6 @@ PartitionTable::Flags SfdiskBackend::availableFlags(PartitionTable::TableType ty
|
|||
// These are not really flags but for now keep them for compatibility
|
||||
// We should implement changing partition type
|
||||
flags = PartitionTable::Flag::FlagBiosGrub |
|
||||
PartitionTable::Flag::FlagEsp |
|
||||
PartitionTable::Flag::FlagBoot;
|
||||
}
|
||||
else if (type == PartitionTable::msdos || type == PartitionTable::msdos_sectorbased)
|
||||
|
|
|
@ -224,23 +224,25 @@ bool SfdiskPartitionTable::setPartitionSystemType(Report& report, const Partitio
|
|||
|
||||
bool SfdiskPartitionTable::setFlag(Report& report, const Partition& partition, PartitionTable::Flag flag, bool state)
|
||||
{
|
||||
// We only allow setting one active partition per device
|
||||
if ((m_device->partitionTable()->type() == PartitionTable::TableType::msdos ||
|
||||
m_device->partitionTable()->type() == PartitionTable::TableType::msdos_sectorbased) &&
|
||||
flag == PartitionTable::Flag::FlagBoot && state == true) {
|
||||
ExternalCommand sfdiskCommand(report, QStringLiteral("sfdisk"), { QStringLiteral("--activate"), m_device->deviceNode(), QString::number(partition.number()) } );
|
||||
if (sfdiskCommand.run(-1) && sfdiskCommand.exitCode() == 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
} else if (flag == PartitionTable::Flag::FlagBoot && state == false) {
|
||||
ExternalCommand sfdiskCommand(report, QStringLiteral("sfdisk"), { QStringLiteral("--activate"), m_device->deviceNode(), QStringLiteral("-") } );
|
||||
if (sfdiskCommand.run(-1) && sfdiskCommand.exitCode() == 0)
|
||||
return true;
|
||||
// FIXME: Do not return false since we have no way of checking if partition table is MBR
|
||||
if (m_device->partitionTable()->type() == PartitionTable::TableType::msdos ||
|
||||
m_device->partitionTable()->type() == PartitionTable::TableType::msdos_sectorbased) {
|
||||
// We only allow setting one active partition per device
|
||||
if (flag == PartitionTable::Flag::FlagBoot && state == true) {
|
||||
ExternalCommand sfdiskCommand(report, QStringLiteral("sfdisk"), { QStringLiteral("--activate"), m_device->deviceNode(), QString::number(partition.number()) } );
|
||||
if (sfdiskCommand.run(-1) && sfdiskCommand.exitCode() == 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
} else if (flag == PartitionTable::Flag::FlagBoot && state == false) {
|
||||
ExternalCommand sfdiskCommand(report, QStringLiteral("sfdisk"), { QStringLiteral("--activate"), m_device->deviceNode(), QStringLiteral("-") } );
|
||||
if (sfdiskCommand.run(-1) && sfdiskCommand.exitCode() == 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if ((flag == PartitionTable::Flag::FlagEsp || flag == PartitionTable::Flag::FlagBoot) && state == true) {
|
||||
if (flag == PartitionTable::Flag::FlagBoot && state == true) {
|
||||
ExternalCommand sfdiskCommand(report, QStringLiteral("sfdisk"), { QStringLiteral("--part-type"), m_device->deviceNode(), QString::number(partition.number()),
|
||||
QStringLiteral("C12A7328-F81F-11D2-BA4B-00A0C93EC93B") } );
|
||||
if (sfdiskCommand.run(-1) && sfdiskCommand.exitCode() == 0)
|
||||
|
@ -248,7 +250,7 @@ bool SfdiskPartitionTable::setFlag(Report& report, const Partition& partition, P
|
|||
else
|
||||
return false;
|
||||
}
|
||||
if ((flag == PartitionTable::Flag::FlagEsp || flag == PartitionTable::Flag::FlagBoot) && state == false)
|
||||
if (flag == PartitionTable::Flag::FlagBoot && state == false)
|
||||
setPartitionSystemType(report, partition);
|
||||
|
||||
if (flag == PartitionTable::Flag::FlagBiosGrub && state == true) {
|
||||
|
|
Loading…
Reference in New Issue