LinuxForum.Fans
Тема

Linux и Windows

Автор: zuq 35 сообщений 9154 просмотров
#173264

Мне добавить в /boot/grub/grubenv recordfail=0 ??

#173267

Как я понял - у меня почему-то переменная recordfile=1 и поэтому он пропускает загрузку? Как это обойти?

#173312
durc написал:
Напишите в /etc/grub.d/40_custom примерно такое:
menuentry "Windows 7" {
insmod chain
insmod ntfs
set root=(hd0,2)
chainloader +1
}
Файл /etc/grub.d/40_custom должен заканчиваться пустой строкой!
После сохранения /etc/grub.d/40_custom, выполните ещё раз
[console]sudo update-grub[/console] и посмотрите в файле /boot/grub/grub.cfg появилась ли запись windows7

Попробуйте привести к такому виду

menuentry "Windows 7" {
insmod chain
insmod ntfs
set root='(hd0,2)'
chainloader /bootmgr
}

и не забудьте
[console]sudo update-grub[/console]

#173318

Сделал то, что вы написали и поставил в startupmanager загрузку windows. Тогда при загрузке следующие ошибки:

text
file not found

Потом просит нажать ани кей

text
Ошибка загрузки записи по умолчанию для  всех текущих пользователей...

и опять ани кей... Затем появляется окно выбора системы, и там приходится выбирать linux. И там ошибка

text
environment block to small

потом система загружается

Вот так :(

#173319

Если Вы редактировали файл /boot/grub/grubenv
То,наверное это и привело к ошибке

environment block to small

Если редактировали, то
[console]sudo rm -f /boot/grub/grubenv[/console]
[console]sudo grub-editenv /boot/grub/grubenv create[/console]

Теперь по поводу

file not found

на каком разделе у Вас стоит Виндовс?

Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 1 13 102400 82 Linux своп / Solaris
Раздел 1 не заканчивается на границе цилиндра.
/dev/sda2 13 12749 102297600 7 HPFS/NTFS
/dev/sda3 38245 60802 181184512 7 HPFS/NTFS

/dev/sda4 12749 32292 156977539+ 83 Linux

Если на /dev/sda3, то

menuentry "Windows 7" {
insmod chain
insmod ntfs
set root='(hd0,3)'
chainloader /bootmgr
}

И ещё попробуйте поменять set root='(hd0,2)'
на set root='(/dev/sda,msdos2)'

#173320

Дуйствительно - вин установлена на /dev/sda3 Но во всех этих случаях - все равно file not found
Для " чистоты экспиремента" - мои действия:
[console]sudo gedit /etc/grub.d/40_custom[/console]
Привести его к следующему виду:

text
#!/bin/sh
exec tail -n +3 $0
# 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.
menuentry "Windows 7" {                                                                                                     
   insmod chain                                                                                                               
   insmod ntfs                                                                                     set root='(/dev/sda,msdos2)'                             
   chainloader /bootmgr +1                                                                                                             
   }   

И затем
[console]sudo update-grub[/console]
:(

#173322
zuq написал:
Дуйствительно - вин установлена на /dev/sda3 Но во всех этих случаях - все равно file not found
Для " чистоты экспиремента" - мои действия:
[console]sudo gedit /etc/grub.d/40_custom[/console]
Привести его к следующему виду:
text
#!/bin/sh
exec tail -n +3 $0
# 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.
menuentry "Windows 7" {                                                                                                     
   insmod chain                                                                                                               
   insmod ntfs                                                                                     set root='(/dev/sda,msdos2)'                             
   chainloader /bootmgr +1                                                                                                             
   }   

И затем
[console]sudo update-grub[/console]
:(

Если Вин7 на sda3, то

menuentry "Windows 7" {
insmod chain
insmod ntfs
set root='(/dev/sda,msdos3)'
chainloader /bootmgr
}

ну и
[console]sudo update-grub[/console]

#173324

Я бы предложил полностью grub переустановить, пусть конфиги дефолтные поставит (Удалить через purge).

#173325

Увы :(
Ничего не помогает. Все тот же not found.
Наверное мне уже не удастся загрузить вин :(

#173327

Ладно, последняя попытка

menuentry "Windows 7"
{
insmod chain
insmod ntfs
set root=(hd0,3)
search --no-floppy --fs-uuid --set ХХХХХХХХХХХХХ
drivemap -s (hd0) ${root}
chainloader +1
}

где вместо ХХХХХХХХХХХХХ
поставьте UUID, который посмотрите с помощью команды
[console]sudo blkid | grep /dev/sda3[/console]
в выводе будет что то типа
UUID="6747e9b4-2e3d-4e18-be34-cc33e5f72a16"
соответственно запишите 6747e9b4-2e3d-4e18-be34-cc33e5f72a16 (без кавычек)
ну и как обычно
[console]sudo update-grub[/console]

P.S. И на всякий случай, покажите ещё раз /boot/grub/grub.cfg

#173330

Тогда no such disk

Вот grub.cfg

text

# 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="4" 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='(/dev/sda,msdos4)' search --no-floppy --fs-uuid --set=root 0e6167cb-2878-429f-9ff2-3d2aa0e166f1 if loadfont /usr/share/grub/unicode.pf2 ; then set gfxmode=auto load_video insmod gfxterm fi terminal_output gfxterm insmod part_msdos insmod ext2 set root='(/dev/sda,msdos4)' search --no-floppy --fs-uuid --set=root 0e6167cb-2878-429f-9ff2-3d2aa0e166f1 set locale_dir=($root)/boot/grub/locale set lang=ru_RU insmod gettext 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 ### insmod part_msdos insmod ext2 set root='(/dev/sda,msdos4)' search --no-floppy --fs-uuid --set=root 0e6167cb-2878-429f-9ff2-3d2aa0e166f1 insmod png if background_image /boot/grub/linuxmint.png; then true else set menu_color_normal=white/black set menu_color_highlight=black/light-gray if background_color 44,0,30; then clear fi fi ### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/06_mint_theme ### insmod part_msdos insmod ext2 set root='(/dev/sda,msdos4)' search --no-floppy --fs-uuid --set=root 0e6167cb-2878-429f-9ff2-3d2aa0e166f1 insmod png if background_image /boot/grub/linuxmint.png ; then set color_normal=white/black set color_highlight=white/light-gray else set menu_color_normal=white/black set menu_color_highlight=white/light-gray fi ### END /etc/grub.d/06_mint_theme ###

### BEGIN /etc/grub.d/10_linux ### 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 'Linux Mint 11, 2.6.38-8-generic (/dev/sda4)' --class linuxmint --class gnu-linux --class gnu --class os { recordfail set gfxpayload=$linux_gfx_mode insmod part_msdos insmod ext2 set root='(/dev/sda,msdos4)' search --no-floppy --fs-uuid --set=root 0e6167cb-2878-429f-9ff2-3d2aa0e166f1 linux /boot/vmlinuz-2.6.38-8-generic root=UUID=0e6167cb-2878-429f-9ff2-3d2aa0e166f1 ro quiet splash vt.handoff=7 initrd /boot/initrd.img-2.6.38-8-generic } menuentry 'Linux Mint 11, 2.6.38-8-generic (/dev/sda4) -- recovery mode' --class linuxmint --class gnu-linux --class gnu --class os { recordfail set gfxpayload=$linux_gfx_mode insmod part_msdos insmod ext2 set root='(/dev/sda,msdos4)' search --no-floppy --fs-uuid --set=root 0e6167cb-2878-429f-9ff2-3d2aa0e166f1 echo 'Loading Linux 2.6.38-8-generic ...' linux /boot/vmlinuz-2.6.38-8-generic root=UUID=0e6167cb-2878-429f-9ff2-3d2aa0e166f1 ro single echo 'Loading initial ramdisk ...' initrd /boot/initrd.img-2.6.38-8-generic } ### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/10_lupin ### ### END /etc/grub.d/10_lupin ###

### 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='(/dev/sda,msdos4)' search --no-floppy --fs-uuid --set=root 0e6167cb-2878-429f-9ff2-3d2aa0e166f1 linux16 /boot/memtest86+.bin } menuentry "Memory test (memtest86+, serial console 115200)" { insmod part_msdos insmod ext2 set root='(/dev/sda,msdos4)' search --no-floppy --fs-uuid --set=root 0e6167cb-2878-429f-9ff2-3d2aa0e166f1 linux16 /boot/memtest86+.bin console=ttyS0,115200n8 } ### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ### if [ "x${timeout}" != "x-1" ]; then if keystatus; then if keystatus --shift; then set timeout=-1 else set timeout=0 fi else if sleep --interruptible 3 ; then set timeout=0 fi fi fi ### END /etc/grub.d/30_os-prober ###

### 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. menuentry "Win 7 (on /dev/sda3)" --class windows --class os { insmod part_msdos insmod ntfs set root='(/dev/sda,msdos3)' chainloader +1 }

### 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 ###

Посмотрел файл 40_custom у знакомого( тоже минт и вин и у него все настроилось "автоматически")
Вот какой он у него

text
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Microsoft Windows XP Professional RU (on /dev/sda1)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos1)'
search --no-floppy --fs-uuid --set=root A604BDB504BD88B7
drivemap -s (hd0) ${root}
chainloader +1
}

Может надо что нибуть такое? :(

#173331
text
menuentry "Microsoft RU (on /dev/sda3)" {
    insmod ntfs
    set root='(hd0,3)'
    search --no-floppy --fs-uuid --set xxxxxxxxxxxxxxxx
    drivemap -s (hd0) ${root}
    chainloader +1
}

вот это работает ..
и да пакет os-prober не только должен быть в системе чтобы всё работало , ещё и проверить не мешало бы файлы в /etc/grub.d/ , они все должны быть исполняемые ..
если ничего не помогает покажи вывод команды :

text

grub-mkconfig
#173332

Вы эти строчки добавляли?

search --no-floppy --fs-uuid --set ХХХХХХХХХХХХХ
drivemap -s (hd0) ${root}

что такое ХХХХХХХХХХХХХ я писал выше.
Если после добавления строк и
[console]sudo update-grub[/console]
в /boot/grub/grub.cfg ничего не поменялось, то добавьте

search --no-floppy --fs-uuid --set ХХХХХХХХХХХХХ
drivemap -s (hd0) ${root}

в /boot/grub/grub.cfg и приведите его к такому виду
### 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.
menuentry "Win 7 (on /dev/sda3)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos3)'
search --no-floppy --fs-uuid --set ХХХХХХХХХХХХХ
drivemap -s (hd0) ${root}
chainloader +1
}

### END /etc/grub.d/40_custom ###
сохраните и ещё раз попробуйте перезагрузиться в Виндовс.

#173334

Привел 40_custom к виду

text
menuentry "Win 7 (on /dev/sda3)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos3)'
search --no-floppy --fs-uuid --set 22AE7636AE760319
drivemap -s (hd0) ${root}
chainloader +1
} 

update-grub

ошибки следующие:

text

1. no argument specifed
2. device format "/dev/sda,msdos3" invalid: must be (f|n)dN with 0 <=N<128
3. no such disk
#173341

Ну ещё штрих

zuq написал:
Привел 40_custom к виду

menuentry "Win 7 (on /dev/sda3)" --class windows --class os {
insmod part_msdos
insmod ntfs
set root='(/dev/sda,msdos3)'
search --no-floppy --fs-uuid --set=root 22AE7636AE760319
drivemap -s (hd0) ${root}
chainloader +1
}

Войдите или зарегистрируйтесь, чтобы ответить.