summaryrefslogtreecommitdiffstats
path: root/perl-install/fs/dmcrypt.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/fs/dmcrypt.pm')
-rw-r--r--perl-install/fs/dmcrypt.pm14
1 files changed, 8 insertions, 6 deletions
diff --git a/perl-install/fs/dmcrypt.pm b/perl-install/fs/dmcrypt.pm
index e2d67b37a..0b9c58337 100644
--- a/perl-install/fs/dmcrypt.pm
+++ b/perl-install/fs/dmcrypt.pm
@@ -16,10 +16,8 @@ sub _crypttab() { "$::prefix/etc/crypttab" }
sub init() {
whereis_binary('cryptsetup') or die "cryptsetup not installed";
- eval { modules::load('dm-crypt', 'cbc', 'sha256_generic', arch() =~ /i.86/ ? 'aes-i586' : 'aes') };
+ eval { modules::load('dm-crypt', 'cbc', 'sha256_generic', if_(arch() =~ /i.86/, 'aes-i586'), if_( arch() =~ /x86_64/, 'aes-x86_64'), 'aes_generic') };
devices::init_device_mapper();
- if ($::isInstall) {
- }
1;
}
my $initialized;
@@ -80,6 +78,7 @@ sub open_part {
_run_or_die('luksOpen', devices::make($part->{device}),
$part->{dm_name}, '--key-file', $_[0]);
});
+ run_program::run('udevadm', 'settle') unless $::isInstall;
my $active_dmcrypt = _parse_dmsetup_table($part->{dm_name},
run_program::get_stdout('dmsetup', 'table', $part->{dm_name}));
@@ -110,8 +109,11 @@ sub get_existing {
sub _get_existing_one {
my ($fstab, $active_dmcrypt) = @_;
+ my $p = fs::wild_device::to_subpart("/dev/mapper/$active_dmcrypt->{name}");
+
my $part = { device => "mapper/$active_dmcrypt->{name}", size => $active_dmcrypt->{size},
- options => 'noatime', dmcrypt_name => $active_dmcrypt->{name} };
+ options => 'noatime', dmcrypt_name => $active_dmcrypt->{name},
+ major => $p->{major}, minor => $p->{minor} };
if (my $raw_part = find { fs::get::is_same_hd($active_dmcrypt, $_) } @$fstab) {
$part->{rootDevice} = $raw_part->{device};
@@ -126,7 +128,7 @@ sub _get_existing_one {
}
fs::type::set_isFormatted($part, to_bool($part->{fs_type}));
- $part->{fs_type} or fs::type::set_fs_type($part, 'ext3');
+ $part->{fs_type} or fs::type::set_fs_type($part, defaultFS());
log::l("dmcrypt: found $part->{device} type $part->{fs_type} with rootDevice $part->{rootDevice}");
@@ -146,7 +148,7 @@ sub _parse_dmsetup_table {
}
sub active_dm() {
- run_program::run('udevadm', 'settle');
+ run_program::run('udevadm', 'settle') unless $::isInstall;
map {
my $name = s/(.*?):\s*// && $1;