Can't install, rsync failure, using efi+luks+lvm

Hi,

I spent some time now trying to install Manjaro 21.1.3 on my laptop. Each time I try, calamares fails at the same point:

Installation failed
Failed to unpack image /run/miso/bootmnt/manjaro/x86_64/desktopfs.sfs
rsync failed with error code 11.

I tried 2 installers (normal, minimal LTS). I checked the SHA1 and GPG signature OK.

Here is the lsblk during calamares install:

sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0    64M  0 part /tmp/calamares-root-ir7gqd9j/boot/efi
├─sda2   8:2    0     1G  0 part /tmp/calamares-root-ir7gqd9j/boot
├─sda3   8:3    0   390G  0 part 
└─sda4   8:4    0  74.7G  0 part /tmp/calamares-root-ir7gqd9j/mnt/unsecure

Here is the lsblk+fdisk after manually mounting the way I want.

sda                   8:0    0 465.8G  0 disk  
├─sda1                8:1    0    64M  0 part  /mnt/boot/efi
├─sda2                8:2    0     1G  0 part  /mnt/boot
├─sda3                8:3    0   390G  0 part  
│ └─crypt           254:0    0   390G  0 crypt 
│   ├─vg--root-root 254:1    0   180G  0 lvm   /mnt
│   ├─vg--root-swap 254:2    0    12G  0 lvm   [SWAP]
│   └─vg--root-home 254:3    0   198G  0 lvm   /mnt/home
└─sda4                8:4    0  74.7G  0 part  /mnt/mnt/unsecure

Disk /dev/sda: 465.76 GiB, 500107862016 bytes, 976773168 sectors
Disk model: WDC  WDS500G2B0A
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 10F045BB-87EA-1147-A1AD-CA8D63C1E55D
Device         Start       End   Sectors  Size Type
/dev/sda1       2048    133119    131072   64M EFI System
/dev/sda2     133120   2230271   2097152    1G Linux filesystem
/dev/sda3    2230272 820119551 817889280  390G Linux LVM
/dev/sda4  820119552 976773134 156653583 74.7G Linux filesystem

Disk /dev/mapper/crypt: 389.98 GiB, 418742534144 bytes, 817856512 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/vg--root-root: 180 GiB, 193273528320 bytes, 377487360 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/vg--root-swap: 12 GiB, 12884901888 bytes, 25165824 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mapper/vg--root-home: 197.98 GiB, 212579909632 bytes, 415195136 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

It looks like calamares has an issue with the luks partition. Here is a part of the log that I don’t quite understand:

...
    Starting job "Clear mounts for partitioning operations on /dev/sda" ( 3 / 32 ) 
15:40:54 [6]: QStringList getPartitionsForDevice(const QString&)
    Reading from "/proc/partitions" 
15:40:55 [6]: virtual Calamares::JobResult ClearMountsJob::exec()
    ClearMountsJob finished. Here's what was done:
 "Successfully closed mapper device /dev/mapper/vg--root-home.\nSuccessfully closed mapper device /dev/mapper/vg--root-root.\nSuccessfully closed mapper device /dev/mapper/vg--root-swap.\nSuccessfully closed mapper device /dev/mapper/crypt." 
15:40:55 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
    Running "env" ("udevadm", "settle") 
    ..  Finished. Exit code: 0 
15:40:55 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
    Running "env" ("sync") 
    ..  Finished. Exit code: 0 
15:40:55 [6]: virtual void Calamares::JobThread::run()
    Starting job "Clear mounts for partitioning operations on /dev/vg-root" ( 4 / 32 ) 
15:40:55 [6]: QStringList getPartitionsForDevice(const QString&)
    Reading from "/proc/partitions" 
15:40:55 [6]: virtual Calamares::JobResult ClearMountsJob::exec()
    ClearMountsJob finished. Here's what was done:
 "" 
15:40:55 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
    Running "env" ("udevadm", "settle") 
    ..  Finished. Exit code: 0 
15:40:55 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
    Running "env" ("sync") 
    ..  Finished. Exit code: 0 
15:40:55 [6]: virtual void Calamares::JobThread::run()
    Starting job "Set partition information" ( 5 / 32 ) 
15:40:55 [6]: QVariantList FillGlobalStorageJob::createPartitionList() const
    Building partition information map 
    ..  partitions on "/dev/sda" 
    ..  mapping for "/dev/sda1" "/dev/sda1" 
     partlabel :   "" 
     partuuid :   "AE7E2A24-81FC-A549-BB39-635544E7477C" 
     parttype :   "C12A7328-F81F-11D2-BA4B-00A0C93EC93B" 
     partattrs :   "0" 
     mountPoint: :   "/boot/efi" 
     fs: :   "fat32" 
     fsName :   "fat32" 
     uuid :   "55F0-EDA6" 
     claimed :   "false" 
    ..  mapping for "/dev/sda2" "/dev/sda2" 
     partlabel :   "" 
     partuuid :   "D1AC20CF-70C4-E142-BEE7-FA11C54DF07B" 
     parttype :   "0FC63DAF-8483-4772-8E79-3D69D8477DE4" 
     partattrs :   "0" 
     mountPoint: :   "/boot" 
     fs: :   "ext4" 
     fsName :   "ext4" 
     uuid :   "162cc269-c0d0-481b-a76c-34689ff410d0" 
     claimed :   "false" 
    ..  mapping for "/dev/sda3" "/dev/sda3" 
     partlabel :   "" 
     partuuid :   "92C8E98D-7518-B34C-97FB-1975A50CADD1" 
     parttype :   "E6D6D379-F507-44C2-A23C-238F2A3DF928" 
     partattrs :   "0" 
     mountPoint: :   "" 
     fs: :   "lvm2 pv" 
     fsName :   "lvm2 pv" 
     uuid :   "" 
     claimed :   "false" 
     luksMapperName: :   "crypt" 
    ..  mapping for "/dev/sda4" "/dev/sda4" 
     partlabel :   "" 
     partuuid :   "3B7F2506-94B5-C144-8E28-BC2D336ECCD7" 
     parttype :   "0FC63DAF-8483-4772-8E79-3D69D8477DE4" 
     partattrs :   "0" 
     mountPoint: :   "/mnt/unsecure" 
     fs: :   "ext4" 
     fsName :   "ext4" 
     uuid :   "1b2ae502-dd9c-4e9e-9a1d-100d35b2438f" 
     claimed :   "false" 
    ..  partitions on "/dev/vg-root" 
    ..  mapping for "/dev/vg-root/home" "/dev/vg-root/home" 
     partlabel :   "" 
     partuuid :   "" 
     parttype :   "" 
     partattrs :   "0" 
     mountPoint: :   "/home" 
     fs: :   "ext4" 
     fsName :   "ext4" 
     uuid :   "" 
     claimed :   "false" 
    ..  mapping for "/dev/vg-root/root" "/dev/vg-root/root" 
     partlabel :   "" 
     partuuid :   "" 
     parttype :   "" 
     partattrs :   "0" 
     mountPoint: :   "/" 
     fs: :   "ext4" 
     fsName :   "ext4" 
     uuid :   "" 
     claimed :   "false" 
    ..  mapping for "/dev/vg-root/swap" "/dev/vg-root/swap" 
     partlabel :   "" 
     partuuid :   "" 
     parttype :   "" 
     partattrs :   "0" 
     mountPoint: :   "" 
     fs: :   "linuxswap" 
     fsName :   "linuxswap" 
     uuid :   "" 
     claimed :   "false" 
15:40:55 [6]: virtual Calamares::JobResult FillGlobalStorageJob::exec()
    Saving partition information map to GlobalStorage["partitions"] 
15:40:55 [6]: virtual Calamares::JobResult FillGlobalStorageJob::exec()
    FillGlobalStorageJob writing bootLoader path: QVariant(QVariantMap, QMap(("installPath", QVariant(QString, "/dev/sda")))) 
15:40:55 [6]: virtual void Calamares::JobThread::run()
    Starting job "Manage auto-mount settings" ( 6 / 32 ) 
15:40:55 [8]: virtual Calamares::JobResult AutoMountManagementJob::exec()
    this @0x55e348a431b0 value S@0x7fdb34004370 restore 
15:40:55 [6]: virtual void Calamares::JobThread::run()
    Starting job "mount" ( 7 / 32 ) 
15:40:56 [6]: virtual Calamares::JobResult Calamares::PythonJob::exec()
    Job file "/usr/lib/calamares/modules/mount/main.py" 
15:40:56 [6]: boost::python::api::object CalamaresPython::gettext_path()
    Determining gettext path from ("/home/manjaro", "/usr/bin", "/usr/share/locale") 
    ..  Found "en_GB" in "/usr/share/locale/en_GB" 
    ..  Job description from pretty_name "mount" = "Mounting partitions." 
chcon: failed to get security context of '/': Operation not supported
15:40:56 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
    Running "env" ("mount", "-t", "ext4", "/dev/vg-root/root", "/tmp/calamares-root-ir7gqd9j/") 
    ..  Target cmd: ("mount", "-t", "ext4", "/dev/vg-root/root", "/tmp/calamares-root-ir7gqd9j/") Exit code: 32 output:
 mount: /tmp/calamares-root-ir7gqd9j: special device /dev/vg-root/root does not exist.
15:40:56 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
    Running "env" ("udevadm", "settle") 
    ..  Finished. Exit code: 0 
15:40:56 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
    Running "env" ("sync") 
    ..  Finished. Exit code: 0 
15:40:56 [2]: void CalamaresPython::warning(const string&)
    WARNING: [PYTHON JOB]:  "Cannot mount /dev/vg-root/root" 
chcon: failed to get security context of '/boot': Operation not supported
15:40:56 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
    Running "env" ("mount", "-t", "ext4", "/dev/sda2", "/tmp/calamares-root-ir7gqd9j/boot") 
    ..  Finished. Exit code: 0 
...
15:41:20 [6]: static CalamaresUtils::ProcessResult CalamaresUtils::System::runCommand(CalamaresUtils::System::RunLocation, const QStringList&, const QString&, const QString&, std::chrono::seconds)
    Running "env" ("sync") 
    ..  Finished. Exit code: 0 
rsync: [receiver] write failed on "/tmp/calamares-root-ir7gqd9j/usr/lib/firefox/libxul.so": No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(378) [receiver=v3.2.3]
rsync: [sender] write error: Broken pipe (32)
15:41:43 [2]: void CalamaresPython::warning(const string&)
    WARNING: [PYTHON JOB]:  "rsync failed with error code 11." 
...
15:41:43 [6]: virtual void Calamares::JobThread::run()
    Skipping non-emergency job "umount"
15:41:43 [1]: void Calamares::ViewManager::onInstallationFailed(const QString&, const QString&)
    ERROR: Installation failed: "Failed to unpack image \"/run/miso/bootmnt/manjaro/x86_64/desktopfs.sfs\"" 
    ..  - message: "Failed to unpack image \"/run/miso/bootmnt/manjaro/x86_64/desktopfs.sfs\"" 
    ..  - details: rsync failed with error code 11.
15:41:43 [6]: void Calamares::ViewManager::onInstallationFailed(const QString&, const QString&)
    Calamares will quit when the dialog closes. 

I am doing partitions by hand because calamares cannot.

Can anyone tell me what is wrong with my setup?

Hello @Sdrkzx :wink:

It seems this is your problem:

The problem could be that the partition is not mounted there… for what ever reason and therefore it tries to write on the live session and failed… :man_shrugging:

With mount you can check if the partition is mounted at /tmp/calamares-root-ir7gqd9jand which options are used.

Thank you. You made me have a better look at the log.

  • During step 3 “Clear mounts for partitioning operations”
  • At 15:40:55, calamares does a luksClose
  • During step 7 “mount”
  • At 15:40:56, calamares tries to mount / without doing a luksOpen and fails
  • Later at 15:41:20, rsync fails to write in the root partition.

I think calamares is doing it wrong. Why does it closes the luks part? Or why does it not open it before mounting partitions?

Right now I will try starting calamares without mounting partitions manually.

If it means anything, and you’re out of ideas, you can try again from scratch with the previous release. I had an issue with 21.1.3’s installer (KDE iso), in which I had to format the partitions/filesystems ahead of time, otherwise the installer would simply crash. :man_shrugging:

(The SHA1 checksum matched.)


It would get to the part where it’s ready to install the system and just abort. I tried with Ext4, XFS, and Btrfs.

1 Like

I can’t find a way to open the LUKS partition within calamares without opening it beforehand. How are we supposed to do that?

I would like to try the previous release but I can’t find it (21.1.2) in the archive.

Installation using an archived ISO may succeed but impossible to update due to ABI changes.

Should I try 20.2.1?

EDIT: I found it at Manjaro 21.1.2 Pahvo released!
Now downloading… SHA1 OK.
Now preparing USB media…

Is this a dual-boot setup? Are you using the “Manual” method, or the “Erase whole disk” method?

No dual boot involved.
Using manual partitioning because of my need for LUKS+LVM.

Exact same problem with 21.1.2.

I found this calamares issue 1564 from 2020-11-02. It indicates my setup (LUKS+LVM) is not officially supported.

Should I try the manual install?

I remember my previous install (2020-11) using the architect edition; it supported my setup well.
Is there a way to run the architect’s CLI installer using the recent editions?

Well if nothing helps, then do a manual installation without calamares. Here is an example which can be adapted to your case:

You can install it after booting into the live USB system:

sudo pamac install manjaro-architect

However, it hasn’t been maintained, and it’s considered “use at your own risk”. I don’t believe it will be inherently dangerous to use, as it’s been quite reliable in the past.

Thanks guys. I’ll try that a bit later today.

Here is an update.I started the manual install. All went well until grub-install.

chroot# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Manjaro
EFI variables are not supported on this system.
grub-install: error: efibootmgr failed to register the boot entry: No such file or directory.

I would suggest editing the manual installation article to add an early check for this condition.

Now I will try to boot my USB using UEFI. Previous attempts have failed; let’s try again :crossed_fingers:

Here is an update. After booting again using UEFI, I ran grub-install.

When rebooting to the new system, the passphrase is asked. Then:

ERROR: device /dev/mapper/vg--root-root not found. 
mount: /new_root: no filesystem type specified.
You are now being dropped into an emergency shell. 
rootfs #

Maybe I forgot a lvm hook for mkinitcpio? Now checking for that…

EDIT: I think the basestrap command was missing the lvm2 package. And the HOOKS was also missing lvm2. Now trying to fix it… :crossed_fingers:

System is now installed and running! :clap:

The issues I encountered:

  • calamares is not able to setup luks+lvm: do a manual install
  • not booting the USB media in UEFI mode
  • missing lvm2 info for basestrap
  • missing lvm2 info for mkinitcpio

Thank you @megavolt and @winnie

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.