Bug 728314

Summary: YaST can't check size of already existing crypto device on installation
Product: [openSUSE] openSUSE 12.1 Reporter: Danny Al-Gaaf <dalgaaf>
Component: YaST2Assignee: Ladislav Slezák <lslezak>
Status: RESOLVED DUPLICATE QA Contact: Jiri Srain <jsrain>
Severity: Major    
Priority: P3 - Medium    
Version: RC 2   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: screenshot of install summary dialog

Description Danny Al-Gaaf 2011-11-04 13:38:59 UTC
Created attachment 460487 [details]
screenshot of install summary dialog

In the installation summary dialog YaST complains it isn't able to check/detect the size of a already existing crypto device (don't format the device, only mount it). 

This is strange since:
a) the affected device isn't even needed for installation (/local in this case)
b) the YaST partitioner asked for the password of the partition, which I entered. It shouldn't be that hard to use the password to mount the device and check the size if really needed.

I attach a screenshot
Comment 1 Andreas Jaeger 2011-11-04 14:16:27 UTC
Could you add the yast2 log files, please?
Comment 2 Danny Al-Gaaf 2011-11-04 14:20:11 UTC
see http://bugzilla.novell.com/attachment.cgi?id=460491
Comment 3 Martin Vidner 2011-11-09 16:40:52 UTC
package bindings or storage, let's try the former first
Comment 4 Ladislav Slezák 2011-11-15 13:39:24 UTC
The problem is in SpaceCalculation.ycp:

2011-11-04 13:25:48 <1> e123.suse.de(3358) [YCP] SpaceCalculation.ycp:587 Adding partition: $["crypt_device":"/dev/mapper/cr_sda6", "detected_fs":`ext4, "device":"/dev/sda6", "enc_type":`luks
, "fsid":131, "fstype":"Linux native", "inactive":true, "mount":"/local", "mountby":`id, "name":"sda6", "nr":6, "region":[7361, 83840], "size_k":673436672, "type":`logical, "udev_id":["ata-WD
C_WD7500BPKT-60PK4T0_WD-WX31E1176283-part6", "scsi-SATA_WDC_WD7500BPKT-_WD-WX31E1176283-part6", "wwn-0x50014ee2b05d5049-part6"], "udev_path":"pci-0000:00:1f.2-scsi-0:0:0:0-part6", "used_fs":`
ext4, "uuid":"894a837f-56bb-48ff-a80e-5906e18adea2"]
2011-11-04 13:25:48 <1> e123.suse.de(3358) [YCP] SpaceCalculation.ycp:645 Executing mount command: /bin/mount -o ro /dev/sda6 /tmp/YaST2-03358-mW16jb/diskspace_mount
2011-11-04 13:25:48 <3> e123.suse.de(3358) [bash] ShellCommand.cc(shellcommand):78 mount: unknown filesystem type 'crypto_LUKS'
2011-11-04 13:25:48 <1> e123.suse.de(3358) [YCP] SpaceCalculation.ycp:648 Mount result: 32
2011-11-04 13:25:48 <3> e123.suse.de(3358) [YCP] SpaceCalculation.ycp:669 Mount failed, ignoring partition /dev/sda6

It simply doesn't know that the partition is encrypted and uses plain mount call which obviously fails.

The yast storage module must already have some LUKS mounting code. Thomas how can I mount an encrypted partition to see how much free space there is?
Comment 5 Thomas Fehr 2011-11-15 14:09:12 UTC
There is a function Storage::Mount( string device, string mountpoint ) 
which you could use. It automatically sets up encryption if needed. 

There is also a Storage::Umount( string device ) which un-mounts again
and also removed dm devices used for crypto if needed.

It expects a valid filesystem and encryption setup and it needs that the
user has provided crypto passwords already, but this should be the case
here.

Another question is why to check for space in directories that RPM is not
allowed to have files according to FHS at all. Why not only check for
"/", "/boot/*", "/usr/*", "/opt/*" and "/var/*" AFAIK our RPMS should not contain
files outside of the above.
Comment 6 Ladislav Slezák 2011-11-15 14:42:55 UTC
Thomas, thanks for the info.

I'd rather leave the check also non-FHS directories because there might be 3rd party packages (included in an 3rd party add-on installation media) which do not conform to FHS.
Comment 7 Ladislav Slezák 2015-02-12 13:24:22 UTC
This should be fixed in bnc#889334.

*** This bug has been marked as a duplicate of bug 889334 ***