diff --git a/usr/share/rear/conf/Linux-ppc64.conf b/usr/share/rear/conf/Linux-ppc64.conf index 71fa8fa3..85924971 100644 --- a/usr/share/rear/conf/Linux-ppc64.conf +++ b/usr/share/rear/conf/Linux-ppc64.conf @@ -1,6 +1,7 @@ REQUIRED_PROGS=( "${REQUIRED_PROGS[@]}" sfdisk +ofpathname ) PROGS=( @@ -9,14 +10,22 @@ mkofboot ofpath ybin yabootconfig -bootlist pseries_platform nvram -ofpathname bc agetty ) +if grep -q "emulated by qemu" /proc/cpuinfo ; then + # Qemu/KVM virtual machines don't need bootlist - don't complain if + # it is missing + PROGS+=( bootlist ) +else + # PowerVM environment, we need to run bootlist, otherwise + # we can't make the system bpotable. Be strict about requiring it + REQUIRED_PROGS+=( bootlist ) +fi + COPY_AS_IS=( "${COPY_AS_IS[@]}" /usr/lib/yaboot/yaboot diff --git a/usr/share/rear/conf/Linux-ppc64le.conf b/usr/share/rear/conf/Linux-ppc64le.conf index 2ea82b85..52c15e75 100644 --- a/usr/share/rear/conf/Linux-ppc64le.conf +++ b/usr/share/rear/conf/Linux-ppc64le.conf @@ -5,10 +5,8 @@ sfdisk PROGS=( "${PROGS[@]}" -bootlist pseries_platform nvram -ofpathname bc agetty ) @@ -21,4 +19,18 @@ agetty if [[ $(awk '/platform/ {print $NF}' < /proc/cpuinfo) != PowerNV ]] ; then # No firmware files when ppc64le Linux is not run in BareMetal Mode (PowerNV): test "${FIRMWARE_FILES[*]}" || FIRMWARE_FILES=( 'no' ) + # grub2-install for powerpc-ieee1275 calls ofpathname, so without it, + # the rescue system can't make the recovered system bootable + REQUIRED_PROGS+=( ofpathname ) + if grep -q "emulated by qemu" /proc/cpuinfo ; then + # Qemu/KVM virtual machines don't need bootlist - don't complain if + # it is missing + PROGS+=( bootlist ) + else + # PowerVM environment, we need to run bootlist, otherwise + # we can't make the system bpotable. Be strict about requiring it + REQUIRED_PROGS+=( bootlist ) + fi +else + PROGS+=( ofpathname bootlist ) fi