我是不是遗漏了一些东西,或者为什么grub不能总是安装在手动分区+预置的地方呢?
我为Xubuntu20.04.2桌面使用了一个没有分区指令的预置文件。当启动“自动无处不在”时,在手动分区sda之后,忽略选择/dev/sda 1并将grub安装到/dev/sda中。
在预种中加入d-i grub-installer/only_debian boolean false和/或d-i grub-installer/with_other_os boolean false。手动分区后,sda选择/dev/sda 1被忽略,grub被安装到/dev/sda中。
我入侵了一种动态设置d-i grub-installer/bootdev string default的方法,但这需要引导到活动环境中,首先对磁盘进行分区并设置活动分区,然后开始“泛-自动”或用“自动-泛”重新启动。
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;测试此功能可以在vm中使用单个磁盘,但在具有多个磁盘的硬件或从usb安装的硬件上可能无法正常工作。
d-i grub-installer/skip boolean true似乎总是被忽视。再一次,我黑出了一种方法来实现这个功能,我把d-i grub-installer/bootdev string设置为空的。但是,在ubiquity/success_命令中手动安装grub不起作用。检查/dev/sda1 1的前几个扇区,都是00。另一个命令圆满完成。
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;发布于 2021-06-17 09:02:07
最后,我放弃了partman/early_command方法。目前,我将grub-installer/bootdev设置为空,使用ubiquity/success_command强制将grub安装到/target分区并将其标记为活动。
有点丑,但很管用。测试sata/nvme/mbr分区表和单独的引导/家庭/根分区与ext2 2/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 ');最终,我认为普遍存在需要更新,以反映在gui的选择。
https://askubuntu.com/questions/1346353
复制相似问题