acubed 28.05.2010 17:32
Есть проблема! — grub не запускает windows xp
Была убунту 9.04Параллельно ей стояла винда ХР, которая успешно запускалась, когда это было нужно
Вышла убунту 10.04, было принято решение установить её с нуля, т.е. с форматированием корня
После установки убунты и вынужденного update-grub (косяк релиза, проблема с grub'ом) винда появилась в списке и успешно загружалась
С тех пор прошло три недели, винду ни разу не включали, вчера при попытке загрузиться в винду обнаружилась проблема
Итак, проблема: при попытке запустить винду комп моментально уходит в ребут... 0_о
нигде никаких сообщений и логов нет.. ни логов grub'а, ни каких-то логов винды..
Вопрос(ы): в чём могет быть проблема и как она решается?
ОСь Ubuntu 10.04
Версия граба 1.98 - ака 2 %)
В конфиге граба за подгрузку винды отвечают следующие строки:
insmod ntfs
set root='(hd0,1)'
search --no-floppy --fs-uuid --set c630c30430c2fa87
drivemap -s (hd0) ${root}
chainloader +1
Спасибо.
нет, бсоду необходимо какото время для ребута, а здесь ребут происходит сразу в ту же долю секунды, как я активирую пункт запускающий винду
Не обязательно, ребут может быть сразу. А логирование загрузки в винде не видеться? какой-то там boot*.log, кажеться
вынужденного update-grub (косяк релиза, проблема с grub'ом)
в релизе косяка нет, в бете был.
Ооочень странная у тебя секция для винды, приду домой, посмотрю как у отца дефолтовый конфиг выглядит, другой.
секция винды в порядке, на ноутбуке всё то же самое, за исключением --set c630c30430c2fa87
Добавь в /etc/default/grub
а потом update-grub
GRUB_DISABLE_OS_PROBER = "false"
а потом update-grub
Винда умеет грузиться только с активного раздела, при установки убунты, скорее всего, раздел с виндой перестал быть активным.
в таком случае разве не должно возникать сообщение типа "Operation system not found" или вообще хоть какое-нибудь сообщение, почему ребут сразу?
Вот вывод:
acubed:~$ mount
/dev/sda6 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
/dev/sda7 on /home type ext4 (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/acubed/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=acubed)
acubed:~$ ls /dev/disk/by-uuid -l
итого 0
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 1e4277f6-6ad2-44b9-aec8-85d180ce5aaf -> ../../sda5
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 38FC67F8FC67AF36 -> ../../sdb2
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 9A54C53D54C51D3F -> ../../sdb5
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 AE784E07784DCF31 -> ../../sdb1
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 C630C30430C2FA87 -> ../../sda1
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 eb45a34e-8fc4-4a21-8623-8392249dc04f -> ../../sda6
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 ec809c48-86d8-4be1-8230-0b8dbdd8052c -> ../../sda7
acubed:~$ mount
/dev/sda6 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
none on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
none on /dev type devtmpfs (rw,mode=0755)
none on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
none on /dev/shm type tmpfs (rw,nosuid,nodev)
none on /var/run type tmpfs (rw,nosuid,mode=0755)
none on /var/lock type tmpfs (rw,noexec,nosuid,nodev)
none on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
/dev/sda7 on /home type ext4 (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/acubed/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=acubed)
acubed:~$ ls /dev/disk/by-uuid -l
итого 0
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 1e4277f6-6ad2-44b9-aec8-85d180ce5aaf -> ../../sda5
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 38FC67F8FC67AF36 -> ../../sdb2
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 9A54C53D54C51D3F -> ../../sdb5
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 AE784E07784DCF31 -> ../../sdb1
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 C630C30430C2FA87 -> ../../sda1
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 eb45a34e-8fc4-4a21-8623-8392249dc04f -> ../../sda6
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 ec809c48-86d8-4be1-8230-0b8dbdd8052c -> ../../sda7
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 38FC67F8FC67AF36 -> ../../sdb2
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 9A54C53D54C51D3F -> ../../sdb5
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 AE784E07784DCF31 -> ../../sdb1
lrwxrwxrwx 1 root root 10 2010-05-31 08:42 C630C30430C2FA87 -> ../../sda1
Попробуй вставить руками
menuentry "Microsoft Windows" {
insmod chain модуль для передачи загрузки виндовому загрузчику
set root=(hd0,1) ставим корень на нулевой винт и первый раздел
devicemap -s hd0 hd1 если 2 винта (если 1 то не нужно)
chainloader +1 передаем управление виндовому загрузчику
}
menuentry "Microsoft Windows" {
insmod chain модуль для передачи загрузки виндовому загрузчику
set root=(hd0,1) ставим корень на нулевой винт и первый раздел
devicemap -s hd0 hd1 если 2 винта (если 1 то не нужно)
chainloader +1 передаем управление виндовому загрузчику
}
к сожалению не помогло.. появляется моргающая "каретка" и висит так без конца
попробуй sda1 присвоить флаг boot (например через gparted). Если уже это не поможет - тогда fixmbr под виндой и восстановление граба
Тогда стоит поискать стааарые такие cd-шки которые умели грузить винду с различных разделов
обновления ставил. там grub пилили.
у друга была такая же проблема. он не решил
у друга была такая же проблема. он не решил
добавь прямо в грабовый конфиг без grub-mkconfig, т.е. прямо в /boot/grub/grub.cfg
chainloader (hd0,1)+1 можно попробывать
drivemap -s (hd0) ${root} - а рут у тя (hd0,1) т.е. косяк - убери эту строку или если номера винтов надо поменять то drivemap -s (hd0) (hd1) до set root вызывай...
ну а так конечно лучше в грабовой консоли проверить
во что нашел - типа хавтушка быстрая...
/me сам на первом грубе в большинстве мест...
menuentry "Windows XP" {
set root=(hd0,1)
chainloader +1
}
chainloader (hd0,1)+1 можно попробывать
drivemap -s (hd0) ${root} - а рут у тя (hd0,1) т.е. косяк - убери эту строку или если номера винтов надо поменять то drivemap -s (hd0) (hd1) до set root вызывай...
ну а так конечно лучше в грабовой консоли проверить
drivemap -s (hd0) (hd1)
set root=(hd0)
chainloader (hd1,1)+1
grub>boot
во что нашел - типа хавтушка быстрая...
The Quick-and-Dirty Solution
Method 1
To boot Windows XP installed to (hd1,1), use the following menuentry (in a script you write as a text file in the folder /etc/grub.d):
# Method 1 -- a safe, sure way to do it
# This method applies to Windows and to FreeDOS
# Windows XP on sdb1 (= (hd1,1)
menuentry “Windows XP on sdb1, by chainloader” {
drivemap (hd0) (hd1)
drivemap (hd1) (hd0)
set root=(hd0)
chainloader (hd1,1)+1
}
=> The drivemap command in GRUB 2 replaces the map command in GRUB Legacy.
=> That's all you need to know to make your grub.cfg work.
You can stop reading now, if you wish. :)
- - - - -
Method 2 applies to booting Windows on a non-first hard drive; it does not apply to FreeDOS:
# Method 2
# This method applies to Windows
# This method does NOT apply to FreeDOS
# Windows XP on sdb1 (= (hd1,1)
menuentry “Windows XP on sdb1, by chainloader” {
drivemap (hd1) (hd0)
set root=(hd1,1)
chainloader +1
}
IMPORTANT:
The line
drivemap (hd1) (hd0)
is my idea; in the grub-devel correspondence, it was the opposite:
drivemap (hd0) (hd1)
What this means for you
> You can stick with the safe method, Method 1.
> If you choose to use the more compact Method 2, doing it my way or their way, and if your PC hangs up, not able to boot into Windows, press the re-set button on your PC to re-boot, then boot into your Kubuntu 9.10 and fix your grub.cfg so it tries another way (e.g., switch from drivemap (hd1) (hd0) to drivemap (hd0) (hd1) or vice versa). Or, re-boot using re-set button, then experiment at the GRUB CLI by pressing the "c" key and manually trying another way to see what will work (at the grub>, don't forget to use the boot command as your last command: grub>boot).
Technical notes
-- The drivemap command in GRUB 2 replaces the map command in GRUB Legacy.
-- You should use an up-to-date version of GRUB 2 (1.97xx). You can get it from 9.10 Karmic.
-- The switch -s should also work:
# Method 1 -- a safe, sure way to do it
# This method applies to Windows and to FreeDOS
menuentry “Windows XP on sdb1, by chainloader” {
drivemap -s (hd0) (hd1)
set root=(hd0)
chainloader (hd1,1)+1
}
where the line
drivemap -s (hd0) (hd1)
means:
drivemap (hd0) (hd1)
drivemap (hd1) (hd0)
-- If doing this at the GRUB CLI (grub>), you must (always) issue the boot command as your last command, in this case after the chainloader command:
drivemap -s (hd0) (hd1)
set root=(hd0)
chainloader (hd1,1)+1
grub>boot
Method 1
To boot Windows XP installed to (hd1,1), use the following menuentry (in a script you write as a text file in the folder /etc/grub.d):
# Method 1 -- a safe, sure way to do it
# This method applies to Windows and to FreeDOS
# Windows XP on sdb1 (= (hd1,1)
menuentry “Windows XP on sdb1, by chainloader” {
drivemap (hd0) (hd1)
drivemap (hd1) (hd0)
set root=(hd0)
chainloader (hd1,1)+1
}
=> The drivemap command in GRUB 2 replaces the map command in GRUB Legacy.
=> That's all you need to know to make your grub.cfg work.
You can stop reading now, if you wish. :)
- - - - -
Method 2 applies to booting Windows on a non-first hard drive; it does not apply to FreeDOS:
# Method 2
# This method applies to Windows
# This method does NOT apply to FreeDOS
# Windows XP on sdb1 (= (hd1,1)
menuentry “Windows XP on sdb1, by chainloader” {
drivemap (hd1) (hd0)
set root=(hd1,1)
chainloader +1
}
IMPORTANT:
The line
drivemap (hd1) (hd0)
is my idea; in the grub-devel correspondence, it was the opposite:
drivemap (hd0) (hd1)
What this means for you
> You can stick with the safe method, Method 1.
> If you choose to use the more compact Method 2, doing it my way or their way, and if your PC hangs up, not able to boot into Windows, press the re-set button on your PC to re-boot, then boot into your Kubuntu 9.10 and fix your grub.cfg so it tries another way (e.g., switch from drivemap (hd1) (hd0) to drivemap (hd0) (hd1) or vice versa). Or, re-boot using re-set button, then experiment at the GRUB CLI by pressing the "c" key and manually trying another way to see what will work (at the grub>, don't forget to use the boot command as your last command: grub>boot).
Technical notes
-- The drivemap command in GRUB 2 replaces the map command in GRUB Legacy.
-- You should use an up-to-date version of GRUB 2 (1.97xx). You can get it from 9.10 Karmic.
-- The switch -s should also work:
# Method 1 -- a safe, sure way to do it
# This method applies to Windows and to FreeDOS
menuentry “Windows XP on sdb1, by chainloader” {
drivemap -s (hd0) (hd1)
set root=(hd0)
chainloader (hd1,1)+1
}
where the line
drivemap -s (hd0) (hd1)
means:
drivemap (hd0) (hd1)
drivemap (hd1) (hd0)
-- If doing this at the GRUB CLI (grub>), you must (always) issue the boot command as your last command, in this case after the chainloader command:
drivemap -s (hd0) (hd1)
set root=(hd0)
chainloader (hd1,1)+1
grub>boot
/me сам на первом грубе в большинстве мест...
тогда совет как всегда super grub disk для второго граба, пусть нафиг сам на автомате грузит винду или починит твой граб =)
Давно с виндой не возился, но, кажеться после выбора пункта в grub'е на F8 и выбрать безопасный режим