Как загрузить WinXP с логического(!) раздела (конкретно /dev/sda6) с помощью GRUB?

Так. У меня следующая большая проблема. Необходимо установить Gentoo Linux и WinXP на один сатовский жёсткий диск. Вот структура разделов:

/dev/sda1 ext2 /boot 32Мб
/dev/sda2 swop 2Гб
/dev/sda3 extended
/dev/sda5 reiserfs корень Linux 30Гб
/dev/sda6 FAT32 WinXP 20Гб
/dev/sda7 FAT32 файловая свалка 244Гб

Помимо него к системе постоянно подключен IDE диск (/dev/hda) FAT32 160Гб целиком под ещё одну файловую свалку.

Нужно загрузить WinXP с раздела /dev/sda6 с помощью GRUB. Во многих руководствах читал, что загрузить WinXP с логического раздела можно, но нигде не нашёл конкретного примера конфига. Во всех мануалах вот такая ерунда:

title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

Сделать активным (makeactive) логический раздел нельзя. Кто нибудь знает как всё таки загрузить винду с логического(!) раздела?

Также нужно заставить GRUB определять /dev/sda, как hd0, а /dev/hda, соответственно как hd1.

Заранее благодарствую.

1. А если

1. А если сделать всё тупо и в лоб, не выходит?
2. (hd0,5) — тоже логический раздел (если это /dev/hda6, как в примере из Настольной Книги)
3. makeactive — это команда GRUB'а, а не руководство к действию (-:Е
4. Зачем путать PATA- и SATA? Пусть будут так, как определяются. В чём проблема написать rootnoverify (hd1,6)? Это будет /dev/sda7, если есть hd*-диск.
4'. Насколько я понимаю, если BIOS настроить на загрузку с SATA, то он и будет (hd0)

Общий совет: курить раздел Настольной Книги про GRUB и ман его, а также пробовать до победного конца (-:Е

Сейчас пробую

Сейчас пробую на VMware. Жёсткий ide'шный. Поставил винду (/dev/hda6). Структура разделов та же, за исключением последнего FAT32.

Для загрузки винды:
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1

При загрузке говорит (и говорил то же самое когда я его устанавливал на реальную машину):
Botting 'Windows XP'

rootnoverify (hd0,5)
makeactive


Error 12: Invalid device requested

При инсталляции (grub-install --no-floppy /dev/hda) белым по чёрному сказал:
(hd0) /dev/hda

Помогите люди добрые.

Итак

Итак преобразовал акрониксом Win раздел /dev/hda6 в основной /dev/hda4. Поправил при загрузке rootnoverify (hd0,5) на (hd0,3) и вуаля.

Но мне надо загрузить её любимую с логического раздела. И почему пример из хэндбука не работает?

сперва мой

сперва мой расклад также есть hda и sda3 - winXP (primary), так вот у меня не грузилась винда пока не оказалось на hda первым разделом FAT32 (NTFS) партиция.
Предлагаю следующий алгоритм, в grub.conf пишем для загрузки винды

title=win XP
map (hd0) (hd1)
map (hd1) (hd0)
chainloader (hd1,0)+1
makeactive

chainloader (hd1,0)+1 - это твой hda и его первый раздел в который кидаешь файлы boot.ini, ntldr, ntdetect.com (просто копируешь с раздела с виндой), не уверен что они все нужны, ну да ладно лишним не будут.
Далее отключаешь все SATA диски, грузишься с Win XP installation CD заходишь в Recovery console и там набираешь

не забываем отключить все диски и оставить только hda, иначе винда тебе так поправит, 
потом 2 недели будешь разделы искать и восстанавливать (проверено на собственном опыте!!!)
в этот момент должен быть только один диск в системе и первый раздел у него должен быть FAT32 (NTFS)!!!
(у меня сейчас для загрузки оставлено первым разделом на  hda1 = 90Mb), если у тебя весь диск FAT32 то бояться вроде нечего - поехали!
fixmbr (как всегда везде говоришь yes)
fixboot (тоже yes)

Теперь надо не забыть поправить boot.ini добавить(поправить) что-то подобное:

multi(0)disk(0)rdisk(1)partition(3)\WINDOWS="Windows XP Pro" /noexecute=optin /fastdetect

только в твоём случае здесь видимо будет partition(4) и если SATA с которого грузится винда стоит сразу следующим (sda) то оставь rdisk(1)

Может сначала

Может сначала добиться загрузки винды на VMware. Там тоько один ide диск. Винда на логическом разделе и ошибку выдаёт GRUB, так что до правки boot.ini дело ещё не дошло.

----------------------------------------

Кстати для того чтобы заставить винду установить свой загрузчик на sda, при наличии hda, нужно на время её установки отключить hda, в противном случае инсталлятор винды (не зависимо от установок биоса) будет писать первичный загрузчик в MBR hda. Если же hda при установке отключить то винда будет грузиться с sda, несмотря на наличие каких угодно дисков.

мне не удалось

мне не удалось загрузится с primary (sda3) раздела под WinXP никаким образом, пока, как уже писал выше, не сделал на hda виндовый раздел.
Не знаю всех тонкостей заргузки винды, но сдаётся мне что не получится загрузиться пока первый раздел будет не виндовый. (Поэтому-то во всех статьях и рекомендуют ставить винду всегда первой, а потом линукс, или вообще винду на отдельный диск, опять-таки в первый раздел)
Попробуй поэкспериментируй под VMWare, как-никак опыт не пропьёшь ;) (кстати, когда будешь ставить винду под vmware в 3-5-7 раздел, обрати внимание, что при этом будет отформатирован 1-й раздел и в нём должны появится файлики)

Виндовый загрузчик можно и переписать (опять таки упоминалось выше) из recovery console: fixmbr, затем fixboot, только при наличии в начале диска "вражеских" для винды партиций эффект непредсказуем.

Могу предложить следующую схему: сперва забудь про grub и давай настроим вообще просто загрузку винды, то бишь выставь в BIOS'е первым обращение к твоему hda, и проделываешь эти свистопляски:

не забываем отключить все диски и оставить только hda, иначе винда тебе так поправит, 
потом 2 недели будешь разделы искать и восстанавливать (проверено на собственном опыте!!!)
в этот момент должен быть только один диск в системе и первый раздел у него должен быть FAT32 (NTFS)!!!
(у меня сейчас для загрузки оставлено первым разделом на  hda1 = 90Mb),
 если у тебя весь диск FAT32 то бояться вроде нечего - поехали!
fixmbr (как всегда везде говоришь yes)
fixboot (тоже yes)

правим boot.ini (уже описано как, см.выше, не забудь закинуть boot.ini, ntdetect.com, ntldr в hda1)
далее подключаешь диск с виндой, но оставь обращение из BIOS'a сперва к hda.

Тем самым у тебя просто сразу должна грузится винда, если это ты победил, то теперь ты знаешь что винда 100% грузится нормально, остаётся только grub направить в нужное русло, переключаешь BIOS на загрузку с SATA и начинаешь мучать grub (теперь ошибки grub это его настройка,а никак не винды).

Вот что у меня

Вот что у меня получилось (на VMware):
hda1 преобразовал в fat16
поставил винду, она NT Loader и соответствующие файлы в hda1 поставила и считает его диском C
сама винда на hda6 (диск D :))
грузится нормально

Поставил grub. Заново emerge grub, т.к. раздел /boot я переформатировал.
Настроил grub.conf

default 0

timeout 5

splashimage=(hd0,0)/grub/splash.xpm.gz

title=Windows XP
rootnoverify (hd0,0)
makeactive
chainloader +1

Почему-то не грузится меню grub. Показывает только консоль. Винда успешно грузится, если вручную прописать rootnoverify (hd0,0) chainloader +1 boot.

Собственно остались следующие вопросы:

Почему GRUB не отображает меню?

Как в винде запретить доступ к первому разделу с NT Loader и GRUB?, т.к. он открыт на запись, а это ни есть хорошо. И лучше бы hda6 как-нибудь диском C сделать.

И всё-таки это что единственный способ загрузить винду с logical partition?

GRUB стал

GRUB стал требовать menu.lst. grub.conf игнорирует, ничего не понимаю.

menu.lst - это линк

menu.lst - это, зачастую, линк на grub.conf
Переименуй grub.conf в menu.lst
Grub, по-умолчанию, ищет именно menu.lst

Попробуй

Попробуй указать Винде hd1... У меня так, и работает. Хотя Винда на первом разделе. Не работало, пока было hd0.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".