Тема скорее небольшая заметка, как я из lilo сделал тройную загрузку, две винды и альтлинукс, хотя есть и один вопрос чуть ниже.
Был у меня винт sda, на нем была windows 7, потом своп, потом /, затем /home. Потребовалась мне win XP, выделил я ей место между семеркой и свопом. Получилось:
/dev/sda1: UUID="9070374470373078" TYPE="ntfs" LABEL="system" это windows 7
/dev/sda2: UUID="BC5CE5D25CE5880A" LABEL="xp" TYPE="ntfs" это windows XP
/dev/sda5: TYPE="swap" UUID="92834b99-a593-4ed6-8af8-97f8148ae1c3" это своп
/dev/sda6: UUID="9856b867-2658-4b17-a20a-d07ef6f47915" SEC_TYPE="ext2" TYPE="ext3" это корень /
/dev/sda7: UUID="e4a204ca-b5ec-49e4-ae00-a969d4a1f795" TYPE="ext3" SEC_TYPE="ext2" это папка /home
/dev/sda8: UUID="FAAC0E1BFAB00DB7" LABEL="backup" TYPE="ntfs" это тут данные
После этого установилась успешно win XP, ну ессено надо возвращать нормальное бутовое меню.
fixmbr с rescue диска как всегда не работает, поэтому сделал, как на нашем вики, загрузившись в просто лив-режиме
http://www.altlinux.org/Восстановление_загрузчика.
Ну и подредактировав lilo.conf, он получился таким:
map="/boot/map"
lba32
prompt
compact
install="menu"
vga="0x314"
append="resume=/dev/disk/by-uuid/92834b99-a593-4ed6-8af8-97f8148ae1c3 panic=30 splash=silent"
message="/boot/splash/message"
boot="/dev/disk/by-id/ata-ST3500320AS_5QM23T03"
timeout="100"
default="ALTLinux"
image="/boot/vmlinuz"
label="ALTLinux"
initrd="/boot/initrd.img"
root="UUID=9856b867-2658-4b17-a20a-d07ef6f47915"
read-only
image="/boot/vmlinuz"
label="failsafe"
initrd="/boot/initrd.img"
root="UUID=9856b867-2658-4b17-a20a-d07ef6f47915"
addappend="failsafe"
vga="normal"
read-only
other="/dev/disk/by-id/ata-ST3500320AS_5QM23T03-part1"
label="Windows_7"
#добавил я свою XP:
other="/dev/disk/by-id/ata-ST3500320AS_5QM23T03-part2"
label="Windows_XP"
image="/boot/memtest-4.00.bin"
label="memtest"
После этого при выборе в меню загрузки
Windows_7 загрузилась windows XP, а при выборе
Windows_XP я получил сообщение:
ntldr is missing, перезагружайтесь, товарищ
Присмотрелся я к разделам с виндами, оказалось, XP закинула свои нужные для загрузки файлы (
ntldr, Bootfont.bin, NTDETECT.COM, boot.ini) на первый раздел, где установлена win7, такое бывает.
Хорошо, перенес я их на второй раздел (где win XP), теперь при выборе
Windows_7 говорит
ntldr is missing, перезагружайтесь, товарищ
А при выборе
Windows_XP загружает win XP. Таким образом осталось загрузить семерку.
Как же я получил загрузку семерки? А понял, что на первом разделе, где win 7, загрузочный сектор от win XP (что логично), поэтому надо его переписать на виндовосемерочный, для этого загрузился с установочного диска win 7, выбрал язык, и нажал
Восстановление системы, выбрал эту самую систему, и в вариантах вызвал
командную строку. Для записи загрузочного сектора висты или семерки на раздел с этой вистой или семеркой есть команда:
Bootrec.exe /FixBoot
Которую я и выполнил.
Внимание! Не путайте с перезаписью главной загрузочной записи
MBR (команда Bootrec.exe /FixMbr), которая бы затерла mbr lilo
Ну и все, после этого при выборе
Windows_7 читался загрузочный сектор win 7, который обращался к bootmgr и грузил семерку с первого раздела, а при выборе
Windows_XP загружается win XP со второго. Аль с самого начала грузился без проблем.
Еще мои винды при данной конфигурации разделов можно грузить так (не знаю хуже это или лучше):
other="/dev/sda1"
label="Windows_7"
other="/dev/sda2"
label="Windows_XP"
Может кому пригодится для систем с тремя ОС.
А вопрос, который я не понял: если со второго раздела загружается win XP, получается там есть загрузочный сектор XP, в какое время от туда попал? Выходит, во время установки установщик XP записал его и на первый и на второй раздел (хотя ntldr и иже с ним записала на первый)?
(Просто я думал, что lilo ищет на разделе файл ntldr, либо bootmgr, а выходит он все-таки обращается к загрузочному сектору раздела, а тот уже ищет "вторичный загрузчик" в зависимости от win-операционки)