diff -up e-smith-base-5.2.0/root/usr/lib/perl5/site_perl/esmith/console/perform_backup.pm.list-only-write-enabled-backup-targets e-smith-base-5.2.0/root/usr/lib/perl5/site_perl/esmith/console/perform_backup.pm --- e-smith-base-5.2.0/root/usr/lib/perl5/site_perl/esmith/console/perform_backup.pm.list-only-write-enabled-backup-targets 2011-03-14 11:13:13.000000000 +0100 +++ e-smith-base-5.2.0/root/usr/lib/perl5/site_perl/esmith/console/perform_backup.pm 2011-03-14 11:24:21.000000000 +0100 @@ -154,29 +154,35 @@ sub doit my @labels = (); foreach my $udi (qx(hal-find-by-property --key volume.fsusage --string filesystem)) { $udi =~ m/^(\S+)/; - my $is_mounted = qx(hal-get-property --udi $1 --key volume.is_mounted); - if ($is_mounted eq "false\n") { - my $blkdev = qx(hal-get-property --udi $1 --key block.device); - $blkdev =~ m/^(\S+)/; - push @dirs, $1; - } - if ($is_mounted eq "false\n") { - my $vollbl = qx(hal-get-property --udi $1 --key volume.label); - $vollbl =~ m/^(\S+)/; - if ($vollbl =~ /^\s/) {$vollbl = 'nolabel';} - chomp $vollbl; - push @labels, lc($vollbl); + my $is_readonly = qx(hal-get-property --udi $1 --key volume.is_mounted_read_only); + + if ($is_readonly eq "false\n") { + + my $is_mounted = qx(hal-get-property --udi $1 --key volume.is_mounted); + + if ($is_mounted eq "false\n") { + my $blkdev = qx(hal-get-property --udi $1 --key block.device); + $blkdev =~ m/^(\S+)/; + push @dirs, $1; + } + if ($is_mounted eq "false\n") { + my $vollbl = qx(hal-get-property --udi $1 --key volume.label); + $vollbl =~ m/^(\S+)/; + if ($vollbl =~ /^\s/) {$vollbl = 'nolabel';} + chomp $vollbl; + push @labels, lc($vollbl); + } } } unless ($dirs[0]) { ($rc, $choice) = $console->message_page ( - title => gettext("Backup medium not found"), + title => gettext("Write enabled backup medium not found"), right => gettext("Back"), text => - gettext("No removable media or device found"), + gettext("No removable and write enabled media or device found"), ); goto INITIATE_BACKUP; }