Ballu, сначала пара замечаний общего плана.
При таком количестве систем хорошей идеей будет получше освоить груб. Что и как он может загрузить, куда и как его установить, как настроить.
Я не сторонник лишних разделов. Считаю, boot-раздел стоит создавать только если без этого никак не обойтись. В остальных случаях от него только пробемы.
Линками, автоматически сгенерированными грубом почти не пользуюсь. Поэтому, почти вся "автоматика" отключена - меньше мусора в grub.cfg.
Теперь "ближе к телу".
Создай вручную линк для загрузки системы, например "Ubuntu".
menuentry "Ubuntu" --class ubuntu --class gnu-linux --class gnu --class os {
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_msdos
insmod ext2
set root='hd1,msdos6'
search -u uuid-sdb6 -n -s
linux /vmlinuz-4.4.0-57-generic root=UUID=uuid-sdb6 ro quiet $vt_handoff
initrd /initrd.img-4.4.0-57-generic
}
Помести этот код ближе к концу файла grub.cfg, например после строки "### END /etc/grub.d/45_uefi-firmware ###".
Почему ближе к концу? В случае синтаксической ошибки груб иногда не выводит часть меню, находящуюся после строки с ошибкой.
Некоторые пояснения.
search -u uuid-sdb6 -n -s - эта строка ищет раздел с uuid-sdb6 и если находит, то присваивает его значение переменной root.
Здесь нужно указывать раздел, на котором находяться ядро и инитрд.
Тебе нужно заменить uuid-sdb6 на реальный uuid твоего раздела sdb6.
linux /vmlinuz-4.4.0-57-generic root=UUID=uuid-sdb6 ro quiet $vt_handoff - эта строка ищет на разделе, указанном в переменной root, ядро и если находит загружает его.
В этой строке root=UUID=uuid-sdb6 указывает на раздел с корневой файловой системой.
Тебе нужно vmlinuz-4.4.0-57-generic заменить на реальное название ядра твоей системы. uuid-sdb6 заменить на uuid раздела с корневой файловой системой.
initrd /initrd.img-4.4.0-57-generic - эта строка ищет initrd на том-же разделе, где ядро, и загружает.
Тебе нужно initrd.img-4.4.0-57-generic заменить на реальное название инитрд твоей системы.
Перезагрузиться и проверить загрузку "Ubuntu". Если работает - перенести код в файл /etc/grub.d/40_custom и выполнить update-grub.
На случай, если понадобиться "живая ситсема" или установить - вот код загрузки из исо-образа
menuentry '*buntu iso' {
iso_path='/opt/ubuntu-14.04.5-desktop-i386.iso'
iso_path='/opt/ubuntu-16.04.1-desktop-amd64.iso'
key="boot=casper cdrom-detect/try-usb=true iso-scan/filename=$iso_path noprompt quiet --"
export iso_path
search -f ${iso_path} -n -s
loopback loop ${iso_path}
root=(loop)
if [ -e /boot/grub/loopback.cfg ]
then configfile /boot/grub/loopback.cfg
loopback --delete loop
else linux /casper/vmlinuz ${key}
initrd /casper/initrd.lz
fi
}
Ищет образ, указанный в переменной iso_path, на всех разделах. Найдет загрузит.
У тебя два винта. Если образ положишь на sda, то сможешь установить систему на sdb без флешки.