#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:

@schabrolles
when you are working on
usr/share/rear/finalize/Linux-ppc64/200_install_yaboot.sh
could you perhaps also have a look at
usr/share/rear/finalize/SUSE_LINUX/ppc64/200_install_yaboot.sh
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 ;-)

@gdha
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:

@schabrolles
many thanks for your more descriptive LogPrint message in
https://github.com/rear/rear/pull/1323/commits/9c455583a3e7b72fafb66e3a5ece2c5c4284790f
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:

@schabrolles
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
/vdevice/vfc-client@3000000d/disk@500507680c21099f,0000000000000000:1,yaboot
;-)

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:

@gdha,

  • 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
700-799:
800-899: Last Check
900-999: Remount all TARGET FS in /mnt/local + post-recovery (NBU)

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

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

@gdha
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.]