Этот вопрос, наверное, задавался миллиард раз, но я не нашел реального решения, связанного с GRUB.
Мне нужно установить GRUB на машину, на которой будут установлены как Windows, так и Linux (Fedora). Он всегда должен работать, даже после обновления.
Существует множество инструкций, описывающих, как сначала установить Windows, а затем Linux, что, конечно, проще всего сделать. Windows может быть установлена на /dev /sda1, Linux - только на один раздел /dev /sda2 (включая /boot) (в этом примере нет подкачки). Установщик GRUB обнаружит Windows и добавит ее в свое меню. Таким образом, GRUB установлен в /dev /sda2. Затем, после серьезного обновления, возможно полного обновления этого Linux, меню GRUB перестраивается, и Windows не добавляется автоматически (да, так и должно быть, я так и думал). Нечто подобное произошло со мной в конфигурации Windows /Fedora /Debian (не могу вспомнить, какая ОС ушла, но это не имеет значения). Этот GRUB не зависит от обеих систем.
Поэтому я решил создать небольшой загрузочный раздел /dev /sda1, где я сам (вручную) установлю GRUB, установил Windows в /dev /sda2, Linux в /dev /sda3 (/dev /sda1 нигде не монтируется). Первый GRUB загружал бы либо Windows, либо Linux (я бы просто скопировал текущую конфигурацию GRUB системы Linux). Это работает хорошо (и не смотря ни на что, Windows не исчезнет автоматически из меню загрузки), но запись Linux будет указывать на один конкретный sda3 /boot /vmlinuz-3 ... / initrd sda3 /boot / initramfs-3. .. Файл ядра, поэтому обновление ядра не будет автоматически загружать новое ядро (даже хуже, если обновление удаляет старое ядро, Linux больше не будет загружаться, пока имя файла ядра не будет настроено в первом меню GRUB).
Так как же те люди, которые должны иметь возможность загружать Windows, решают эту проблему, чтобы обе операционные системы всегда были загрузочными, несмотря ни на что (без необходимости изменять конфигурацию загрузки в /dev /sda1)?