LINUX.ORG.RU

После установки Ubuntu в списке GRUB есть пункты Windows, но при нажатии на них ничего.

 ,


0

1

Установил Win 7, затем Ubuntu 32 бит, затем Ubuntu 64 бит. В меню остался 1 рабочий пункт Ubuntu, остальные есть, но не работают.

При выполнении команды update-grub находит записи: ядро, memtest, Win 7, и пункт с названием «Ubuntu». Судя по всему находит обе Ubuntu. Команда не исправляет ошибку. GRUB установлен на отдельном разделе.

То есть grub и одна из Ubuntu работают правильно.

При нажатии на пункт с Win появляется мигающий курсор на черном фоне и всё.

Поискал в гугле, не нашел.

Покажите файл /boot/grub/grub.cfg, а также расскажите подробнее о конфигурации дисков и разделов: что куда установлено, с какого диска производится загрузка. И что значит:

GRUB установлен на отдельном разделе.

anonymous
()
Ответ на: комментарий от anonymous

При установке создан 1 первичный раздел формата ext2 и для него выбрана точка монтирования /boot Остальные разделы логические, все работало сначало. Я не понимаю почему не работает команда update-grub и сам grub я переустанавливал.

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(hd1,msdos6)'
search --no-floppy --fs-uuid --set=root 4757a034-63c0-40a9-bc78-bdd81a84868e
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd1,msdos1)'
  search --no-floppy --fs-uuid --set=root 7c10adb7-af7e-4e72-a365-e1c3c3a79680
  set locale_dir=($root)/grub/locale
  set lang=
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 75,75,75; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
	set gfxpayload="${1}"
	if [ "${1}" = "keep" ]; then
		set vt_handoff=vt.handoff=7
	else
		set vt_handoff=
	fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.8.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	gfxmode $linux_gfx_mode
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd1,msdos1)'
	search --no-floppy --fs-uuid --set=root 7c10adb7-af7e-4e72-a365-e1c3c3a79680
	linux	/vmlinuz-3.8.0-29-generic root=UUID=4757a034-63c0-40a9-bc78-bdd81a84868e ro   quiet splash $vt_handoff
	initrd	/initrd.img-3.8.0-29-generic
}
menuentry 'Ubuntu, with Linux 3.8.0-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd1,msdos1)'
	search --no-floppy --fs-uuid --set=root 7c10adb7-af7e-4e72-a365-e1c3c3a79680
	echo	'Loading Linux 3.8.0-29-generic ...'
	linux	/vmlinuz-3.8.0-29-generic root=UUID=4757a034-63c0-40a9-bc78-bdd81a84868e ro recovery nomodeset 
	echo	'Loading initial ramdisk ...'
	initrd	/initrd.img-3.8.0-29-generic
}
submenu "Previous Linux versions" {
menuentry 'Ubuntu, with Linux 3.2.0-52-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	gfxmode $linux_gfx_mode
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd1,msdos1)'
	search --no-floppy --fs-uuid --set=root 7c10adb7-af7e-4e72-a365-e1c3c3a79680
	linux	/vmlinuz-3.2.0-52-generic root=UUID=4757a034-63c0-40a9-bc78-bdd81a84868e ro   quiet splash $vt_handoff
	initrd	/initrd.img-3.2.0-52-generic
}
menuentry 'Ubuntu, with Linux 3.2.0-52-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd1,msdos1)'
	search --no-floppy --fs-uuid --set=root 7c10adb7-af7e-4e72-a365-e1c3c3a79680
	echo	'Loading Linux 3.2.0-52-generic ...'
	linux	/vmlinuz-3.2.0-52-generic root=UUID=4757a034-63c0-40a9-bc78-bdd81a84868e ro recovery nomodeset 
	echo	'Loading initial ramdisk ...'
	initrd	/initrd.img-3.2.0-52-generic
}
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
	insmod part_msdos
	insmod ext2
	set root='(hd1,msdos1)'
	search --no-floppy --fs-uuid --set=root 7c10adb7-af7e-4e72-a365-e1c3c3a79680
	linux16	/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
	insmod part_msdos
	insmod ext2
	set root='(hd1,msdos1)'
	search --no-floppy --fs-uuid --set=root 7c10adb7-af7e-4e72-a365-e1c3c3a79680
	linux16	/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda5)" --class windows --class os {
	insmod part_msdos
	insmod ntfs
	set root='(hd1,msdos5)'
	search --no-floppy --fs-uuid --set=root 01CEA348B3212630
	chainloader +1
}
menuentry "Microsoft Windows XP Professional RU (on /dev/sda9)" --class windows --class os {
	insmod part_msdos
	insmod ntfs
	set root='(hd1,msdos9)'
	search --no-floppy --fs-uuid --set=root FE3C63253C62D863
	drivemap -s (hd0) ${root}
	chainloader +1
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
gromiko
() автор топика

Вы бы поподробней написали про свой диск: что там, GPT?

У Вас os-prober криво работает. Мой совет: выкиньте груб2 и настройте ручками или груб, или лило.

mbwa
()
Ответ на: комментарий от bug

Сделал активным раздел с Windows и преобразовал его в основной, загрузился с диска Win 7 и нажал востановить. Всё ОК. Теперь не знаю что делать с XP.

И Кажется я не понимаю как работает загрузка. Раньше я думал, что загрузка начинается с активного раздела, а у меня активный Win 7 при этом грузится не Win 7, а GRUB со своего раздела, неактивного. Или GRUB что-то сделал и перенаправил загрузку?

anonymous
()
Ответ на: комментарий от zaramoth

Одна 32 бита, вторая 64. WINE ругался на установку некоторых компонентов, что они не работают под 64 бит.

anonymous
()
Ответ на: комментарий от gromiko

Суди по grub.cfg все обстоит так:

  • /dev/sda1 - первичный раздел, к нему примонтирован /boot
  • /dev/sda6 - логический раздел, точка монтирования /usr
  • /dev/sda5 - логический раздел, на нем стоит Windows 7
  • /dev/sda9 - логический раздел, на нме стоит Windows XP
  • На каких разделах стоят ubunt'ы неизвестно.

Больше ничего неизвестно. Дайте сюда вывод команд fdisk -l и blkid а также cat /etc/fstab - обеих ubuntu. (Нужен только cat /etc/fstab обеих систем, blkid и fdisk можно из любой). Кстати вы не сказали что у вас еще стоит Windows XP

Теперь к делу, начнем с того что ОС Windows это не GNU/Linux, её куда вздумается не поставить.
Нужно было создать 3 первичныйх раздела:

  • /dev/sda1 - первичный раздел, /boot - grub + ядра и образы временных фс обеих Ubuntu
  • /dev/sda2 - первичный раздел, Windows 7 или Windows XP
  • /dev/sda3 - первичный раздел, Windows XP или Windows 7
  • /dev/sda4 - Расширенный
    • Ну а тут логические разделы раскидать как вам нравится.

Дело в том что лучше всего ( меньше мучений) ставить Windows на первичный раздел.

Ну а как получилось что ваши Windows 7 и Windows XP встали на логические разделы у меня есть только одна теория:

При установке Windows 7, установщик разметил диск так: 

  • /dev/sda1 - первичный, фс fat32 или ntfs установщик записал в первый сектор код загрузчика и плюс в раздел сам загрузчик bootmgr
  • /dev/sda2 - расширенный
    • /dev/sda5 - логический, а cюда установил саму Windows 7
Если случилось так, то файла bootmgr в корне раздела /dev/sda5 где установлена Windows 7 не будет.
Как вы поставили Windows XP, я без понятия. (Даже теории нету)
Далее вы начали устанавливать Ubuntu, установщик естественно форматировал раздел /dev/sda1 и bootmgr был удалён. Также в первый сектор диска был записан grub. С этого момента скорее всего Windows 7 загрузить не получится.

Ну это все теория, вообще на сайте microsoft написано следующие:

Дополнительный раздел является контейнером, содержащим один или более логических дисков. Логические диски работают так же, как и основные разделы. Единственное отличие состоит в том, что с логических дисков невозможен запуск операционной системы.

То есть, я так понял что с логического раздела Windows загрузить невозможно. Хотя по факту у вас установщик же её установил на логический раздел.

Конечно это все в теории но может помочь следующее:

Копируете все с раздела /dev/sda1 далее форматируете его в fat32.
Копируете все обратно, естественно в файлах grub.cfg и /etc/fstab попровляете UUID раздела /dev/sda1 (так как после форматирования он изменился).
Затем устанавливаете bootmgr на этот раздел, и научиваете его грузить Windows 7 из /dev/sda5, если конечно он на это способен и вообще если такое возможно. bootmgr это не grub2, он наверное мало что умеет.

Повторюсь что это в теории вроде должно работать, ну а лучше всего нужно было разметить диск, как я писал выше.

demsi
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.