diff --git a/xCAT-server/lib/perl/xCAT/PPC.pm b/xCAT-server/lib/perl/xCAT/PPC.pm
index 11700310d..69b9bda47 100644
--- a/xCAT-server/lib/perl/xCAT/PPC.pm
+++ b/xCAT-server/lib/perl/xCAT/PPC.pm
@@ -1932,13 +1932,21 @@ sub preprocess_request {
             #print "nodes=@nodes\n";
             push @requests, $reqcopy;
              
-            if(($req->{command}->[0] eq "rflash") && ( exists( $req->{opt}->{activate} ) ) && xCAT::Utils->isAIX() ) {
-                if ( $masters[0] ne $snkey ) {
+            if(($req->{command}->[0] eq "rflash") && ( exists( $req->{opt}->{activate} ) ) ) {
+                my $linuxrequired = 0;
+                if ( xCAT::Utils->isLinux() ) {
+                    my @installloc = xCAT::Utils->get_site_attribute("installloc");
+                    if (! ($installloc[0])) {
+                        $linuxrequired = 1;       
+                    }
+                }
+                
+                if ( ($linuxrequired || xCAT::Utils->isAIX()) && ( $masters[0] ne $snkey )) {
                     my $install_dir = xCAT::Utils->getInstallDir();
-                    my $cmd = "$::XCATROOT/bin/xdcp $snkey -P -R  $install_dir/packages_fw $install_dir/";
+                    my $cmd = "$::XCATROOT/bin/xdcp $snkey -R  $install_dir/packages_fw $install_dir/";
                     my $result = xCAT::Utils->runcmd("$cmd", -1); 
                     if ($::RUNCMD_RC != 0) {
-                        $callback->({data=>["Could not copy rpms in the $install_dir/packages_fw  to $snkey.\n"]});
+                        $callback->({data=>["$result. Could not copy rpms in the $install_dir/packages_fw  to $snkey.\n"]});
                         $req = {};
                         return;
                     }