Skip to content

Instantly share code, notes, and snippets.

@ancorgs
Last active February 14, 2018 09:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ancorgs/1e4de69e476f289bae5b19add1a3b0a0 to your computer and use it in GitHub Desktop.
Save ancorgs/1e4de69e476f289bae5b19add1a3b0a0 to your computer and use it in GitHub Desktop.
PPC-boot: current vs wanted

needed partitions in a PPC64 system SUGGESTED IMPLEMENTATION

That's what we should probably implement based on the conversation in https://bugzilla.suse.com/show_bug.cgi?id=1076851 Of course, we could change it again in the future if more requirements are found/proved.

  • in a non-PowerNV system (KVM/LPAR)
    • with a partitions-based proposal
      • if there are no PReP partitions in the target disk
        • requires only a PReP partition (to allocate Grub)
      • if there is already a PReP partition in the disk
        • does not require any particular volume (PReP will be reused)
    • with a LVM-based proposal
      • if there are no PReP partitions in the target disk
        • requires only a PReP partition (to allocate Grub)
        • requires no separate /boot partition (Grub can handle LVM)
      • if there is already a PReP partition in the disk
        • does not require any particular volume (PReP will be reused and Grub can handle LVM)
    • with an encrypted proposal
      • if there are no PReP partitions in the target disk
        • requires only a PReP partition (to allocate Grub)
        • requires no separate /boot partition (Grub can handle LUKS)
      • if there is already a PReP partition in the disk
        • does not require any particular volume (PReP will be reused and Grub can handle LUKS)
  • in bare metal (PowerNV)
    • with a partitions-based proposal
      • does not require any particular volume (PPC firmware parses grub2.cfg, no Grub stage1 needed)
    • with a LVM-based proposal
      • does not require a PReP partition (PPC firmware parses grub2.cfg, no Grub stage1 needed)
      • requires only a /boot partition (for the PPC firmware to load the kernel)
    • with an encrypted proposal
      • does not require a PReP partition (PPC firmware parses grub2.cfg, no Grub stage1 needed)
      • requires only a /boot partition (for the PPC firmware to load the kernel)
  • when proposing a boot partition
    • requires /boot to be a non-encrypted ext4 partition in the booting disk
    • when aiming for the recommended size
      • requires /boot to be at least 200 MiB large
    • when aiming for the minimal size
      • requires /boot to be at least 100 MiB large
  • when proposing a PReP partition
    • requires it to be a non-encrypted partition
    • requires it to be bootable (ms-dos partition table)
    • requires no particular position for it in the disk (since there is no evidence of such so far)
    • when aiming for the recommended size
      • requires it to be at least 4MiB (Grub stage 1, stage 2, needed Grub modules and extra space)
      • requires it to be at most 8MiB (since it will be mapped to RAM)
    • when aiming for the minimal size
      • requires it to be at least 2MiB (Grub stage 1, stage 2 and needed Grub modules)
      • requires it to be at most 8MiB (since it will be mapped to RAM)

needed partitions in a PPC64 system CURRENT IMPLEMENTATION (annotated)

This is what we have now, just enhanced with some annotations about rationale See https://github.com/yast/yast-storage-ng/blob/master/doc/boot-requirements.md

  • in a non-PowerNV system (KVM/LPAR)
    • with a partitions-based proposal
      • if there are no PReP partitions in the target disk
        • requires only a PReP partition (to allocate Grub stages 1 & 2)
      • if there is already a PReP partition in the disk
        • does not require any particular volume
    • with a LVM-based proposal
      • if there are no PReP partitions in the target disk
        • requires /boot (for Grub to load the kernel) and PReP (to allocate Grub) partitions
      • if there is already a PReP partition in the disk
        • requires only a /boot partition (for Grub to load the kernel)
    • with an encrypted proposal
      • if there are no PReP partitions in the target disk
        • requires /boot (for Grub to load the kernel) and PReP (to allocate Grub) partitions
      • if there is already a PReP partition in the disk
        • requires only a /boot partition (for Grub to load the kernel)
  • in bare metal (PowerNV)
    • with a partitions-based proposal
      • does not require any particular volume (PPC firmware parses grub2.cfg, no Grub stage1 needed)
    • with a LVM-based proposal
      • requires only a /boot partition (for the PPC firmware to load the kernel)
    • with an encrypted proposal
      • requires only a /boot partition (for the PPC firmware to load the kernel)
  • when proposing a boot partition
    • requires /boot to be a non-encrypted ext4 partition in the booting disk
    • when aiming for the recommended size
      • requires /boot to be at least 200 MiB large
    • when aiming for the minimal size
      • requires /boot to be at least 100 MiB large
  • when proposing a PReP partition
    • requires it to be a non-encrypted partition
    • requires it to be bootable (ms-dos partition table)
    • when aiming for the recommended size
      • requires it to be at least 1MiB (Grub stage 1, basic stage 2 and extra space)
      • requires it to be at most 8MiB (since it will be mapped to RAM)
    • when aiming for the minimal size
      • requires it to be at least 256K (Grub stage 1 and basic stage 2)
      • requires it to be at most 8MiB (since it will be mapped to RAM)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment