diff --git a/helpers/DATA/ubiquity/grub-installer.patch b/helpers/DATA/ubiquity/grub-installer.patch
new file mode 100644
index 0000000000000000000000000000000000000000..d5b959548131a2a1eb3f5a64276ec4ef080ff5c1
--- /dev/null
+++ b/helpers/DATA/ubiquity/grub-installer.patch
@@ -0,0 +1,185 @@
+--- a/d-i/source/grub-installer/grub-installer	2023-03-30 01:19:52.000000000 -0400
++++ b/d-i/source/grub-installer/grub-installer	2024-01-31 16:58:52.789037161 -0500
+@@ -266,7 +266,7 @@
+ 	esac
+ }
+ 
+-# by-id mapping copied from grub-pc.postinst.
++# by-id mapping copied from grub-pc-bin.postinst.
+ 
+ cached_available_ids=
+ available_ids()
+@@ -492,12 +492,12 @@
+ 		# This point can't be reached (yet).  See debian/isinstallable.
+ 		grub_package="grub-efi"
+ 	else
+-		grub_package="grub-pc"
++		grub_package="grub-pc-bin"
+ 	fi
+ 	;;
+     i386/efi|amd64/efi)
+ 	if [ -f /var/lib/partman/ignore_uefi ]; then
+-		grub_package="grub-pc"
++		grub_package="grub-pc-bin"
+ 	else
+ 		grub_package="grub-efi-amd64-signed"
+ 		if [ ! -d /target/boot/efi ]; then
+@@ -505,13 +505,13 @@
+ 			# believed this to be unnecessary, perhaps because we're
+ 			# installing on a pre-existing MBR partition table or
+ 			# perhaps because there's a BIOS Boot Partition.  In either
+-			# case, the right answer is to fall back to grub-pc.
+-			grub_package="grub-pc"
++			# case, the right answer is to fall back to grub-pc-bin.
++			grub_package="grub-pc-bin"
+ 		fi
+ 	fi
+ 	;;
+     i386/*|amd64/*)
+-	grub_package="grub-pc"
++	grub_package="grub-pc-bin"
+ 	;;
+     powerpc/*)
+ 	grub_package="grub-ieee1275"
+@@ -524,7 +524,7 @@
+ 	grub_package="grub-yeeloong"
+ 	;;
+     *)
+-	grub_package="grub-pc"
++	grub_package="grub-pc-bin"
+ esac
+ 
+ case $ARCH:$grub_package in
+@@ -622,12 +622,12 @@
+    (! db_get debian-installer/splash || [ "$RET" = true ]); then
+ 	defopt_params=${defopt_params:+$defopt_params }splash
+ fi
+-if [ "$grub_package" = grub-pc ]; then
++if [ "$grub_package" = grub-pc-bin ]; then
+ 	# Empty this for now to stop it being asked. We'll fix this up later.
+ 	# (quoting to deconfuse vim)
+ 	$chroot $ROOT 'debconf-set-selections' <<EOF
+-$grub_package grub-pc/install_devices multiselect
+-$grub_package grub-pc/install_devices_empty boolean true
++$grub_package grub-pc-bin/install_devices multiselect
++$grub_package grub-pc-bin/install_devices_empty boolean true
+ EOF
+ fi
+ 
+@@ -640,7 +640,7 @@
+ # we need to purge them first to support users who try grub2 and then switch
+ # to grub legacy, or vice-versa
+ case "$grub_package" in
+-    grub-pc)
++    grub-pc-bin)
+ 	log-output -t grub-installer $chroot $ROOT dpkg -P grub-efi grub-efi-amd64 grub-efi-ia32-bin grub-efi-ia32
+ 	;;
+     grub-efi)
+@@ -648,33 +648,7 @@
+ 	;;
+ esac
+ 
+-exit_code=0
+-inst_package=$grub_package
+-case "$grub_package" in
+-   *)
+-	# Will pull in os-prober based on global setting for Recommends
+-	apt-install $grub_package || exit_code=$? 
+-	case $grub_package in
+-	    *-signed)
+-		apt-install shim-signed || true
+-		apt-install grub-pc || true
+-		;;
+-	esac
+-	;;
+-esac
+-
+-if [ $exit_code -ne 0 ] ; then
+-	db_progress STOP
+-	info "Calling 'apt-install $inst_package' failed"
+-	db_subst grub-installer/apt-install-failed GRUB "$inst_package"
+-	db_input critical grub-installer/apt-install-failed || true
+-	if ! db_go; then
+-		exit 10 # back up to menu
+-	fi
+-	exit 1
+-fi
+-
+-grub_debian_version="$($chroot $ROOT dpkg-query -W -f '${Version}' $inst_package)"
++grub_debian_version="$($chroot $ROOT dpkg-query -W -f '${Version}' grub-common)"
+ 
+ db_progress STEP 1
+ db_progress INFO grub-installer/progress/step_os-probe
+@@ -783,7 +757,7 @@
+ 	hybrid="$RET"
+ fi
+ case $ARCH:$grub_package in
+-    *:grub|*:grub-pc|sparc:grub-ieee1275)
++    *:grub|*:grub-pc-bin|sparc:grub-ieee1275)
+ 	if [ "$grub_version" = grub2 ] && \
+ 	    ([ "$frtype" = mdadm ] || [ "$frtype" = multipath ]); then
+ 		# Check whether any of the RAIDed devices is a partition, and if so
+@@ -857,7 +831,7 @@
+ 	# Let's trust grub-mkdevicemap to select the most suitable ones
+ 	# and correctly handle systems with no /dev/disk/by-id.
+ 	# Use disk id string as a shortcut way to describe it.
+-	# FIXME switch to grub-pc's far more elegant disk_descriptions()
++	# FIXME switch to grub-pc-bin's far more elegant disk_descriptions()
+ 	dev_list=
+ 	dev_descr=
+ 	devices="$($chroot $ROOT grub-mkdevicemap --no-floppy -m - | cut -f2)"
+@@ -1095,7 +1069,7 @@
+ 
+ 		CODE=0
+ 		case $ARCH:$grub_package in
+-		    *:grub|*:grub-pc|*:grub-efi*|sparc:grub-ieee1275|ppc64el/*:grub-ieee1275)
++		    *:grub|*:grub-pc-bin|*:grub-efi*|sparc:grub-ieee1275|ppc64el/*:grub-ieee1275)
+ 			info "Running $chroot $ROOT grub-install $grub_install_params \"$bootdev\""
+ 			log-output -t grub-installer $chroot $ROOT grub-install $grub_install_params "$bootdev" || CODE=$?
+ 			;;
+@@ -1108,7 +1082,7 @@
+ 			info "grub-install ran successfully"
+ 		else
+ 			case $ARCH:$grub_package in
+-			    *:grub|*:grub-pc|*:grub-efi*|sparc:grub-ieee1275|ppc64el/*:grub-ieee1275)
++			    *:grub|*:grub-pc-bin|*:grub-efi*|sparc:grub-ieee1275|ppc64el/*:grub-ieee1275)
+ 				error "Running 'grub-install $grub_install_params \"$bootdev\"' failed."
+ 				;;
+ 			    *)
+@@ -1177,8 +1151,8 @@
+ }
+ 
+ make_active_partition () {
+-	if [ "$grub_package" != "grub-pc" ]; then
+-	# only do this for grub-pc since on EFI $bootdev is a dummy argument
++	if [ "$grub_package" != "grub-pc-bin" ]; then
++	# only do this for grub-pc-bin since on EFI $bootdev is a dummy argument
+ 	# and looking for a partition table on the wrong or non existing disk
+ 	# crashes the installer LP:#1303790
+ 		return
+@@ -1245,12 +1219,12 @@
+ 	make_active_partition
+ fi
+ 
+-if [ "$grub_package" = "grub-pc" ]; then
++if [ "$grub_package" = "grub-pc-bin" ]; then
+ 	# Do the same thing on upgrades.
+ 	$chroot $ROOT 'debconf-set-selections' <<EOF
+-$grub_package grub-pc/install_devices multiselect $(devices_to_ids $bootdevs)
+-$grub_package grub-pc/install_devices_empty boolean false
+-$grub_package grub-pc/install_devices_empty seen false
++$grub_package grub-pc-bin/install_devices multiselect $(devices_to_ids $bootdevs)
++$grub_package grub-pc-bin/install_devices_empty boolean false
++$grub_package grub-pc-bin/install_devices_empty seen false
+ EOF
+ fi
+ 
+@@ -1443,7 +1417,7 @@
+ 		) >$ROOT/boot/grub/$menu_file.new
+ 		mv $ROOT/boot/grub/$menu_file.new $ROOT/boot/grub/$menu_file
+ 		;;
+-	    grub-pc|grub-efi*)
++	    grub-pc-bin|grub-efi*)
+ 		if grep -q "^GRUB_TERMINAL=" $ROOT/etc/default/grub; then
+ 			sed -i $ROOT/etc/default/grub -e "s/^\(GRUB_TERMINAL\)=.*/\1=serial/g"
+ 		else
diff --git a/helpers/make-ubiquity b/helpers/make-ubiquity
index 034afd4a9141cd54a551737b991ef042bda1947f..ee5a92a30c2ba186348829b9d8ee31ec11a94fe8 100644
--- a/helpers/make-ubiquity
+++ b/helpers/make-ubiquity
@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-#    Copyright (C) 2011-2023  Ruben Rodriguez <ruben@trisquel.info>
+#    Copyright (C) 2011-2024  Ruben Rodriguez <ruben@trisquel.info>
 #    Copyright (C)      2019  Mason Hock <mason@masonhock.com>
 #
 #    This program is free software; you can redistribute it and/or modify
@@ -18,10 +18,13 @@
 #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 #
 
-VERSION=34
+VERSION=35
 
 . ./config
 
+# Avoid the need for a custom cdrom:// repo
+patch --no-backup-if-mismatch -p1 < $DATA/grub-installer.patch
+
 # Disable confirmation popups, as they are innacurate and buggy
 patch --no-backup-if-mismatch -p1 < $DATA/no_confrirmation_when_crypto.patch