pop-os / distinst

Installer Backend
GNU Lesser General Public License v3.0
221 stars 43 forks source link

Install Pop!_OS freezes when decrypting default luks partition #304

Open NyxAlexandra opened 2 years ago

NyxAlexandra commented 2 years ago

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

 NAME="Pop!_OS"
VERSION="22.04 LTS"
ID=pop
ID_LIKE="ubuntu debian"
PRETTY_NAME="Pop!_OS 22.04 LTS"
VERSION_ID="22.04"
HOME_URL="https://pop.system76.com"
SUPPORT_URL="https://support.system76.com"
BUG_REPORT_URL="https://github.com/pop-os/pop/issues"
PRIVACY_POLICY_URL="https://system76.com/privacy"
VERSION_CODENAME=jammy
UBUNTU_CODENAME=jammy
LOGO=distributor-logo-pop-os

Related Application and/or Package Version (run apt policy $PACKAGE NAME): distinst, more accurately the "Install Pop!_OS" GUI

Issue/Bug Description: When attempting the "Custom (Advanced)" option under "Clean Install", I am unable to decrypt the luks partition created by the "Clean Install". When I type in the encryption password, the GUI freezes, and the DE reports that it is not responding. I have attempted to wait, however after >15 minutes there is no change, and I have to force quit the installer.

Output of lsblk (after decrypting in the installer):

NAME            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
loop0             7:0    0   2.5G  1 loop  /rofs
nvme0n1         259:0    0 465.9G  0 disk  
├─nvme0n1p1     259:1    0   3.9G  0 part  
├─nvme0n1p2     259:2    0    32G  0 part  /cdrom
├─nvme0n1p3     259:3    0   398G  0 part  
│ └─cryptdata   253:0    0   398G  0 crypt 
│   └─data-root 253:1    0   398G  0 lvm   
└─nvme0n1p4     259:4    0    32G  0 part  

installer.log:

[INFO distinst:crates/disks/src/config/disks.rs:579] probed "/dev/nvme0n1"
[INFO distinst:crates/disks/src/config/disk.rs:164] obtaining disk information from /dev/nvme0n1
[INFO distinst:crates/disks/src/serial.rs:14] obtaining serial model from /dev/nvme0n1
[INFO distinst:crates/disk-ops/src/parted.rs:31] opening disk at /dev/nvme0n1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p2
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p3
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p4
[INFO distinst:crates/external/src/lvm.rs:209] obtaining list of physical volumes
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p1"
[INFO distinst:crates/os-detect/src/lib.rs:52] detecting OS from device: "/dev/nvme0n1p1"
[INFO distinst:crates/os-detect/src/lib.rs:68] detecting OS from "/tmp/distinst.u28bOisYc8Kl"
[INFO distinst:crates/os-detect/src/lib.rs:71] Found "/tmp/distinst.u28bOisYc8Kl/EFI"
[INFO distinst:crates/os-detect/src/lib.rs:71] Found "/tmp/distinst.u28bOisYc8Kl/loader"
[INFO distinst:crates/os-detect/src/lib.rs:71] Found "/tmp/distinst.u28bOisYc8Kl/04a78ed7da8a4b96fbe72fc762e98b59"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p2"
[INFO distinst:crates/os-detect/src/lib.rs:52] detecting OS from device: "/dev/nvme0n1p2"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p3"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p4"
[INFO distinst:src/auto/options/mod.rs:176] found erase option on "/dev/nvme0n1": 122138132 sectors
[INFO distinst:crates/disks/src/config/disks.rs:579] probed "/dev/nvme0n1"
[INFO distinst:crates/disks/src/config/disk.rs:164] obtaining disk information from /dev/nvme0n1
[INFO distinst:crates/disks/src/serial.rs:14] obtaining serial model from /dev/nvme0n1
[INFO distinst:crates/disk-ops/src/parted.rs:31] opening disk at /dev/nvme0n1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p2
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p3
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p4
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p1"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p2"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p3"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p4"
[INFO distinst:crates/disks/src/config/disks.rs:579] probed "/dev/nvme0n1"
[INFO distinst:crates/disks/src/config/disk.rs:164] obtaining disk information from /dev/nvme0n1
[INFO distinst:crates/disks/src/serial.rs:14] obtaining serial model from /dev/nvme0n1
[INFO distinst:crates/disk-ops/src/parted.rs:31] opening disk at /dev/nvme0n1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p2
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p3
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p4
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1"
[ERROR distinst:ffi/src/lib.rs:49] libdistinst: pointer in FFI is null
[INFO distinst:crates/disks/src/config/disks.rs:448] decrypting partition at "/dev/nvme0n1p3"
[INFO distinst:crates/external/src/lvm.rs:51] searching for device maps to deactivate
[INFO distinst:crates/disks/src/external.rs:117] cryptsetup is opening /dev/nvme0n1p3 with pv cryptdata and LvmEncryption { physical_volume: cryptdata, password: hidden, keydata: None }
[INFO distinst:crates/external/src/lib.rs:34] executing cryptsetup with ["open", "/dev/nvme0n1p3", "cryptdata"]
[INFO distinst:crates/disks/src/config/disks.rs:463] which belongs to PV "/dev/mapper/cryptdata"
[INFO distinst:crates/external/src/lvm.rs:209] obtaining list of physical volumes
[INFO distinst:crates/disks/src/config/disks.rs:482] settings luks_parent to "/dev/nvme0n1p3"
[INFO distinst:crates/disks/src/config/lvm/mod.rs:183] adding partitions to LVM device
[INFO distinst:crates/external/src/lvm.rs:248] activating 'data'
[INFO distinst:crates/external/src/lib.rs:34] executing vgchange with ["-ffyay", "data"]
[INFO distinst:crates/external/src/lvm.rs:159] obtaining logical volumes on data
[INFO distinst:ffi/src/lvm.rs:77] getting logical device
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/data"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/dm-1"
[INFO distinst:crates/external/src/luks.rs:101] deactivating encrypted device named cryptdata
[INFO distinst:crates/external/src/lvm.rs:209] obtaining list of physical volumes
[INFO distinst:crates/external/src/lvm.rs:266] deactivating 'data'
[INFO distinst:crates/external/src/lib.rs:34] executing vgchange with ["-ffyan", "data"]
[INFO distinst:crates/external/src/lib.rs:34] executing cryptsetup with ["close", "cryptdata"]
[INFO distinst:crates/disks/src/config/disks.rs:579] probed "/dev/nvme0n1"
[INFO distinst:crates/disks/src/config/disk.rs:164] obtaining disk information from /dev/nvme0n1
[INFO distinst:crates/disks/src/serial.rs:14] obtaining serial model from /dev/nvme0n1
[INFO distinst:crates/disk-ops/src/parted.rs:31] opening disk at /dev/nvme0n1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p2
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p3
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p4
[INFO distinst:crates/external/src/lvm.rs:209] obtaining list of physical volumes
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p1"
[INFO distinst:crates/os-detect/src/lib.rs:52] detecting OS from device: "/dev/nvme0n1p1"
[INFO distinst:crates/os-detect/src/lib.rs:68] detecting OS from "/tmp/distinst.fWEKBNmXCqR1"
[INFO distinst:crates/os-detect/src/lib.rs:71] Found "/tmp/distinst.fWEKBNmXCqR1/EFI"
[INFO distinst:crates/os-detect/src/lib.rs:71] Found "/tmp/distinst.fWEKBNmXCqR1/loader"
[INFO distinst:crates/os-detect/src/lib.rs:71] Found "/tmp/distinst.fWEKBNmXCqR1/04a78ed7da8a4b96fbe72fc762e98b59"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p2"
[INFO distinst:crates/os-detect/src/lib.rs:52] detecting OS from device: "/dev/nvme0n1p2"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p3"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p4"
[INFO distinst:src/auto/options/mod.rs:176] found erase option on "/dev/nvme0n1": 122138132 sectors
[INFO distinst:crates/disks/src/config/disks.rs:579] probed "/dev/nvme0n1"
[INFO distinst:crates/disks/src/config/disk.rs:164] obtaining disk information from /dev/nvme0n1
[INFO distinst:crates/disks/src/serial.rs:14] obtaining serial model from /dev/nvme0n1
[INFO distinst:crates/disk-ops/src/parted.rs:31] opening disk at /dev/nvme0n1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p2
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p3
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p4
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p1"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p2"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p3"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1p4"
[INFO distinst:crates/disks/src/config/disks.rs:579] probed "/dev/nvme0n1"
[INFO distinst:crates/disks/src/config/disk.rs:164] obtaining disk information from /dev/nvme0n1
[INFO distinst:crates/disks/src/serial.rs:14] obtaining serial model from /dev/nvme0n1
[INFO distinst:crates/disk-ops/src/parted.rs:31] opening disk at /dev/nvme0n1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p1
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p2
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p3
[INFO distinst:crates/disks/src/config/partitions/mod.rs:119] obtaining partition information from /dev/nvme0n1p4
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/nvme0n1"
[ERROR distinst:ffi/src/lib.rs:49] libdistinst: pointer in FFI is null
[INFO distinst:crates/disks/src/config/disks.rs:448] decrypting partition at "/dev/nvme0n1p3"
[INFO distinst:crates/external/src/lvm.rs:51] searching for device maps to deactivate
[INFO distinst:crates/disks/src/external.rs:117] cryptsetup is opening /dev/nvme0n1p3 with pv cryptdata and LvmEncryption { physical_volume: cryptdata, password: hidden, keydata: None }
[INFO distinst:crates/external/src/lib.rs:34] executing cryptsetup with ["open", "/dev/nvme0n1p3", "cryptdata"]
[INFO distinst:crates/disks/src/config/disks.rs:463] which belongs to PV "/dev/mapper/cryptdata"
[INFO distinst:crates/external/src/lvm.rs:209] obtaining list of physical volumes
[INFO distinst:crates/disks/src/config/disks.rs:482] settings luks_parent to "/dev/nvme0n1p3"
[INFO distinst:crates/disks/src/config/lvm/mod.rs:183] adding partitions to LVM device
[INFO distinst:crates/external/src/lvm.rs:248] activating 'data'
[INFO distinst:crates/external/src/lib.rs:34] executing vgchange with ["-ffyay", "data"]
[INFO distinst:crates/external/src/lvm.rs:159] obtaining logical volumes on data
[INFO distinst:ffi/src/lvm.rs:77] getting logical device
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/data"
[DEBUG distinst:crates/disk-types/src/sector.rs:17] get block size for "/sys/class/block/dm-1"

Steps to reproduce (if you know):

  1. Perform the Clean Install -> Clean Install (erase everything)
  2. Close the installer
  3. Reopen it and open "Custom (Advanced)"
  4. Select the luks partition and attempt to decrypt it

Expected behavior: After the partition decrypts, it should be able to be selected for formatting like non-encrypted partitions can, as seen at https://mutschler.dev/linux/pop-os-btrfs-22-04/

Other Notes:

EDIT

I was able to decrypt the partition. I selected "modify partitions" and decrypted it. I then formatted it to btrfs and exited gparted. I was then able to decrypt it fine in the Pop installer. However, I feel this issue still stands as the Pop!_OS installer is still unable to decrypt by itself.