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