Create /dev/md* device file if missing when creating a RAID set.
---- Changes since 1.450 ----
Added a button for changing the number of active devices in a RAID 5 or 6 set, thanks to Diego Zuccato.
+---- Changes since 1.480 ----
+Added an option to the RAID 1 creation form to mark one of the disks as missing initially.
if (!@disks) {
&error($text{'create_edisks'});
}
-elsif ($in{'level'} == 1 && @disks < 2) {
+elsif ($in{'level'} == 1 && scalar(@disks)+$in{'missing'} < 2) {
&error($text{'create_edisks2'});
}
push(@members, { 'name' => 'nr-raid-disks',
&create_raid($raid);
&unlock_raid_files();
-if ($err = &make_raid($raid, $in{'force'})) {
+if ($err = &make_raid($raid, $in{'force'}, $in{'missing'})) {
&delete_raid($raid);
&error($err);
}
create_disks=Partitions in RAID
create_spares=Spare partitions
create_pdisk=Parity partition
+create_missing=Include currently missing disk?
create_pauto=Automatic
create_nodisks=No free partitions are available for RAID.
create_super=Persistent superblock?
}
}
-# make_raid(&raid, force)
+# make_raid(&raid, force, [missing])
# Call mkraid or mdadm to make a raid set for real
sub make_raid
{
}
}
local $cmd = "mdadm --$mode --level $lvl --chunk $chunk";
+ if ($_[2]) {
+ push(@devices, "missing");
+ }
$cmd .= " --parity $parity" if ($parity);
$cmd .= " --raid-devices ".scalar(@devices);
$cmd .= " --spare-devices ".scalar(@spares) if (@spares);
@disks ], 4, 1));
}
+# Missing disk option
+if ($lvl == 1 && $raid_mode eq 'mdadm') {
+ print &ui_table_row($text{'create_missing'},
+ &ui_yesno_radio("missing", 0));
+ }
+
# Force creation
print &ui_table_row($text{'create_force'},
&ui_yesno_radio("force", 0));