archinstall
archinstall copied to clipboard
Supporting single root partition schemes
Attempting to use archinstall on a single root partition scheme does not complete the installation and fails with the following message:
# Moved here for readability
$root=Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall)
Could not detect root ($root) or boot (None) in /mnt/archinstall based on: dict_values([Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall)])
Since boot is not found because this partition scheme does not use it, the install fails. This code is responsible as it makes an assumption that /boot will always be a partition.
I would be interested in implementing this fix if supporting single root partitions should be possible with the installer. Otherwise I would like to add a message explaining this problem when it is detected.
Log file:
Hardware model detected: Dell Inc. OptiPlex 990; UEFI mode: False
Processor model detected: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
Memory statistics: 11687152 available out of 12133084 total installed
Could not detect virtual system: ['/usr/bin/systemd-detect-virt'] exited with abnormal exit code [256]: b'none\r\n'
System is not running in a VM: ['/usr/bin/systemd-detect-virt'] exited with abnormal exit code [256]: b'none\r\n'
Virtualization detected: None; is VM: None
Graphics devices detected: dict_keys(['Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)'])
Disk states before installing: {'blockdevices': [{'name': 'loop0', 'fstype': 'squashfs', 'fsver': '4.0', 'label': None, 'uuid': None, 'fsavail': '0', 'fsuse%': '100%', 'mountpoints': ['/run/archiso/airootfs'], 'type': 'loop', 'size': '688.2M'}, {'name': 'sda', 'fstype': None, 'fsver': None, 'label': None, 'uuid': None, 'fsavail': None, 'fsuse%': None, 'mountpoints': [None], 'type': 'disk', 'size': '894.3G', 'children': [{'name': 'sda1', 'fstype': 'ext4', 'fsver': '1.0', 'label': None, 'uuid': '33c78af6-4cfc-4a73-b4b6-a2379bb0d322', 'fsavail': None, 'fsuse%': None, 'mountpoints': [None], 'type': 'part', 'size': '456.7G'}, {'name': 'sda2', 'fstype': 'ext4', 'fsver': '1.0', 'label': None, 'uuid': 'ab62ca71-387f-4843-8cee-0a2df113bc7e', 'fsavail': None, 'fsuse%': None, 'mountpoints': [None], 'type': 'part', 'size': '429.2G'}]}, {'name': 'sdb', 'fstype': 'iso9660', 'fsver': 'Joliet Extension', 'label': 'ARCH_202206', 'uuid': '2022-06-01-15-35-22-00', 'fsavail': None, 'fsuse%': None, 'mountpoints': [None], 'type': 'disk', 'size': '28.6G', 'children': [{'name': 'sdb1', 'fstype': 'iso9660', 'fsver': 'Joliet Extension', 'label': 'ARCH_202206', 'uuid': '2022-06-01-15-35-22-00', 'fsavail': '0', 'fsuse%': '100%', 'mountpoints': ['/run/archiso/bootmnt'], 'type': 'part', 'size': '775M'}, {'name': 'sdb2', 'fstype': 'vfat', 'fsver': 'FAT16', 'label': 'ARCHISO_EFI', 'uuid': '785A-FB3F', 'fsavail': None, 'fsuse%': None, 'mountpoints': [None], 'type': 'part', 'size': '86M'}]}]}
Testing connectivity to the Arch Linux mirrors ...
-- Chosen configuration --
{
"HSM": null,
"__separator__": null,
"additional-repositories": [
"multilib"
],
"archinstall-language": "English",
"audio": "No audio server",
"bootloader": "grub-install",
"config_version": "2.5.0",
"debug": false,
"harddrives": [
"/dev/sda"
],
"hostname": "archlinux",
"kernels": [
"linux"
],
"keyboard-layout": "us",
"mirror-region": {
"United States": {
"http://arch.hu.fo/archlinux/$repo/os/$arch": true,
"http://arch.mirror.constant.com/$repo/os/$arch": true,
"http://archlinux.qern-industries.pw/$repo/os/$arch": true,
"http://archmirror1.octyl.net/$repo/os/$arch": true,
"http://arlm.tyzoid.com/$repo/os/$arch": true,
"http://codingflyboy.mm.fcix.net/archlinux/$repo/os/$arch": true,
"http://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch": true,
"http://distro.ibiblio.org/archlinux/$repo/os/$arch": true,
"http://ftp.osuosl.org/pub/archlinux/$repo/os/$arch": true,
"http://iad.mirror.rackspace.com/archlinux/$repo/os/$arch": true,
"http://iad.mirrors.misaka.one/archlinux/$repo/os/$arch": true,
"http://il.us.mirror.archlinux-br.org/$repo/os/$arch": true,
"http://mirror.arizona.edu/archlinux/$repo/os/$arch": true,
"http://mirror.clarkson.edu/archlinux/$repo/os/$arch": true,
"http://mirror.cs.pitt.edu/archlinux/$repo/os/$arch": true,
"http://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/$arch": true,
"http://mirror.ette.biz/archlinux/$repo/os/$arch": true,
"http://mirror.fcix.net/archlinux/$repo/os/$arch": true,
"http://mirror.lty.me/archlinux/$repo/os/$arch": true,
"http://mirror.math.princeton.edu/pub/archlinux/$repo/os/$arch": true,
"http://mirror.metrocast.net/archlinux/$repo/os/$arch": true,
"http://mirror.phx1.us.spryservers.net/archlinux/$repo/os/$arch": true,
"http://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch": true,
"http://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch": true,
"http://mirror.siena.edu/archlinux/$repo/os/$arch": true,
"http://mirror.stephen304.com/archlinux/$repo/os/$arch": true,
"http://mirror.umd.edu/archlinux/$repo/os/$arch": true,
"http://mirror.vtti.vt.edu/archlinux/$repo/os/$arch": true,
"http://mirror.wdc1.us.leaseweb.net/archlinux/$repo/os/$arch": true,
"http://mirrors.acm.wpi.edu/archlinux/$repo/os/$arch": true,
"http://mirrors.advancedhosters.com/archlinux/$repo/os/$arch": true,
"http://mirrors.aggregate.org/archlinux/$repo/os/$arch": true,
"http://mirrors.bloomu.edu/archlinux/$repo/os/$arch": true,
"http://mirrors.cat.pdx.edu/archlinux/$repo/os/$arch": true,
"http://mirrors.gigenet.com/archlinux/$repo/os/$arch": true,
"http://mirrors.kernel.org/archlinux/$repo/os/$arch": true,
"http://mirrors.lug.mtu.edu/archlinux/$repo/os/$arch": true,
"http://mirrors.mit.edu/archlinux/$repo/os/$arch": true,
"http://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch": true,
"http://mirrors.radwebhosting.com/archlinux/$repo/os/$arch": true,
"http://mirrors.rit.edu/archlinux/$repo/os/$arch": true,
"http://mirrors.rutgers.edu/archlinux/$repo/os/$arch": true,
"http://mirrors.sonic.net/archlinux/$repo/os/$arch": true,
"http://mirrors.vectair.net/archlinux/$repo/os/$arch": true,
"http://mirrors.xmission.com/archlinux/$repo/os/$arch": true,
"http://mirrors.xtom.com/archlinux/$repo/os/$arch": true,
"http://ord.mirror.rackspace.com/archlinux/$repo/os/$arch": true,
"http://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch": true,
"http://repo.ialab.dsu.edu/archlinux/$repo/os/$arch": true,
"http://repo.miserver.it.umich.edu/archlinux/$repo/os/$arch": true,
"http://www.gtlib.gatech.edu/pub/archlinux/$repo/os/$arch": true,
"https://america.mirror.pkgbuild.com/$repo/os/$arch": true,
"https://arch.hu.fo/archlinux/$repo/os/$arch": true,
"https://arch.mirror.constant.com/$repo/os/$arch": true,
"https://arch.mirror.ivo.st/$repo/os/$arch": true,
"https://archlinux.qern-industries.pw/$repo/os/$arch": true,
"https://archmirror1.octyl.net/$repo/os/$arch": true,
"https://arlm.tyzoid.com/$repo/os/$arch": true,
"https://codingflyboy.mm.fcix.net/archlinux/$repo/os/$arch": true,
"https://dfw.mirror.rackspace.com/archlinux/$repo/os/$arch": true,
"https://iad.mirror.rackspace.com/archlinux/$repo/os/$arch": true,
"https://iad.mirrors.misaka.one/archlinux/$repo/os/$arch": true,
"https://mirror.arizona.edu/archlinux/$repo/os/$arch": true,
"https://mirror.clarkson.edu/archlinux/$repo/os/$arch": true,
"https://mirror.ette.biz/archlinux/$repo/os/$arch": true,
"https://mirror.fcix.net/archlinux/$repo/os/$arch": true,
"https://mirror.lty.me/archlinux/$repo/os/$arch": true,
"https://mirror.phx1.us.spryservers.net/archlinux/$repo/os/$arch": true,
"https://mirror.pit.teraswitch.com/archlinux/$repo/os/$arch": true,
"https://mirror.sfo12.us.leaseweb.net/archlinux/$repo/os/$arch": true,
"https://mirror.stephen304.com/archlinux/$repo/os/$arch": true,
"https://mirror.theash.xyz/arch/$repo/os/$arch": true,
"https://mirror.tmmworkshop.com/archlinux/$repo/os/$arch": true,
"https://mirror.umd.edu/archlinux/$repo/os/$arch": true,
"https://mirror.wdc1.us.leaseweb.net/archlinux/$repo/os/$arch": true,
"https://mirror2.sandyriver.net/pub/archlinux/$repo/os/$arch": true,
"https://mirrors.bloomu.edu/archlinux/$repo/os/$arch": true,
"https://mirrors.kernel.org/archlinux/$repo/os/$arch": true,
"https://mirrors.lug.mtu.edu/archlinux/$repo/os/$arch": true,
"https://mirrors.mit.edu/archlinux/$repo/os/$arch": true,
"https://mirrors.ocf.berkeley.edu/archlinux/$repo/os/$arch": true,
"https://mirrors.radwebhosting.com/archlinux/$repo/os/$arch": true,
"https://mirrors.rit.edu/archlinux/$repo/os/$arch": true,
"https://mirrors.sonic.net/archlinux/$repo/os/$arch": true,
"https://mirrors.vectair.net/archlinux/$repo/os/$arch": true,
"https://mirrors.xtom.com/archlinux/$repo/os/$arch": true,
"https://ord.mirror.rackspace.com/archlinux/$repo/os/$arch": true,
"https://plug-mirror.rcac.purdue.edu/archlinux/$repo/os/$arch": true,
"https://repo.ialab.dsu.edu/archlinux/$repo/os/$arch": true,
"https://zxcvfdsa.com/arch/$repo/os/$arch": true
}
},
"mount_point": null,
"nic": {
"dhcp": true,
"dns": null,
"gateway": null,
"iface": null,
"ip": null,
"type": "iso"
},
"ntp": true,
"packages": [
"openssh"
],
"plugin": null,
"profile": {
"path": "/usr/lib/python3.10/site-packages/archinstall/profiles/minimal.py"
},
"save_config": null,
"script": "guided",
"silent": false,
"swap": false,
"sys-encoding": "UTF-8",
"sys-language": "en_US",
"timezone": "UTC",
"version": "2.5.0"
}
{
"/dev/sda": {
"partitions": [
{
"ESP": false,
"PARTUUID": "33c78af6-4cfc-4a73-b4b6-a2379bb0d322",
"boot": false,
"encrypted": false,
"filesystem": {
"format": "ext4"
},
"mountpoint": null,
"size": 957726720,
"start": 2048,
"type": "primary",
"wipe": false
},
{
"boot": true,
"filesystem": {
"format": "ext4"
},
"mountpoint": "/",
"size": "100%",
"start": "53%",
"type": "primary",
"wipe": true
}
]
}
}
Could not locate mount information for /dev/sda1: ['/usr/bin/findmnt', '--json', '-R', '/dev/sda1'] exited with abnormal exit code [256]: b''
Re-using partition instance: Partition(path=/dev/sda1, size=456.7, PARTUUID=33c78af6-4cfc-4a73-b4b6-a2379bb0d322, fs=ext4)
Adding partition to BlockDevice(/dev/sda, size=894.3GB, free_space=1048kB+8945MB+352kB, bus_type=sata), 53%->100%
Adding partition using the following parted command: /dev/sda mkpart primary ext4 53% 100%
Formatting /dev/sda2 -> ext4
Could not locate mount information for /dev/sda2: ['/usr/bin/findmnt', '--json', '-R', '/dev/sda2'] exited with abnormal exit code [256]: b''
Marking partition Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4) as bootable.
Setting boot on on (parted) partition index 2
Could not locate mount information for /dev/sda2: ['/usr/bin/findmnt', '--json', '-R', '/dev/sda2'] exited with abnormal exit code [256]: b''
Mounting / to /mnt/archinstall/ using Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4)
Using mount order: [('/', <function Installer.mount_ordered_layout.<locals>.<lambda> at 0x7f23eafa2440>)]
Could not locate mount information for /dev/sda2: ['/usr/bin/findmnt', '--json', '-R', '/dev/sda2'] exited with abnormal exit code [256]: b''
Could not locate mount information for /dev/sda2: ['/usr/bin/findmnt', '--json', '-R', '/dev/sda2'] exited with abnormal exit code [256]: b''
Mounting Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4) to /mnt/archinstall/
Getting mount information for device path /mnt/archinstall
Unreliable results might be given for /dev/sdb1 due to partprobe error: ['/usr/bin/partprobe', '/dev/sdb'] exited with abnormal exit code [256]: b'Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.\r\n'
Unreliable results might be given for /dev/sdb1 due to partprobe error: ['/usr/bin/partprobe', '/dev/sdb'] exited with abnormal exit code [256]: b'Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.\r\n'
Filtering available mounts {'/mnt/archinstall': Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall), '/run/archiso/bootmnt': Partition(path=/dev/sdb1, size=0.8, PARTUUID=None, fs=iso9660, mounted=/run/archiso/bootmnt)} to those under /mnt/archinstall
Available partitions: {'/mnt/archinstall': Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall)}
Waiting for automatic mirror selection (reflector) to complete.
Waiting for dbus-org.freedesktop.timesync1.service to enter running state
A new package mirror-list has been created: /etc/pacman.d/mirrorlist
Unreliable results might be given for /dev/sdb1 due to partprobe error: ['/usr/bin/partprobe', '/dev/sdb'] exited with abnormal exit code [256]: b'Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.\r\n'
Unreliable results might be given for /dev/sdb1 due to partprobe error: ['/usr/bin/partprobe', '/dev/sdb'] exited with abnormal exit code [256]: b'Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.\r\n'
Filtering available mounts {'/mnt/archinstall': Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall), '/run/archiso/bootmnt': Partition(path=/dev/sdb1, size=0.8, PARTUUID=None, fs=iso9660, mounted=/run/archiso/bootmnt)} to those under /mnt/archinstall
Available partitions: {'/mnt/archinstall': Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall)}
System is not running in a VM: ['/usr/bin/systemd-detect-virt'] exited with abnormal exit code [256]: b'none\r\n'
The multilib flag is set. This system will be installed with the multilib repository enabled.
The testing flag is not set. This system will be installed without testing repositories enabled.
Installing packages: ['base', 'base-devel', 'linux-firmware', 'linux', 'grub', 'intel-ucode']
Enabling periodic TRIM
Enabling service fstrim.timer
Unreliable results might be given for /dev/sdb1 due to partprobe error: ['/usr/bin/partprobe', '/dev/sdb'] exited with abnormal exit code [256]: b'Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.\r\n'
Unreliable results might be given for /dev/sdb1 due to partprobe error: ['/usr/bin/partprobe', '/dev/sdb'] exited with abnormal exit code [256]: b'Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.\r\n'
Filtering available mounts {'/mnt/archinstall': Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall), '/run/archiso/bootmnt': Partition(path=/dev/sdb1, size=0.8, PARTUUID=None, fs=iso9660, mounted=/run/archiso/bootmnt)} to those under /mnt/archinstall
Available partitions: {'/mnt/archinstall': Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall)}
Unreliable results might be given for /dev/sdb1 due to partprobe error: ['/usr/bin/partprobe', '/dev/sdb'] exited with abnormal exit code [256]: b'Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.\r\n'
Unreliable results might be given for /dev/sdb1 due to partprobe error: ['/usr/bin/partprobe', '/dev/sdb'] exited with abnormal exit code [256]: b'Error: Partition(s) 1 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.\r\n'
Filtering available mounts {'/mnt/archinstall': Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall), '/run/archiso/bootmnt': Partition(path=/dev/sdb1, size=0.8, PARTUUID=None, fs=iso9660, mounted=/run/archiso/bootmnt)} to those under /mnt/archinstall
Available partitions: {'/mnt/archinstall': Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall)}
Could not detect root (Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall)) or boot (None) in /mnt/archinstall based on: dict_values([Partition(path=/dev/sda2, size=420.3, PARTUUID=bb94b01a-d29a-4feb-a650-c1aad564a828, fs=ext4, mounted=/mnt/archinstall)])
I'm not sure if this is the same issue i was having but if you already have an existing partition you wish to use. You set /boot mount point to your vfat partition. Then when you choose your root partition i had to actually create all the sub volumes for btrfs it didn't try to do it for me. You need to set the partition to be wiped. Then create the sub volumes.
@, /
@home, /home
@log, /var/log
@pkg, /var/cache/pacman/pkg
@.snapshots, /.snapshots
I'm not sure if this is your problem but if your using btrfs on a single wipe then this may help.
The issue was with a single partition install on ext4. It is only a problem when you aren't using a partition for both /boot and / at a minimum.
Oh ok. I didn't know /boot could even be on ext4. Good luck.
On Mon, 6 Jun 2022, 07:09 Joel Larson, @.***> wrote:
The issue was with a single partition install on ext4. It is only a problem when you aren't using a partition for both /boot and / at a minimum.
— Reply to this email directly, view it on GitHub https://github.com/archlinux/archinstall/issues/1306#issuecomment-1147082553, or unsubscribe https://github.com/notifications/unsubscribe-auth/ARKSG6O5O6TP4Z6RZCFCWYTVNWIX3ANCNFSM5X37QRBQ . You are receiving this because you commented.Message ID: @.***>
There's two issues currently with archinstall in order to support this:
- We're looking specifically for one partition mounted at
[/mnt/archinstall]/and one[/mnt/archinstall]/boot. - This will not work with encryption, so checking for this use case and disabling the encryption option has to be done (or to support encryption with it somehow)
The first one is easy, it's literally just this check that has to be disabled or commented out in order to work in your case: https://github.com/archlinux/archinstall/blob/f2492ca574448fe4bd44604316da322720e70040/archinstall/lib/installer.py#L1029-L1030
Second one is a bit tricker.
You could give this "fix" a go by modifying /usr/lib/python3.10/site-packages/archinstall/lib/installer.py and comment out or remove those two lines :)
I see that this commit 6 months ago is when this became a "bug": https://github.com/archlinux/archinstall/commit/5a70efe2840f57de300eadacf8df3aa853b6a146
The assumption could probably be something like:
if boot_partition is None:
if root_partition is None:
raise ValueError(f"Could not detect root ({root_partition}) or boot ({boot_partition}) in {self.target} based on: {self.partitions}")
log(f"A boot partition was not detected. Continuing by installing bootloader on root ({root_partition}) in {self.target}.")
I'll submit a PR after thinking about it more.
We need to make sure there is something mounted for the root volume, so packages doesn't get installed onto a blind folder location and
(
We also need to make sure /efi is mounted somewhere under UEFI.
Or we need to make sure a bootable flag is set on a partition is mounted under legacy boot where we can install the bootloader.
)
And I don't know how GRUB vs systemd-boot will treat /efi being mounted vs a whole traditional /boot. So it's a bit more complicated than swapping and for or or checking for both and raise an error if they aren't detected I think. I might be wrong but I have sneaky suspicion that it will be more too it :) But start on a PR and I can help you test it out and colab on your branch.
Any update on this? My very first experience with 'archinstall' failed because of this.
Nothing yet. I began to look at the code last month but have been on vacation until very recently. I'm planning to get it resolved soon.
Any news on this one?
We merged the pyparted changes a few days ago, I can start working on this now :)
cool! I also just encountered this the first time using archinstall. Thank you for looking into this :)
9th attempt, after gettinf error while trying to enable service.zram, I disbled swap, then it fails while trying to enable fstrim.timer... could not detect root partition ..... I have one / partition
Here is my quick workaround before running archinstall:
- Edit
/usr/lib/python3.10/site-packages/archinstall/lib/installer.py - Locate the line
root_partition = partition(~1053) - Add below (within the
elifblock)boot_partition = partition
for partition in self.partitions:
if self.target / 'boot' in partition.mountpoints:
boot_partition = partition
elif self.target in partition.mountpoints:
root_partition = partition
boot_partition = partition
Save the file and launch the installer.