
¿Me estoy perdiendo algo o por qué no siempre se puede instalar grub donde se dirige con partición manual + configuración previa?
Utilizo un archivo preestablecido para el escritorio xubuntu 20.04.2 que no tiene directivas de partición. cuando se inicia "automatic-ubiquity", después de particionar manualmente sda, se ignora la selección /dev/sda1 y grub se instala en /dev/sda.
añadido d-i grub-installer/only_debian boolean false
y/o d-i grub-installer/with_other_os boolean false
preestablecido. después de particionar manualmente sda, se ignora la selección /dev/sda1 y grub se instala en /dev/sda.
Hackeé una forma de configurar dinámicamente, d-i grub-installer/bootdev string default
pero eso requiere iniciar en el entorno en vivo, particionar el disco y configurar la partición activa primero, luego iniciar "ubicuidad - automática" o reiniciar con "ubicuidad automática".
d-i grub-installer/only_debian boolean false
d-i grub-installer/with_other_os boolean false
d-i grub-installer/bootdev string default
d-i partman/early_command string \
BOOTFLAG=$(lsblk -rpo PARTFLAGS,PKNAME,PATH | grep "0x80" | cut -f 3 -d ' '); \
if [ $BOOTFLAG ]; then debconf-set grub-installer/bootdev $BOOTFLAG; fi;
Probar esto funciona con una máquina virtual con un solo disco, pero es posible que no funcione como se desea en hardware con varios discos o instalando desde USB.
d-i grub-installer/skip boolean true
Parece ignorado siempre. Nuevamente pirateé una manera de hacer que eso funcionara, d-i grub-installer/bootdev string
lo configuré dejándolo vacío. Sin embargo, instalar grub manualmente en ubiquity/success_command no funciona. Al inspeccionar los primeros sectores de /dev/sda1, todos son 00. El otro comando se completa con éxito.
d-i grub-installer/only_debian boolean false
d-i grub-installer/with_other_os boolean false
d-i grub-installer/bootdev string
ubiquity ubiquity/success_command string \
in-target grub-install -‑force /dev/sda1; \
echo "tmpfs /tmp tmpfs nosuid,nodev 0 0" >> /target/etc/fstab;
Respuesta1
Finalmente abandoné el partman/early_command
método. Actualmente lo configuré grub-installer/bootdev
en vacío y lo uso ubiquity/success_command
para forzar la instalación de grub en la /target
partición y marcarla como activa.
algo feo, pero funciona. probado solo para la tabla de particiones sata/nvme/mbr y particiones de arranque/inicio/raíz separadas con ext2/3/4.
d-i grub-installer/only_debian boolean false
d-i grub-installer/with_other_os boolean false
d-i grub-installer/bootdev string
ubiquity ubiquity/success_command string \
echo 'tmpfs /tmp tmpfs nosuid,nodev 0 0' >> /target/etc/fstab ;\
worker() { grub-install --force --root-directory=/target $2 &&\
parted -s $3 -- set ${4##*-} boot on; } ;\
worker $(lsblk -lpo MOUNTPOINT,KNAME,PKNAME,PARTUUID | grep '/target ');
En última instancia, creo que la ubicuidad debe actualizarse para reflejar las selecciones en la interfaz gráfica de usuario.