#1323 PR merged: Separate PPC bootlist creation from bootloader installation

Labels: enhancement, bug, cleanup, fixed / solved / done

schabrolles opened issue at 2017-04-21 11:13:

Cleaning install PPC bootlist

  • Separate PPC bootlist creation from bootloader installation. creation of finalize/230_install_PPC_bootlist.sh
    This allow to reduce the copy of scripts between different Arch/Distro.

  • PPC bootlist is PowerVM specific (ppc64/ppc64le), but bootlader
    installation script can be shared with other Arch.

jsmeix commented at 2017-04-21 11:58:

when you are working on
could you perhaps also have a look at
in particular regarding my 'FIXME:' comment therein?
Many thanks in advance!

Perhaps even SUSE_LINUX/ppc64/200_install_yaboot.sh
could be done in a more generic way?
Its name is 'install_yaboot' but actualy it calls '/sbin/lilo'?
I am not a PPC user but I guess PPC experts actually
understand what goes on behind the surface here ;-)

I added you as reviewer to be a bit more on the safe side.
Perhaps you even understand PPC booting?

jsmeix commented at 2017-04-21 12:00:

many thanks for your more descriptive LogPrint message in
Regardless that I do not understand the details here,
it clearly helps PPC users to understand what goes on.

schabrolles commented at 2017-04-21 12:36:

For your understanding ... in PowerVM (POWER HW virtualization) each VM (called LPAR: ligical Partition) can dynamically set the bootdevice boot order to the Hypervizor Firmware thanks to the command bootlist.

bootlist will translate logical name like sda to a uniq full path understandable by the hypervizor /vdevice/vfc-client@3000000d/disk@500507680c21099f,0000000000000000:1,yaboot

As it is closely linked to the adapter used, LUNid etc ... we need to regenerate bootlist when we restore to a new system (migration)

schabrolles commented at 2017-04-21 12:41:

@jsmeix I've seen this FIXME, I think we should re-write the install_yaboot.sh for SLES ...; and may be renamed it install_lilo.sh ...

jsmeix commented at 2017-04-21 13:12:

feel free to clean up the PPC booloader scipts as you like.
I appreciate it!

jsmeix commented at 2017-04-21 13:14:

Luckily I am not a hypervisor so that I do not need to understand

schabrolles commented at 2017-04-21 13:23:

Yes ;-) it is not really convenient, that's why we can thanks bootlist to make this translation for us :-)

I'll have a look and propose a new 210_install_lilo.sh for SLES ppc64 and remove 200_install_yaboot.sh

schabrolles commented at 2017-04-23 19:52:


  • In SuSe, which uses lilo boot manager, PReP Boot partition is using a filesystem formatted in vfat=> blkid can detect this partition.
  • In RHEL 6, which uses yaboot boot manager, PReP Boot partition is RAW formatted => can't be detected by blkid

I would like to use "same kind" of script for 200_install_lilo.sh and 210_install_yaboot.sh... for an easier maintenance ...
There is no other reason :-) ... So, I'm open to other suggestion and feedback.

schabrolles commented at 2017-04-28 09:48:

@gdha, @jsmeix I've moved PPC bootlist to be run after bootloader creation.
I start changing numbering in finalize for issue #1331.

Can I use this branch to push the new numbering ? (because some files are changed or created in finalize in this branch, using the same branch will help to avoid conflict during merge.)

gdha commented at 2017-04-28 10:08:

@schabrolles yes use the master branch - the dev branch has been deprecated for the moment

schabrolles commented at 2017-04-28 10:27:

@gdha Ok, but I would say, can I use this thread (#1323) and make the changes for #1331 in my remote branch schabrolles:install_PPC_bootlist

schabrolles commented at 2017-04-28 18:08:

@gdha @jsmeix
I made some adjustment regarding the numbering in finalize.

Here is what I get now:

Source finalize/default/010_prepare_checks.sh
Source finalize/default/100_populate_dev.sh
Source finalize/GNU/Linux/250_migrate_disk_devices_layout.sh
Source finalize/GNU/Linux/250_migrate_lun_wwid.sh
Source finalize/GNU/Linux/260_rename_diskbyid.sh
Source finalize/GNU/Linux/280_migrate_uuid_tags.sh
Source finalize/GNU/Linux/300_create_mac_mapping.sh
Source finalize/GNU/Linux/310_migrate_udev_rules.sh
Source finalize/GNU/Linux/320_migrate_network_configuration_files.sh
Source finalize/GNU/Linux/430_create_multipath_config.sh
Source finalize/SUSE_LINUX/ppc64/550_rebuild_initramfs.sh
Source finalize/Linux-ppc64/600_install_yaboot.sh
Source finalize/Linux-ppc64/610_install_lilo.sh
Source finalize/Linux-ppc64/620_install_grub2.sh
Source finalize/Linux-ppc64/680_install_PPC_bootlist.sh
Source finalize/default/880_check_for_mount_by_id.sh
Source finalize/default/890_finish_checks.sh
Source finalize/default/900_remount_sync.sh

I also put a first draft for the readme:

000-099: initialization
100-199: creating devices on TARGET (/dev)
200-299: disk device migration
300-399: network device migration
400-499: Update some configuration on TARGET (like multipath)
500-599: rebuild initrd
600-699: bootloader installation
800-899: Last Check
900-999: Remount all TARGET FS in /mnt/local + post-recovery (NBU)

jsmeix commented at 2017-05-02 11:07:

I assume it works for you on your PPC tests systems?

could you also have one more look here if it looks o.k.
so that it can be merged?

schabrolles commented at 2017-05-02 11:19:

@jsmeix Yes, tested on rhel6, rhel7, sles11, sle12 on POWER

jsmeix commented at 2017-05-03 12:33:

When there are no objections, I will merge it soon.

[Export of Github issue for rear/rear.]