def _do_autopart(storage, scheme, requests, encrypted=False, luks_fmt_args=None): """Perform automatic partitioning. :param storage: an instance of Blivet :param scheme: a type of the partitioning scheme :param requests: list of partitioning requests :param encrypted: encrypt the scheduled partitions :param luks_fmt_args: arguments for the LUKS format constructor """ log.debug("scheme: %s", scheme) log.debug("requests:\n%s", "".join([str(p) for p in requests])) log.debug("encrypted: %s", encrypted) log.debug("storage.disks: %s", [d.name for d in storage.disks]) log.debug("storage.partitioned: %s", [d.name for d in storage.partitioned if d.format.supported]) log.debug("all names: %s", [d.name for d in storage.devices]) log.debug("boot disk: %s", getattr(storage.bootloader.stage1_disk, "name", None)) disks = get_candidate_disks(storage) log.debug("candidate disks: %s", [d.name for d in disks]) devs = schedule_implicit_partitions(storage, disks, scheme, encrypted, luks_fmt_args) devs = schedule_partitions(storage, disks, devs, scheme, requests, encrypted, luks_fmt_args) # run the autopart function to allocate and grow partitions do_partitioning(storage) schedule_volumes(storage, devs, scheme, requests, encrypted) # grow LVs grow_lvm(storage) # only newly added swaps should appear in the fstab new_swaps = (dev for dev in storage.swaps if not dev.format.exists) storage.set_fstab_swaps(new_swaps)
def _execute_reqpart(self, storage, data): """Execute the reqpart command. :param storage: an instance of the Blivet's storage object :param data: an instance of kickstart data """ if not data.reqpart.reqpart: return log.debug("Looking for platform-specific requirements.") requests = list(platform.partitions) for request in requests[:]: if request.mountpoint != "/boot": continue if not data.reqpart.addBoot: log.debug("Removing the requirement for /boot.") requests.remove(request) continue # Blivet doesn't know this - anaconda sets up the default boot fstype # in various places in this file. We need to duplicate that here. request.fstype = storage.default_boot_fstype if not requests: return disks = get_candidate_disks(storage) log.debug("Applying requirements:\n%s", "".join(map(str, requests))) schedule_partitions(storage, disks, [], scheme=AUTOPART_TYPE_PLAIN, requests=requests)