Das Ubiquity-Installationsprogramm kann Grub nicht im richtigen Pfad installieren

Das Ubiquity-Installationsprogramm kann Grub nicht im richtigen Pfad installieren

übersehe ich etwas oder warum kann Grub bei manueller Partitionierung + Voreinstellung nicht immer dort installiert werden, wo es hingeleitet wird?

Ich verwende eine voreingestellte Datei für den Xubuntu 20.04.2-Desktop, die keine Partitionierungsanweisungen enthält. Beim Booten von „automatic-ubiquity“ wird nach der manuellen Partitionierung von sda die Auswahl von /dev/sda1 ignoriert und Grub in /dev/sda installiert.

hinzugefügt d-i grub-installer/only_debian boolean falseund/oder d-i grub-installer/with_other_os boolean falsevorab festgelegt. Nach der manuellen Partitionierung von SDA wird die Auswahl von /dev/sda1 ignoriert und Grub wird in /dev/sda installiert.

Ich habe eine Möglichkeit zum dynamischen Festlegen gehackt d-i grub-installer/bootdev string default, aber dazu muss man in die Live-Umgebung booten, die Festplatte partitionieren und zuerst die aktive Partition festlegen und dann „ubiquity --automatic“ starten oder mit „automatic-ubiquity“ neu booten.

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;

Beim Testen funktioniert dies mit einer VM mit einer einzelnen Festplatte, funktioniert aber möglicherweise auf Hardware mit mehreren Festplatten oder bei der Installation von USB nicht wie gewünscht.

d-i grub-installer/skip boolean truescheint immer ignoriert zu werden. Ich habe wieder einen Weg gefunden, das zum Laufen zu bringen, ich habe d-i grub-installer/bootdev stringes leer gelassen. Die manuelle Installation von Grub in ubiquity/success_command funktioniert jedoch nicht. Beim Überprüfen der ersten paar Sektoren von /dev/sda1 sind alle 00. Der andere Befehl wird erfolgreich abgeschlossen.

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;

Antwort1

Irgendwann habe ich die partman/early_commandMethode verworfen. Derzeit stelle ich sie grub-installer/bootdevauf „leer“ und erzwinge die ubiquity/success_commandZwangsinstallation von Grub auf der /targetPartition und markiere sie als aktiv.

irgendwie hässlich, aber es funktioniert. getestet nur für SATA-/NVME-/MBR-Partitionstabelle und separate Boot-/Home-/Root-Partitionen mit 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 ');

letztendlich denke ich, dass Ubiquity aktualisiert werden muss, um die Auswahlmöglichkeiten in der GUI widerzuspiegeln.

verwandte Informationen