From 7876697e307c75eb0574195a5ac5592bdc690a0e Mon Sep 17 00:00:00 2001 From: immarvin Date: Thu, 14 Apr 2016 10:39:35 -0400 Subject: [PATCH] add xz to rh6 netboot pkglist;do not mount /proc,/sys and /dev during genimage for rh6;do not add syslog module for dracut to generate initrd on rh6 --- .../netboot/rh/compute.rhels6.ppc64.pkglist | 1 + .../netboot/rh/compute.rhels6.x86_64.pkglist | 1 + xCAT-server/share/xcat/netboot/rh/genimage | 60 +++++++++++++------ 3 files changed, 44 insertions(+), 18 deletions(-) diff --git a/xCAT-server/share/xcat/netboot/rh/compute.rhels6.ppc64.pkglist b/xCAT-server/share/xcat/netboot/rh/compute.rhels6.ppc64.pkglist index 992097641..6ad7101c8 100644 --- a/xCAT-server/share/xcat/netboot/rh/compute.rhels6.ppc64.pkglist +++ b/xCAT-server/share/xcat/netboot/rh/compute.rhels6.ppc64.pkglist @@ -24,3 +24,4 @@ lsvpd irqbalance procps parted +xz diff --git a/xCAT-server/share/xcat/netboot/rh/compute.rhels6.x86_64.pkglist b/xCAT-server/share/xcat/netboot/rh/compute.rhels6.x86_64.pkglist index e235bfaba..cf0538893 100644 --- a/xCAT-server/share/xcat/netboot/rh/compute.rhels6.x86_64.pkglist +++ b/xCAT-server/share/xcat/netboot/rh/compute.rhels6.x86_64.pkglist @@ -20,3 +20,4 @@ rsync rsyslog e2fsprogs parted +xz diff --git a/xCAT-server/share/xcat/netboot/rh/genimage b/xCAT-server/share/xcat/netboot/rh/genimage index 81688a1be..da2d15e70 100755 --- a/xCAT-server/share/xcat/netboot/rh/genimage +++ b/xCAT-server/share/xcat/netboot/rh/genimage @@ -73,18 +73,35 @@ sub xdie { die @_; } + +#helper subroutine to get the major release number +#of a osver +sub majversion { + my $version=shift; + my $majorrel; + + if($osver =~ /$\D*(\d*)[.\d]*$/){ + $majorrel=$1; + } + + return $majorrel; +} + sub mount_chroot { my $rootimage_dir = shift; - #postinstall script of package installation - #might access the /proc, /sys and /dev filesystem - #mount them from host read-only - system("mkdir -p $rootimage_dir/proc"); - system("mount proc $rootimage_dir/proc -t proc -o ro"); - system("mkdir -p $rootimage_dir/sys"); - system("mount sysfs $rootimage_dir/sys -t sysfs -o ro"); - system("mkdir -p $rootimage_dir/dev"); - system("mount devtmpfs $rootimage_dir/dev -t devtmpfs -o ro"); + if(majversion($osver) > 6){ + #postinstall script of package installation + #might access the /proc, /sys and /dev filesystem + #mount them from host read-only + #only available for rh7 or above + system("mkdir -p $rootimage_dir/proc"); + system("mount proc $rootimage_dir/proc -t proc -o ro"); + system("mkdir -p $rootimage_dir/sys"); + system("mount sysfs $rootimage_dir/sys -t sysfs -o ro"); + system("mkdir -p $rootimage_dir/dev"); + system("mount devtmpfs $rootimage_dir/dev -t devtmpfs -o ro"); + } } @@ -92,9 +109,11 @@ sub mount_chroot { sub umount_chroot { my $rootimage_dir = shift; - system("umount $rootimage_dir/proc"); - system("umount $rootimage_dir/sys"); - system("umount $rootimage_dir/dev"); + if(majversion($osver) >6){ + system("umount $rootimage_dir/proc"); + system("umount $rootimage_dir/sys"); + system("umount $rootimage_dir/dev"); + } } #check whether a dir is NFS mounted @@ -969,14 +988,19 @@ sub mkinitrd_dracut { $perm = (stat("$fullpath/$dracutdir/installkernel"))[2]; chmod($perm&07777, "$dracutmpath/installkernel"); + my $dracutmodulelist=" xcat nfs base network kernel-modules "; + if (-d glob($dracutmoduledir."[0-9]*fadump")){ + $dracutmodulelist .=" fadump "; + + } + + if ($dracutver >= "033") { + $dracutmodulelist .= " syslog "; + } + # update etc/dracut.conf open($DRACUTCONF, '>', "$rootimg_dir/etc/dracut.conf"); - if (-d glob($dracutmoduledir."[0-9]*fadump")){ - print $DRACUTCONF qq{dracutmodules+="xcat nfs base network kernel-modules fadump syslog"\n}; - } - else{ - print $DRACUTCONF qq{dracutmodules+="xcat nfs base network kernel-modules syslog"\n}; - } + print $DRACUTCONF qq{dracutmodules+="$$dracutmodulelist"\n}; print $DRACUTCONF qq{add_drivers+="$add_drivers"\n}; close $DRACUTCONF; } else {