> Maybe it is worth fully describing how do you drive the
> autoinstallation. If you run subiquity manually, describing what steps
> do you execute.
As an example i did a manual install:
- stick to defaults but:
- update to subiquity 22.10.1
- keymap german
- custom storage layout:
- use vda and vdb as boot devices
- raid-1 over vda2 vdb2
- / on /dev/md0
This leaves /boot on /dev/md0. Within the installer, after install is
finished open a shell:
```
root@ubuntu-server:/# chroot /target/ debconf-show grub-pc | grep
grub-pc/install_devices:
* grub-pc/install_devices: /dev/vda, /dev/vdb
```
Everything looks good.
Reboot after install, in a shell:
```
root@danielk:/home/danielk# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
fd0 2:0 1 4K 0 disk
loop0 7:0 0 62M 1 loop /snap/core20/1587
loop1 7:1 0 47M 1 loop /snap/snapd/16292
loop2 7:2 0 79.9M 1 loop /snap/lxd/22923
sr0 11:0 1 1024M 0 rom
vda 252:0 0 10G 0 disk
├─vda1 252:1 0 1M 0 part
└─vda2 252:2 0 10G 0 part
└─md0 9:0 0 10G 0 raid1
└─md0p1 259:0 0 10G 0 part /
vdb 252:16 0 10G 0 disk
├─vdb1 252:17 0 1M 0 part
└─vdb2 252:18 0 10G 0 part
└─md0 9:0 0 10G 0 raid1
└─md0p1 259:0 0 10G 0 part /
root@danielk:/home/danielk# debconf-show grub-pc | grep
grub-pc/install_devices:
* grub-pc/install_devices: /dev/disk/by-id/md-name-ubuntu-server:0
root@danielk:/home/danielk# ls -l /dev/disk/by-id/md-name-ubuntu-server\:0
lrwxrwxrwx 1 root root 9 Oct 31 10:35
/dev/disk/by-id/md-name-ubuntu-server:0 -> ../../md0
```
cloud-init changes 'grub-pc/install_devices' to
'/dev/disk/by-id/md-name-ubuntu-server:0' which is a symlink to '/dev/md0'.
> For the cases where grub_dpkg should be detected and it is not, a user
> can enforce that as workaround by adding the following in the
> autoinstall.yaml:
>
> ```
> #cloud-config
> autoinstall:
> version: 1
> # ...
> user-data:
> grub_dpkg:
> enabled: False
> ```
> But, in other scenarios, this might not fit or change how users expect
> grub_dpkg to behave. Per the docs [1], "This module should work
> correctly by default without any user configuration."
From my point of view it does not work correctly.
> I agree, this is probably not a good choice in almost any case, but
> produces a bootable system. Assuming that, aside the change of behavior,
> I do not see any actionable point in this bug from cloud-init's
> perspective.
This is not about producing a bootable system or not. It just sets the
debconf-entry to a wrong device. With the next grub-update debconf let
you choose the correct devices. Running for example 'dpkg-reconfigure
grub-pc' in dialog frontend on the described setup asks to choose a disk
to install grub onto with no device preselected since '/dev/md0' or any
symlink to it is not in the list.
Running an auto-update of grub on the other hand brakes the update:
```
root@danielk:/home/danielk# debconf-show grub-pc | grep
grub-pc/install_devices:
* grub-pc/install_devices: /dev/disk/by-id/md-name-ubuntu-server:0
root@danielk:/home/danielk# dpkg-reconfigure -fnoninteractive grub-pc
Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot
Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible. GRUB can only be
installed in this setup by using blocklists. However, blocklists are
UNRELIABLE and their use is discouraged..
grub-install: error: diskfilter writes are not supported.
You must correct your GRUB install devices before proceeding:
DEBIAN_FRONTEND=dialog dpkg --configure grub-pc
dpkg --configure -a
```
Hello Alberto,
> Maybe it is worth fully describing how do you drive the
> autoinstallation. If you run subiquity manually, describing what steps
> do you execute.
As an example i did a manual install:
- stick to defaults but:
- update to subiquity 22.10.1
- keymap german
- custom storage layout:
- use vda and vdb as boot devices
- raid-1 over vda2 vdb2
- / on /dev/md0
This leaves /boot on /dev/md0. Within the installer, after install is server: /# chroot /target/ debconf-show grub-pc | grep install_ devices: install_ devices: /dev/vda, /dev/vdb
finished open a shell:
```
root@ubuntu-
grub-pc/
* grub-pc/
```
Everything looks good.
Reboot after install, in a shell: /home/danielk# lsblk
```
root@danielk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
fd0 2:0 1 4K 0 disk
loop0 7:0 0 62M 1 loop /snap/core20/1587
loop1 7:1 0 47M 1 loop /snap/snapd/16292
loop2 7:2 0 79.9M 1 loop /snap/lxd/22923
sr0 11:0 1 1024M 0 rom
vda 252:0 0 10G 0 disk
├─vda1 252:1 0 1M 0 part
└─vda2 252:2 0 10G 0 part
└─md0 9:0 0 10G 0 raid1
└─md0p1 259:0 0 10G 0 part /
vdb 252:16 0 10G 0 disk
├─vdb1 252:17 0 1M 0 part
└─vdb2 252:18 0 10G 0 part
└─md0 9:0 0 10G 0 raid1
└─md0p1 259:0 0 10G 0 part /
root@danielk: /home/danielk# debconf-show grub-pc | grep install_ devices: install_ devices: /dev/disk/ by-id/md- name-ubuntu- server: 0 /home/danielk# ls -l /dev/disk/ by-id/md- name-ubuntu- server\ :0 by-id/md- name-ubuntu- server: 0 -> ../../md0 install_ devices' to by-id/md- name-ubuntu- server: 0' which is a symlink to '/dev/md0'.
grub-pc/
* grub-pc/
root@danielk:
lrwxrwxrwx 1 root root 9 Oct 31 10:35
/dev/disk/
```
cloud-init changes 'grub-pc/
'/dev/disk/
> For the cases where grub_dpkg should be detected and it is not, a user
> can enforce that as workaround by adding the following in the
> autoinstall.yaml:
>
> ```
> #cloud-config
> autoinstall:
> version: 1
> # ...
> user-data:
> grub_dpkg:
> enabled: False
> ```
This is only possible for autoinstall. This bugreport is partly about /bugs.launchpad .net/cloud- init/+bug/ 1993503/ comments/ 2)
why disabling grub_dpkg in user-data better be the default for both
manual- and auto-install. (see
https:/
> But, in other scenarios, this might not fit or change how users expect
> grub_dpkg to behave. Per the docs [1], "This module should work
> correctly by default without any user configuration."
From my point of view it does not work correctly.
> I agree, this is probably not a good choice in almost any case, but
> produces a bootable system. Assuming that, aside the change of behavior,
> I do not see any actionable point in this bug from cloud-init's
> perspective.
This is not about producing a bootable system or not. It just sets the /home/danielk# debconf-show grub-pc | grep install_ devices: install_ devices: /dev/disk/ by-id/md- name-ubuntu- server: 0 /home/danielk# dpkg-reconfigure -fnoninteractive grub-pc
debconf-entry to a wrong device. With the next grub-update debconf let
you choose the correct devices. Running for example 'dpkg-reconfigure
grub-pc' in dialog frontend on the described setup asks to choose a disk
to install grub onto with no device preselected since '/dev/md0' or any
symlink to it is not in the list.
Running an auto-update of grub on the other hand brakes the update:
```
root@danielk:
grub-pc/
* grub-pc/
root@danielk:
Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot
Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible. GRUB can only be
installed in this setup by using blocklists. However, blocklists are
UNRELIABLE and their use is discouraged..
grub-install: error: diskfilter writes are not supported.
You must correct your GRUB install devices before proceeding:
DEBIAN_ FRONTEND= dialog dpkg --configure grub-pc
dpkg --configure -a
```
In this example i had / on a raid-device, but cc_grub_dpkg also doesn't /bugs.launchpad .net/cloud- init/+bug/ 1993503/ comments/ 3
work correctly if / is in an LVM with no extra partition for /boot as i
showed in https:/