microsoft / azurelinux

Linux OS for Azure 1P services and edge appliances
MIT License
4.31k stars 549 forks source link

Azure Linux 3.0 ISO Image Fails to Install Baremetal #10972

Open timothymiskell opened 2 weeks ago

timothymiskell commented 2 weeks ago

Describe the bug When attempting to install Azure Linux 3.0 baremetal on our next-gen platforms we are not able to boot the platform after the installer completes.

To Reproduce Steps to reproduce the behavior:

  1. Download the Azure Linux 3.0 ISO from https://aka.ms/azurelinux-3.0-x86_64.iso .
  2. Install the ISO baremetal and allow the installer to complete.
  3. Reboot the platform.
  4. Observe that the system fails to boot into the drive and displays the error message: "Failed to create boot loader".

Expected behavior The system should boot into the drive with the installed Azure Linux 3.0 image.

Screenshots

zcobol commented 2 weeks ago

@timothymiskell if your next-gen platform has builtin uefi shell start into the shell and inspect the /boot partition. Using automatic partitioning the installer creates two partitions. The first one is the ESP partition, and the 2nd is the rootfs using all the remaining space on the storage device. You can see the partitioning in the attendedconfig.json:

 "Disks": [
  {
   "PartitionTableType": "gpt",
   "MaxSize": 0,
   "TargetDisk": {
    "Type": "path",
    "Value": "/dev/nvme1n1"
   },
   "Artifacts": null,
   "Partitions": [
    {
     "FsType": "fat32",
     "Type": "",
     "TypeUUID": "",
     "ID": "esp",
     "Name": "esp",
     "End": 9,
     "Start": 1,
     "Flags": [
      "esp",
      "boot"
     ],
     "Artifacts": null
    },
    {
     "FsType": "ext4",
     "Type": "",
     "TypeUUID": "",
     "ID": "rootfs",
     "Name": "rootfs",
     "End": 0,
     "Start": 9,
     "Flags": null,
     "Artifacts": null
    }
   ]

Since your installation fails to boot inspect the /boot directory. The structure should look like this:

/boot
├── System.map-6.6.51.1-5.azl3
├── System.map-6.6.57.1-2.azl3
├── config-6.6.51.1-5.azl3
├── config-6.6.57.1-2.azl3
├── dracut
├── efi
│   ├── EFI
│   │   └── BOOT
│   │       ├── bootx64.efi
│   │       └── grubx64.efi
│   └── boot
│       └── grub2
│           └── grub.cfg
├── grub2
│   ├── grub.cfg
│   └── grubenv
├── initramfs-6.6.51.1-5.azl3.img
├── initramfs-6.6.57.1-2.azl3.img
├── tboot-syms
├── tboot.gz
├── vmlinuz-6.6.51.1-5.azl3
└── vmlinuz-6.6.57.1-2.azl3

7 directories, 15 files

Notice there are two kernels with the 2nd one added after running dnf upgrade. I used an old-gen platform (two years old hardware!) and after the ISO installation the system booted as expected. core and full installation were tried and worked every time.