index : archinstall32 | |
Archlinux32 installer | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | archinstall/lib/disk/btrfs.py | 36 |
diff --git a/archinstall/lib/disk/btrfs.py b/archinstall/lib/disk/btrfs.py index d6758b3f..558a249e 100644 --- a/archinstall/lib/disk/btrfs.py +++ b/archinstall/lib/disk/btrfs.py @@ -1,4 +1,36 @@ +import pathlib, glob +from typing import Union +from .helpers import get_mount_info +from ..exceptions import DiskError from ..general import SysCommand -def create_subvolume(installation): - SysCommand(f"btrfs subvolume create {installation.target}/@")
\ No newline at end of file +def mount_subvolume(installation, location :Union[pathlib.Path, str], force=False) -> bool: + """ + This function uses mount to mount a subvolume on a given device, at a given location with a given subvolume name. + + @installation: archinstall.Installer instance + @location: a localized string or path inside the installation / or /boot for instance without specifying /mnt/boot + @force: overrides the check for weither or not the subvolume mountpoint is empty or not + """ + # Set up the required physical structure + if type(location) == str: + location = pathlib.Path(location) + + if not location.exists(): + location.mkdir(parents=True) + + if glob.glob(str(installation.target/location/'*')) and force is False: + raise DiskError(f"Cannot mount subvolume to {installation.target/location} because it contains data (non-empty folder target)") + + # Mount the logical volume to the physical structure + return SysCommand(f"mount {get_mount_info(installation.target/location)['source']} {installation.target}/{str(location)} -o subvol=@/{str(location)}").exit_code == 0 + +def create_subvolume(installation, location :Union[pathlib.Path, str]) -> bool: + """ + This function uses btrfs to create a subvolume. + + @installation: archinstall.Installer instance + @location: a localized string or path inside the installation / or /boot for instance without specifying /mnt/boot + """ + + SysCommand(f"btrfs subvolume create {installation.target}/{str(location)}")
\ No newline at end of file |