diff --git a/scripts/wk/hw/obj.py b/scripts/wk/hw/obj.py index df07d618..eca9a4db 100644 --- a/scripts/wk/hw/obj.py +++ b/scripts/wk/hw/obj.py @@ -727,7 +727,13 @@ def get_disks_macos(): disks = [] # Get info from diskutil - proc = run_program(cmd, encoding=None, errors=None) + proc = run_program(cmd, encoding=None, errors=None, check=False) + if proc.returncode != 0: + # Assuming we're running on an older macOS version + cmd.pop(-1) + proc = run_program(cmd, encoding=None, errors=None, check=False) + + # Parse plist data try: plist_data = plistlib.loads(proc.stdout) except (TypeError, ValueError): @@ -739,6 +745,11 @@ def get_disks_macos(): for disk in plist_data['WholeDisks']: disks.append(Disk(f'/dev/{disk}')) + # Remove virtual disks + disks = [ + d for d in disks if d.details.get('VirtualOrPhysical') == 'Physical' + ] + # Done return disks