v0.12.5: drive-type-aware cross-drive backup validation
Fix cross-drive backup failing for system-drive destinations. The /mnt/hdd_placeholder folder is on the internal SSD, so IsMountPoint() returned false and the old code hard-blocked it. - ValidateDestination() (crossdrive.go): onSystemDrive flag replaces boolean-only check; system drives require ≥10 GB free and <90% usage to protect OS stability; external drives just need ≥100 MB free. - CheckBackupDestination() (mounts_linux.go): Tier 4 now branches on h.SystemDrive; system drive blocks at <10 GB free or ≥90% usage (matches runner enforcement); external drive unchanged (warn 90%, block 95%). Removes the && h.Severity == "ok" guard that was preventing system-drive critical messages from overriding warnings. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -172,13 +172,28 @@ func CheckBackupDestination(path string) DestinationHealth {
|
||||
if di := GetDiskUsage(path); di != nil {
|
||||
h.UsedPercent = di.UsedPercent
|
||||
h.FreeGB = di.AvailGB
|
||||
if di.UsedPercent >= 95 {
|
||||
h.Warning = fmt.Sprintf("A mentési meghajtó megtelt (%.0f%% használt)!", di.UsedPercent)
|
||||
h.Blocked = true
|
||||
h.Severity = "critical"
|
||||
} else if di.UsedPercent >= 90 && h.Severity == "ok" {
|
||||
h.Warning = fmt.Sprintf("A mentési meghajtó majdnem megtelt (%.0f%% használt).", di.UsedPercent)
|
||||
h.Severity = "warning"
|
||||
if h.SystemDrive {
|
||||
// System drive: stricter limits to protect OS stability
|
||||
if di.AvailGB < 10 {
|
||||
h.Warning = fmt.Sprintf("A rendszermeghajtón csak %.1f GB szabad — legalább 10 GB szükséges a rendszer stabilitásához!", di.AvailGB)
|
||||
h.Blocked = true
|
||||
h.Severity = "critical"
|
||||
} else if di.UsedPercent >= 90 {
|
||||
h.Warning = fmt.Sprintf("A rendszermeghajtó %.0f%%-ban megtelt — maximum 90%% megengedett.", di.UsedPercent)
|
||||
h.Blocked = true
|
||||
h.Severity = "critical"
|
||||
}
|
||||
// If neither triggers, keep the Tier 3 system-drive warning
|
||||
} else {
|
||||
// External drive: original thresholds
|
||||
if di.UsedPercent >= 95 {
|
||||
h.Warning = fmt.Sprintf("A mentési meghajtó megtelt (%.0f%% használt)!", di.UsedPercent)
|
||||
h.Blocked = true
|
||||
h.Severity = "critical"
|
||||
} else if di.UsedPercent >= 90 {
|
||||
h.Warning = fmt.Sprintf("A mentési meghajtó majdnem megtelt (%.0f%% használt).", di.UsedPercent)
|
||||
h.Severity = "warning"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user