archinstall icon indicating copy to clipboard operation
archinstall copied to clipboard

Supporting single root partition schemes

Open JoelLarson opened this issue 3 years ago • 8 comments
trafficstars

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)])

JoelLarson avatar Jun 04 '22 21:06 JoelLarson

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.

JeremiahCheatham avatar Jun 05 '22 20:06 JeremiahCheatham

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.

JoelLarson avatar Jun 06 '22 06:06 JoelLarson

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: @.***>

JeremiahCheatham avatar Jun 06 '22 06:06 JeremiahCheatham

There's two issues currently with archinstall in order to support this:

  1. We're looking specifically for one partition mounted at [/mnt/archinstall]/ and one [/mnt/archinstall]/boot.
  2. 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 :)

Torxed avatar Jun 06 '22 11:06 Torxed

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.

JoelLarson avatar Jun 07 '22 00:06 JoelLarson

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.

Torxed avatar Jun 07 '22 09:06 Torxed

Any update on this? My very first experience with 'archinstall' failed because of this.

scarduck avatar Jul 09 '22 19:07 scarduck

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.

JoelLarson avatar Jul 10 '22 05:07 JoelLarson

Any news on this one?

esnunes avatar May 03 '23 15:05 esnunes

We merged the pyparted changes a few days ago, I can start working on this now :)

Torxed avatar May 03 '23 16:05 Torxed

cool! I also just encountered this the first time using archinstall. Thank you for looking into this :)

lollilol avatar May 14 '23 10:05 lollilol

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

MedLabs avatar May 15 '23 02:05 MedLabs

Here is my quick workaround before running archinstall:

  1. Edit /usr/lib/python3.10/site-packages/archinstall/lib/installer.py
  2. Locate the line root_partition = partition (~1053)
  3. Add below (within the elif block) 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.

wizetek avatar May 18 '23 15:05 wizetek