summaryrefslogtreecommitdiffstats
path: root/lib/MGA/DrakISO/Utils.pm
diff options
context:
space:
mode:
authorMartin Whitaker <mageia@martin-whitaker.me.uk>2017-12-18 17:03:15 +0000
committerMartin Whitaker <mageia@martin-whitaker.me.uk>2017-12-18 17:11:05 +0000
commit3f2b59604f7b6e6fcbec282b86f5fea618955b4b (patch)
tree83a2622ff553053cb620252d8c149ed50ba20a57 /lib/MGA/DrakISO/Utils.pm
parent296dc5bb53c430c8842ab7327d8a76b5750c64b4 (diff)
downloaddrakiso-3f2b59604f7b6e6fcbec282b86f5fea618955b4b.tar
drakiso-3f2b59604f7b6e6fcbec282b86f5fea618955b4b.tar.gz
drakiso-3f2b59604f7b6e6fcbec282b86f5fea618955b4b.tar.bz2
drakiso-3f2b59604f7b6e6fcbec282b86f5fea618955b4b.tar.xz
drakiso-3f2b59604f7b6e6fcbec282b86f5fea618955b4b.zip
Split draklive2 into submodules.
Diffstat (limited to 'lib/MGA/DrakISO/Utils.pm')
-rw-r--r--lib/MGA/DrakISO/Utils.pm20
1 files changed, 19 insertions, 1 deletions
diff --git a/lib/MGA/DrakISO/Utils.pm b/lib/MGA/DrakISO/Utils.pm
index 1f14241..a2abd17 100644
--- a/lib/MGA/DrakISO/Utils.pm
+++ b/lib/MGA/DrakISO/Utils.pm
@@ -2,13 +2,14 @@ package MGA::DrakISO::Utils;
use MDK::Common;
use common;
+use fs;
use run_program;
use IPC::Open3;
use IO::Select;
use Exporter;
our @ISA = qw(Exporter);
-our @EXPORT = qw(directory_usage run_ run_foreach);
+our @EXPORT = qw(directory_usage run_ run_foreach mount_system_fs umount_external_fs);
sub directory_usage {
my ($dir, $o_apparent) = @_;
@@ -82,4 +83,21 @@ sub device_mkfs {
}
}
+sub mount_system_fs {
+ my ($live) = @_;
+ run_('mount', '-t', 'devtmpfs', '/dev', $live->get_system_root . '/dev');
+ run_('mount', '-t', 'proc', '/proc', $live->get_system_root . '/proc');
+ run_('mount', '-t', 'sysfs', '/sys', $live->get_system_root . '/sys');
+}
+
+sub umount_external_fs {
+ my ($live) = @_;
+ my $system_root = Cwd::abs_path($live->get_system_root);
+ my @mounts = grep { $_ =~ $system_root } split("\n", cat_('/proc/mounts'));
+ foreach (reverse(@mounts)) {
+ my @field = split(' ' , $_);
+ fs::mount::umount($field[1]);
+ }
+}
+
1;