index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
author | Anton Hvornum <anton@hvornum.se> | 2022-02-02 08:18:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-02 08:18:12 +0100 |
commit | 7f01747efcb15375b8e8601edafa2d9b89e38061 (patch) | |
tree | c65ae1a97d2db5b9029c337a11c1a2e79bc21911 /archinstall/lib | |
parent | a7c57bac53dd807091d34f5a3c23d89a87185c62 (diff) |
-rw-r--r-- | archinstall/lib/disk/blockdevice.py | 13 | ||||
-rw-r--r-- | archinstall/lib/hardware.py | 14 |
diff --git a/archinstall/lib/disk/blockdevice.py b/archinstall/lib/disk/blockdevice.py index 5ffa06a8..fac258ef 100644 --- a/archinstall/lib/disk/blockdevice.py +++ b/archinstall/lib/disk/blockdevice.py @@ -8,7 +8,7 @@ from typing import Optional, Dict, Any, Iterator, Tuple, List, TYPE_CHECKING if TYPE_CHECKING: from .partition import Partition -from ..exceptions import DiskError +from ..exceptions import DiskError, SysCallError from ..output import log from ..general import SysCommand from ..storage import storage @@ -189,10 +189,13 @@ class BlockDevice: # that is "outside" the disk. in /dev/sr0 this is usually the case with Archiso, # so the free will ignore the ESP partition and just give the "free" space. # Doesn't harm us, but worth noting in case something weird happens. - for line in SysCommand(f"parted -s --machine {self.path} print free"): - if 'free' in (free_space := line.decode('UTF-8')): - _, start, end, size, *_ = free_space.strip('\r\n;').split(':') - yield (start, end, size) + try: + for line in SysCommand(f"parted -s --machine {self.path} print free"): + if 'free' in (free_space := line.decode('UTF-8')): + _, start, end, size, *_ = free_space.strip('\r\n;').split(':') + yield (start, end, size) + except SysCallError as error: + log(f"Could not get free space on {self.path}: {error}", level=logging.INFO) @property def largest_free_space(self) -> List[str]: diff --git a/archinstall/lib/hardware.py b/archinstall/lib/hardware.py index 83323261..ea570707 100644 --- a/archinstall/lib/hardware.py +++ b/archinstall/lib/hardware.py @@ -6,6 +6,7 @@ from typing import Iterator, Optional, Union from .general import SysCommand from .networking import list_interfaces, enrich_iface_types +from .exceptions import SysCallError from .output import log __packages__ = [ @@ -170,10 +171,19 @@ def mem_total() -> Optional[int]: def virtualization() -> Optional[str]: - return str(SysCommand("systemd-detect-virt")).strip('\r\n') + try: + return str(SysCommand("systemd-detect-virt")).strip('\r\n') + except SysCallError as error: + log(f"Could not detect virtual system: {error}", level=logging.DEBUG) + + return None def is_vm() -> bool: - return b"none" not in b"".join(SysCommand("systemd-detect-virt")).lower() + try: + return b"none" not in b"".join(SysCommand("systemd-detect-virt")).lower() + except SysCallError as error: + log(f"System is not running in a VM: {error}", level=logging.DEBUG) + return None # TODO: Add more identifiers |