[Bug 2080608] Re: [SRU] storage.layout.mode="use_gap" does not honor match directive

Yao Wei 2080608 at bugs.launchpad.net
Fri Jan 10 13:39:57 UTC 2025


I've tested ubuntu-desktop-provision by refreshing it in the live
environment using the following command:

# sudo snap refresh --channel=24.04/edge ubuntu-desktop-bootstrap
ubuntu-desktop-bootstrap (24.04/edge) 0+git.61036cc38 from Canonical✓ refreshed

This includes subiquity from current ubuntu/noble branch (c72ff14)

Target issue:
Using ubuntu-desktop-bootstrap installer that reads autoinstall.yaml, it can correctly install to the partition where the installer is in (matching "install-media: true" directive).

Regression test:
Continue from target issue test, removing /dev/vdb and run installer with the refreshed ubuntu-desktop-provision, it can correctly shrink the previously installed partition (/dev/vda3) and install another root filesystem on /dev/vda4, both bootable from GRUB menu and share the same EFI partition at /dev/vda1.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to subiquity in Ubuntu.
https://bugs.launchpad.net/bugs/2080608

Title:
  [SRU] storage.layout.mode="use_gap" does not honor match directive

Status in subiquity:
  Fix Committed
Status in subiquity package in Ubuntu:
  New
Status in subiquity source package in Noble:
  New

Bug description:
  [ Impact ]

  * when using Subiquity's autoinstall feature, once can use "match"
  directives at the storage->layout level to find the right drive.
  However, the match directives where silently ignored when using mode:
  use_gap.

  * This makes it difficult for the OEM team to install to the
  installation media.

  [ Test Plan ]

  == Target issue test plan ==

  1. Prepare a VM with 2 disks with identical size, 48G for testing
  purposes, (we call them disk A and B)

  2. Boot into a live environment, and create 2 partitions on disk A:
    - a 512M EFI System Partition
    - a 12G FAT32 partition for "reset partition"
  leave the remainings of disk A, and the whole disk B unallocated.

  3. Copy contents in the Ubuntu installer ISO into the "reset
  partition"

  4. Place an autoinstall.yaml file in the root of reset partition, with
  the following contents:

  #cloud-config
  autoinstall:
    version: 1

    storage:
      layout:
        name: direct
        mode: use_gap
        match:
          install-media: true

    identity:
      hostname: ubuntu
      username: ubuntu
      password: "$6$exDY1mhS4KUYCE/2$zmn9ToZwTKLhCw.b4/b.ZRTIZM30JZ4QrOQ2aOXJ8yk96xpcCof0kxKwuX1kqLG/ygbJ1f8wxED22bTL4F46P0"
      # (password is ubuntu, copied from Autoinstall Quickstart howto guide)

  5. Change the boot/grub/grub.cfg in the reset partition, and add
  "nopersistent" in the kernel command line, this is to not let casper
  expand the disk for the installer environment.

  6. Reboot into Reset Partition and complete the installation

  7. Check the system is installed in the disk A instead of disk B

  == Regression test plan ==

  1. Install a Ubuntu system by any means

  2. Use the subiquity under test, and install into the same disk by
  shrinking the partition size of the previous installation.

  3. Both OSes should be accessible through GRUB menu.

  [ Where problems could occur ]

  Regressions caused the normal Ubuntu installation unable to continue.

  [ Other info ]

  The change to merge is
  https://github.com/canonical/subiquity/pull/2083

  [ Original description ]

  We found a problem that the following autoinstall config:

    storage:
      layout:
        name: direct
        mode: use_gap
        match:
          install-media: true

  does not actually match install-media, because use_gap does not use match directive to filter disks before finding a largest gap, according to the code in the below link:
  https://github.com/canonical/subiquity/blob/6727905effc4abc2d96c96986600efe392e3b7b6/subiquity/server/controllers/filesystem.py#L1614

  Internal reference: NANTOU-470

To manage notifications about this bug go to:
https://bugs.launchpad.net/subiquity/+bug/2080608/+subscriptions




More information about the foundations-bugs mailing list