Я пришел к этому через Google, потому что у меня была эта проблема с установкой Debian Buster из Deboostrap , очень минималистской системы для сборки Debian с нуля.Я хотел, чтобы мой старый Debian Stretch все еще был доступен, поэтому мне нужна была двойная загрузка. С Debootstrap ничего не предустановлено, поэтому мне понадобились все остальные три ответа из @sever(mount unknown root filesystem ), @darnir(install os -prober )и @tripledes(используют пользовательскую конфигурацию в/etc/grub.d/40_custom
). Вот как я все это сочетаю.
Первая установка os -зонд:
~$ sudo apt install os-prober
Но os -prober не найдет старую установку, если ее корневая файловая система не смонтирована. Так что сделай это (мой находится в /dev/sda1):
~$ sudo mkdir /mnt/oldroot
~$ sudo mount /dev/sda1 /mnt/oldroot
Теперь я выполняю grub-mkconfig
, чтобы получить записи меню grub на стандартный вывод и перенаправить их во временный файл:
~$ sudo grub-mkconfig > /tmp/oldmenu.cfg
Теперь я редактирую этот файл и удаляю все, кроме записей для старых меню, поэтому я просто оставил menuentry... {...}
и submenu... {...}
. Затем я добавляю его к/etc/grub.d/40_custom
:
~$ sudo bash -c 'cat /tmp/oldmenu.cfg >> /etc/grub.d/40_custom'
~$ sudo update-grup
Очистка:
~$ sudo umount /mnt/oldroot
~$ sudo rmdir /mnt/oldroot
~$ rm /tmp/oldmenu.cfg
Вот именно. Теперь каждый раз, когда пакет выполняет обновление -grub, запись для старой установки не теряется и всегда добавляется.