diff options
Diffstat (limited to 'draklive')
-rwxr-xr-x | draklive | 23 |
1 files changed, 14 insertions, 9 deletions
@@ -654,6 +654,19 @@ sub get_disk_master_path { $live->get_builddir . $live->{prefix}{build}{dist} . '/' . $live->get_name . '.img'; } +sub allocate_partition { + my ($dest, $sector_size, $fs, $o_inode_size) = @_; + my ($part_start, $part_nb_sectors) = run_program::get_stdout("sfdisk -d $dest") =~ /start=\s*(\d+),\s*size=\s*(\d+)/; + + require devices; + my $loop = devices::find_free_loop(); + run_('losetup', '-o', $part_start * $sector_size, '-s', $part_nb_sectors * $sector_size, $loop, $dest) + or die "unable to setup loop device"; + MDV::Draklive::Utils::device_mkfs($loop, $fs, $o_inode_size) or die "unable to format $dest\n"; + + return $loop; +} + sub allocate_master { my ($dest, $size, $fs, $o_inode_size) = @_; mkdir_p(dirname($dest)); @@ -687,15 +700,7 @@ w EOF close($fdisk) or die "unable to run fdisk\n" . ("$!" ? "Error closing fdisk pipe: $!" : "Exit status $? from fdisk"); - my ($part_start, $part_nb_sectors) = run_program::get_stdout("sfdisk -d $dest") =~ /start=\s*(\d+),\s*size=\s*(\d+)/; - - require devices; - my $loop = devices::find_free_loop(); - run_('losetup', '-o', $part_start * $sector_size, '-s', $part_nb_sectors * $sector_size, $loop, $dest) - or die "unable to setup loop device"; - MDV::Draklive::Utils::device_mkfs($loop, $fs, $o_inode_size) or die "unable to format $dest\n"; - - return $loop; + return allocate_partition($dest, $sector_size, $fs, $o_inode_size); } sub create_disk_master { |