pop-os / distinst

Installer Backend
GNU Lesser General Public License v3.0
222 stars 42 forks source link

Pop fails custom install from recovery partition. #297

Closed XV-02 closed 6 months ago

XV-02 commented 2 years ago

Distribution (run cat /etc/os-release):

Pop 22.04

Related Application and/or Package Version (run apt policy $PACKAGE NAME):

distinst 0.3.2~1651006169~22.04~8d1ac3f
pop-installer 0.0.1~1648678175~22.04~7d8bd3a

Issue/Bug Description:

When attempting to install via custom install from the recovery partition: selecting the EFI, Root, and Swap partitions, but not formatting, reliably causes a failure to install. This also seems to effect fresh installs from live-disk over-top of previous Pop installs, and may effect live disk installs generally, pending further testing.

Steps to reproduce (if you know):

1) Boot into recovery partitions 2) Select "clean install" 3) Select "custom install" 4) Select the EFI, Root, and Swap partitions for use, but otherwise do not format, change file system type, or do anything else 5) Commit to erase and install, and proceed through the rest of the install process as normal. 6) Install fails.

Expected behavior:

Successful installation of Pop!_OS

Other Notes:

Example log from failed install attempt: installer.log

mmstick commented 2 years ago

I believe that's because squashfs fails if any files already exists where it's extracting.

matbme commented 1 year ago

unsquashfs doesn't fail if it finds duplicate files when -f is set, which is the case for Distinst (it also returns exit status 1 when it's not set).

I'm having the same issue when using the CLI to manually configure partitions for Vanilla OS, but the command doesn't return exit status 2 if ran via terminal, and it only happens when using the -u parameter (as opposed to -n).

UPDATE: In our case, unsquashfs returns exit code 2 because it creates symlinks in the output filesystem, which according to the documentation causes it to return such exit status. I'm not sure about Pop OS recovery, but it should be safe to ignore non-fatal errors from unsquashfs.