Ubuntu, распознанная тестером OS, но не личинкой

Я - Windows 7 двойной загрузки и Ubuntu 12.04. Я уменьшил свой раздел Windows 7 и увеличил мой раздел Ubuntu с помощью gparted с 12,04 живых CD. Все было прекрасно приблизительно в течение недели. Затем на днях я загрузился и был встречен "спасением личинки". Я произвел чистку и переустановил и личинку и затем grub2 согласно многим учебным руководствам на строке, но все усилия встретились с теми же результатами: кажется, что тестер OS видит мои 2 Windows 7 (фактический и восстановление) разделы, а также раздел LTS Ubuntu 12.04; но когда я выполняю любой вариант личинки обновления или обновления-grub2, это только обнаруживает 2 раздела Windows 7. В результате я не могу загрузиться в Ubuntu (который является, где 99% моей работы). Вот вывод bootinfoscript:

    Boot Info Script 0.61      [1 April 2012]


============================= Boot Info Summary: ===============================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of 
    the same hard drive for core.img. core.img is at this location and looks 
    for (,msdos5)/boot/grub on this drive.

sda1: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /bootmgr /Boot/BCD

sda2: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda3: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  No errors found in the Boot Parameter Block.
    Operating System:  
    Boot files:        

sda4: __________________________________________________________________________

    File system:       Extended Partition
    Boot sector type:  -
    Boot sector info: 

sda5: __________________________________________________________________________

    File system:       ext4
    Boot sector type:  Grub2 (v1.99)
    Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda5 
                       and looks at sector 525161552 of the same hard drive 
                       for core.img. core.img is at this location and looks 
                       for (,msdos5)/boot/grub on this drive.
    Operating System:  Ubuntu 12.04 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

sda6: __________________________________________________________________________

    File system:       
    Boot sector type:  -
    Boot sector info: 
    Mounting failed:   mount: unknown filesystem type ''

============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition  Boot  Start Sector    End Sector  # of Sectors  Id System

/dev/sda1               2,048       206,847       204,800   7 NTFS / exFAT / HPFS
/dev/sda2             206,848   504,360,959   504,154,112   7 NTFS / exFAT / HPFS
/dev/sda3         591,218,688   625,137,663    33,918,976   7 NTFS / exFAT / HPFS
/dev/sda4         504,360,960   591,218,687    86,857,728   5 Extended
/dev/sda5    *    504,363,008   583,360,511    78,997,504  83 Linux
/dev/sda6         583,362,560   591,218,687     7,856,128  82 Linux swap / Solaris


"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/loop0                                              squashfs   
/dev/sda1        DA669D8C669D69D1                       ntfs       System Reserved
/dev/sda2        BAAAA703AAA6BAF1                       ntfs       
/dev/sda3        8E22D1E022D1CCF9                       ntfs       OS Recovery
/dev/sda5        c35e7a0a-408c-4586-8a18-b3faa368ef3f   ext4       
/dev/sr0                                                iso9660    Ubuntu 12.04 LTS amd64

================================ Mount points: =================================

Device           Mount_Point              Type       Options

/dev/loop0       /rofs                    squashfs   (ro,noatime)
/dev             /mnt/dev                 none       (rw,bind)
/dev/pts         /mnt/dev/pts             none       (rw,bind)
/dev/sda2        /media/BAAAA703AAA6BAF1  fuseblk    (rw,nosuid,nodev,allow_other,default_permissions,blksize=4096)
/dev/sda5        /media/c35e7a0a-408c-4586-8a18-b3faa368ef3f ext4       (rw,nosuid,nodev,uhelper=udisks)
/dev/sda5        /mnt                     ext4       (rw)
/dev/sr0         /cdrom                   iso9660    (ro,noatime)


=========================== sda5/boot/grub/grub.cfg: ===========================

--------------------------------------------------------------------------------
#
# 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='(hd0,msdos5)'
search --no-floppy --fs-uuid --set=root c35e7a0a-408c-4586-8a18-b3faa368ef3f
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos5)'
  search --no-floppy --fs-uuid --set=root c35e7a0a-408c-4586-8a18-b3faa368ef3f
  set locale_dir=($root)/boot/grub/locale
  set lang=en_US
  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 44,0,30; 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
### END /etc/grub.d/10_linux ###

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

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root DA669D8C669D69D1
    chainloader +1
}
### 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.
### 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 ###
--------------------------------------------------------------------------------

=============================== sda5/etc/fstab: ================================

--------------------------------------------------------------------------------
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    nodev,noexec,nosuid 0       0
# / was on /dev/sda5 during installation
UUID=c35e7a0a-408c-4586-8a18-b3faa368ef3f /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda6 during installation
#UUID=a4d335d5-6a81-4af8-a1c7-3beeee8699a1 none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0
--------------------------------------------------------------------------------

=================== sda5: Location of files loaded by Grub: ====================

           GiB - GB             File                                 Fragment(s)

               =                boot/grub/core.img                             1
               =                boot/grub/grub.cfg                             1

========= Devices which don't seem to have a corresponding hard drive: =========

sdb 

=============================== StdErr Messages: ===============================

xz: (stdin): Compressed data is corrupt
xz: (stdin): Compressed data is corrupt
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in

И sudo тестера OS от 12.04 LiveCD:

/dev/sda1:Windows 7 (loader):Windows:chain
/dev/sda2:Windows 7 (loader):Windows1:chain
/dev/sda5:Ubuntu 12.04 LTS (12.04):Ubuntu:linux

Я прочитал в значительной степени каждое руководство, учебное руководство и вопрос, который существует там для обновления любой версии личинки, но ничто не работало. Но то, что наиболее сбивает с толку, - то, что тестер OS видит установку; я был бы очень признателен за любую помощь в этом вопросе.

3
задан 13 June 2012 в 06:08

2 ответа

Вы попытались добавить "пользовательское" menuentry загружать Ubuntu путем редактирования grub.cfg?


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

  1. Загрузите свою систему с помощью 12.04 LiveCD.

  2. Смонтируйтесь sda5 раздел Ubuntu установлен на. В этом примере я приму sda5 был смонтирован в /mnt использование, например, sudo mount -t ext4 /dev/sda5 /mnt.

  3. Определите, какое ядро (ядра) Вы установили путем списка содержания /mnt/boot каталог. Вам будет нужна эта информация для завершения шага (5) ниже.
    Примечание: Команда ниже является одним способом, которым Вы могли сделать это.

    ls /mnt/boot/{initrd*,vmlinuz*}
    
  4. Использовать sudo отредактировать файл /mnt/boot/grub/grub.cfg (т.е. grub.cfg файл на Вашем sda5 Раздел Ubuntu).

  5. Найдите строки ниже в файле. Они должны быть ~10 строками до конца файла.

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

    Вышеупомянутое замены с GRUB управляет для menuentry ниже.
    Важный: В примере ниже Вас должен заменить ?.?.?-?? в linux и initrd строки с номером версии (от шага (3)) ядра Вы хотите загрузиться.

    ### BEGIN /etc/grub.d/40_custom ###
    menuentry 'Ubuntu on sda5' --class ubuntu --class gnu-linux --class gnu --class os {
      recordfail
      insmod gzio
      insmod part_msdos
      insmod ext2
      set root='(hd0,msdos5)'
      search --no-floppy --fs-uuid --set=root c35e7a0a-408c-4586-8a18-b3faa368ef3f
      linux /boot/vmlinuz-?.?.?-??-generic root=UUID=c35e7a0a-408c-4586-8a18-b3faa368ef3f ro quiet splash
      initrd    /boot/initrd.img-?.?.?-??-generic
    }
    ### END /etc/grub.d/40_custom ###
    
  6. Перезагрузка и видит, позволяет ли эта пользовательская запись Вам загружать Ubuntu от /dev/sda5.


Если бы предложение выше обработанного, то я предложил бы пробовать следующее.

  • Использовать sudo отредактировать файл /etc/grub.d/40_cutom и добавьте команды menuentry от шага (5) в конец файла. Таким образом, запись меню не будет потеряна, если Вы будете работать update-grub.

    Предупреждение: не удаляйте эти две строки ниже! Они должны быть в начале файла 40_custom для update-grub работать правильно.

    #!/bin/sh
    exec tail -n +3 $0
    
  • Попытайтесь переустановить GRUB все же еще раз использование команды ниже. (Почему нет?)

    sudo grub-install --recheck /dev/sda
    

Ответ обновления комментирует, что файлы ядра отсутствуют в /boot


Я никогда не сталкивался с ситуацией, где файлы ядра отсутствовали в /boot. Мое первое беспокойство было бы то, что, если Ваши файлы ядра отсутствуют, то что-то еще могло быть серьезно неправильным с Ubuntu, установленной на sda5.

Я предлагаю, чтобы Вы обновили свой вопрос и его заголовок, чтобы отразить, что нет никаких файлов ядра в /boot. Выполнение этого увеличивает Ваши возможности получения лучшего ответа от кого-то еще.

Я искал AskUnbuntu подобный вопрос, но все, что я нашел, было тем, связанным ниже.
Как восстановить систему после случайного удаления всех ядер?

Лучший ответ на тот вопрос был к chroot и затем попытайтесь переустановить ядро, которое Вы говорите, что уже попробовали. Единственное изменение, которое я мог предложить, является Вами, попробовали еще раз использовать эти команды. (Отметьте: sudo не использовался ниже потому что если Вы chroot Вы уже root.)

apt-get update
apt-get --reinstall install linux-generic linux-image-generic linux-headers-generic
  • Примечание: Если вышеупомянутое, кажется, работает, является, вероятно, самым безопасным также работать
    grub-install --recheck /dev/sda

Страница справочника для обновления-initramfs может также помочь обеспечить некоторый контекст о том, что происходит, когда ядро "установлено".

Задним числом я должен был понять, что что-то было неправильно от чтения Вашей сводки BootInfo. Это заканчивается выборкой ниже.

=================== sda5: Location of files loaded by Grub: ====================

           GiB - GB             File                                 Fragment(s)

               =                boot/grub/core.img                             1
               =                boot/grub/grub.cfg                             1

========= Devices which don't seem to have a corresponding hard drive: =========

sdb 

=============================== StdErr Messages: ===============================

xz: (stdin): Compressed data is corrupt
xz: (stdin): Compressed data is corrupt
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in

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

=================== sda5: Location of files loaded by Grub: ====================

           GiB - GB             File                                 Fragment(s)

  23.440826416 = 25.169395712   boot/grub/core.img                             1
  23.440864563 = 25.169436672   boot/grub/grub.cfg                             1
  18.791522980 = 20.177244160   boot/initrd.img-3.2.0-23-generic               1
  25.439197540 = 27.315130368   boot/vmlinuz-3.2.0-23-generic                  1
  18.791522980 = 20.177244160   initrd.img                                     1
  25.439197540 = 27.315130368   vmlinuz                                        1


ADDITIONAL INFORMATION :
=================== log of boot-repair 2012-06-13__16h58 ===================
boot-repair version : 3.18-0ppa25~precise
boot-sav version : 3.19-0ppa14~precise
glade2script version : 0.3.2.1-0ppa7~precise
boot-repair is executed in live-session (Ubuntu 12.04 LTS , precise , Ubuntu , x86_64)

=================== OSPROBER:
/dev/sda1:Windows 7 (loader):Windows:chain
/dev/sda5:Ubuntu 12.04 LTS (12.04):Ubuntu:linux

... et cetera ....

2
ответ дан 13 June 2012 в 06:08

Запустите Boot-Repair «Рекомендуемый ремонт» . Это переустановит GRUB и переустановит ядро ​​при необходимости. Если возникнут проблемы, укажите URL, который появится.

0
ответ дан 13 June 2012 в 06:08

Другие вопросы по тегам:

Похожие вопросы: