web-dev-qa-db-ja.com

12.04のインストール時に「grubエラーファイルが見つかりません」を修正する方法

ubuntuをインストールしようとしています。それが重要かどうかはわかりませんが、外付けHDDにインストールしようとしています。

最終的に私は表示するだけの外部ブータブルHDDを持っています:

error: file not found
grub recovery>

最初から:

  • Ubuntu-12.04-desktop-i386.isoをダウンロードしました
  • LiLi USB Creator(LinuxLive)を使用して、そのイメージから起動可能なペンドライブを作成しました
  • 私はそれからブートしました、それは動作します
  • 「ubuntuを試す」をクリックしましたが、これも機能します。

GPartedを使用してドライバー(ディスク)を調べました

プライマリ組み込みディスクは/ dev/sdaとして見られます

/ dev/sdbとして接続された外部ディスク

/ dev/sdcとしての私のPenDrive

  • / dev/sdbにパーティションを作成しました

  • システムの最初のパーティション(200GiB以上)

  • 2番目はすでにそこにありました(xsfです、私はそれに触れたくないです:P)
  • 3つ目は拡張パーティションで、スワップ用に1つのロケータパーティション(10GiB)があります

  • インストールを開始しました

  • で「他の何か」を選択しました...
  • 次に、ブートディスクとして/ dev/sdbが選択されます
  • / dev/sdbの最初のパーティションでは、ext3ファイルシステムを設定し、「formattin」チェックボックスをオンにし、マウントパスを「/」に設定しました
  • スワップパーティションとして設定された最初の論理パーティション

インストールが完了した後、コンピューターを再起動しました。プライマリディスクから起動した場合、問題なく動作します。以前のオペレーティングシステムであるVistaは正常に動作します。 BIOSを外部ディスクから起動するように設定すると、そのメッセージのみが表示されます。

error: file not found
grub recovery>
  • 私はそれを再インストールしようとしましたが、助けにはなりませんでした...

必死に、私はその「grub recovery>」コマンドラインについて少し読んで、少し試してみました...これが何らかの意味を持っているのか、それとも何らかの情報を与えているのかわかりません(注意、私が何をしているのかわからないこと:P)

コマンドを入力したとき:

insmod (hd1,1)/boot/grub/linux.mod

私はメッセージを受け取りました:

unknown filesystem

と同じ:

insmod (hd1,msdos1)/boot/grub/linux.mod

と同じ:

insmod ext3

しかし、コマンドの後にメッセージが表示されません:

insmod ext2

...

このコマンドが正確に何をするのか本当にわからないことに注意してください。しかし、ext2ファイルシステムでubuntuを再インストールすればうまくいくと思ったよりも。私はそれをしましたが、症状は同じです。

私はそのライブバージョンのubuntuに戻りました。ファイルシステムと基本ディレクトリは/ dev/sdb1に存在するようです...私はGRUBに完全になじみがありません。また、GRUBのバージョンがわからないので、ubuntu-12.04-desktop-i386.isoにバージョンが1つしかないことを願っています。

助けがありますか?税金

=======================編集17.06.2012 22:05 ==================== =====

これはbootinfoscriptのRESULTS.txtです

sdaは私の内蔵HDD

sdbは外付けHDD(Ubuntuのディスクの宛先)

sdcはライブUbuntuを備えたPenDriveです

                  Boot Info Script 0.61      [1 April 2012]


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

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

sda1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  Windows 7: FAT32
    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 Vista
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda3: __________________________________________________________________________

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

sda5: __________________________________________________________________________

    File system:       ntfs
    Boot sector type:  Windows Vista/7: NTFS
    Boot sector info:  According to the info in the boot sector, sda5 starts 
                       at sector 63.
    Operating System:  
    Boot files:        

sdb1: __________________________________________________________________________

    File system:       ext2
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 12.04 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

sdb3: __________________________________________________________________________

    File system:       xfs
    Boot sector type:  -
    Boot sector info: 
    Mounting failed:   mount: /dev/sdb3: can't read superblock

sdb4: __________________________________________________________________________

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

sdb5: __________________________________________________________________________

    File system:       swap
    Boot sector type:  -
    Boot sector info: 

sdc1: __________________________________________________________________________

    File system:       vfat
    Boot sector type:  SYSLINUX 4.04 2011-04-18
    Boot sector info:  Syslinux looks at sector 3250552 of /dev/sdc1 for its 
                       second stage. SYSLINUX is installed in the  directory. 
                       The integrity check of the ADV area failed. No errors 
                       found in the Boot Parameter Block.
    Operating System:  
    Boot files:        /syslinux/syslinux.cfg /ldlinux.sys

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

Drive: sda _____________________________________________________________________

Disk /dev/sda: 160.0 GB, 160041885696 bytes
16 heads, 63 sectors/track, 310101 cylinders, total 312581808 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    20,482,047    20,480,000  1c Hidden W95 FAT32 (LBA)
/dev/sda2    *     20,482,048   176,771,071   156,289,024   7 NTFS / exFAT / HPFS
/dev/sda3         176,771,072   312,580,095   135,809,024   f W95 Extended (LBA)
/dev/sda5         176,773,120   312,580,095   135,806,976   7 NTFS / exFAT / HPFS


Drive: sdb _____________________________________________________________________

Disk /dev/sdb: 640.1 GB, 640135028736 bytes
255 heads, 63 sectors/track, 77825 cylinders, total 1250263728 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/sdb1    *          2,048   574,773,569   574,771,522  83 Linux
/dev/sdb3         574,773,570 1,208,315,584   633,542,015   7 NTFS / exFAT / HPFS
/dev/sdb4       1,208,317,950 1,229,289,471    20,971,522   f W95 Extended (LBA)
/dev/sdb5       1,208,317,952 1,229,289,471    20,971,520  82 Linux swap / Solaris


Drive: sdc _____________________________________________________________________

Disk /dev/sdc: 1971 MB, 1971322880 bytes
129 heads, 40 sectors/track, 746 cylinders, total 3850240 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/sdc1    *             40     3,850,239     3,850,200   6 FAT16


"blkid" output: ________________________________________________________________

Device           UUID                                   TYPE       LABEL

/dev/loop0                                              squashfs   
/dev/loop1       7aa47a24-93a0-d54f-a03c-495cf2ee0927   ext2       
/dev/sda1        3C98-AC5D                              vfat       RECOVERY
/dev/sda2        94CA2D3CCA2D1BCC                       ntfs       VistaOS
/dev/sda5        A2F09F72F09F4B83                       ntfs       DATA
/dev/sdb1        a4befd4a-f91f-4f09-9d5f-a44991ed6a2e   ext2       
/dev/sdb3        973a36d7-5828-4291-b455-db286cd69668   xfs        
/dev/sdb5        9ce43dea-fd93-4343-969d-1243397724bd   swap       
/dev/sdc1        7232-C522                              vfat       GOODDRIVE

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

Device           Mount_Point              Type       Options

/dev/loop0       /rofs                    squashfs   (ro,noatime)
/dev/sdc1        /cdrom                   vfat       (rw,relatime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)


=========================== sdb1/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='(hd1,msdos1)'
search --no-floppy --fs-uuid --set=root a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
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 a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
  set locale_dir=($root)/boot/grub/locale
  set lang=pl_PL
  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
menuentry 'Ubuntu, za pomocą systemu Linux 3.2.0-23-generic-pae' --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 a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
    linux   /boot/vmlinuz-3.2.0-23-generic-pae root=/dev/sdb1 ro   quiet splash $vt_handoff
    initrd  /boot/initrd.img-3.2.0-23-generic-pae
}
menuentry 'Ubuntu, za pomocą systemu Linux 3.2.0-23-generic-pae (tryb ratunkowy)' --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 a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
    echo    'Wczytywanie systemu Linux 3.2.0-23-generic-pae...'
    linux   /boot/vmlinuz-3.2.0-23-generic-pae root=/dev/sdb1 ro recovery nomodeset 
    echo    'Wczytywanie początkowego dysku RAM...'
    initrd  /boot/initrd.img-3.2.0-23-generic-pae
}
### 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 a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
    linux16 /boot/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 a4befd4a-f91f-4f09-9d5f-a44991ed6a2e
    linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows Recovery Environment (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod fat
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 3C98-AC5D
    drivemap -s (hd0) ${root}
    chainloader +1
}
menuentry "Windows Vista (loader) (on /dev/sda2)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos2)'
    search --no-floppy --fs-uuid --set=root 94CA2D3CCA2D1BCC
    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 ###
--------------------------------------------------------------------------------

=============================== sdb1/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/sdb1 during installation
UUID=a4befd4a-f91f-4f09-9d5f-a44991ed6a2e /               ext2    errors=remount-ro 0       1
# swap was on /dev/sdb5 during installation
UUID=9ce43dea-fd93-4343-969d-1243397724bd none            swap    sw              0       0
--------------------------------------------------------------------------------

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

           GiB - GB             File                                 Fragment(s)

               =                boot/grub/core.img                             1
               =                boot/grub/grub.cfg                             1
               =                boot/initrd.img-3.2.0-23-generic-pae           6
               =                boot/vmlinuz-3.2.0-23-generic-pae              3
               =                initrd.img                                     6
               =                vmlinuz                                        3

========================= sdc1/syslinux/syslinux.cfg: ==========================

--------------------------------------------------------------------------------
# D-I config version 2.0
include menu.cfg
default vesamenu.c32
Prompt 0
timeout 50
ui gfxboot bootlogo
--------------------------------------------------------------------------------

================= sdc1: Location of files loaded by Syslinux: ==================

           GiB - GB             File                                 Fragment(s)

            ?? = ??             ldlinux.sys                                    1
            ?? = ??             syslinux/chain.c32                             1
            ?? = ??             syslinux/gfxboot.c32                           1
            ?? = ??             syslinux/syslinux.cfg                          1
            ?? = ??             syslinux/vesamenu.c32                          1

============== sdc1: Version of COM32(R) files used by Syslinux: ===============

 syslinux/chain.c32                 :  COM32R module (v4.xx)
 syslinux/gfxboot.c32               :  COM32R module (v4.xx)
 syslinux/vesamenu.c32              :  COM32R module (v4.xx)

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

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
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in
awk: cmd. line:36: Math support is not compiled in
/home/ubuntu/Pobrane/bootinfoscript-061/bootinfoscript: line 1646: [: 2.73495e+09: integer expression expected

ターミナルでスクリプトを印刷する必要があります。

Boot Info Script 0.61      [1 April 2012]


"gawk" could not be found, using "busybox awk" instead.
This may lead to unreliable results.

Identifying MBRs...
Computing Partition Table of /dev/sda...
Computing Partition Table of /dev/sdb...
Computing Partition Table of /dev/sdc...
Searching sda1 for information... 
Searching sda2 for information... 
Searching sda3 for information... 
Searching sda5 for information... 
Searching sdb1 for information... 
Searching sdb3 for information... 
Searching sdb4 for information... 
Searching sdb5 for information... 
Searching sdc1 for information... 

Finished. The results are in the file "RESULTS.txt"
located in "/home/ubuntu/Pobrane/bootinfoscript-061/".

==============編集18.06.2012 18:38 ===============

oK、これは多かれ少なかれ私のgrubリカバリセッションのコピーです:

error: file not found
grub recovery> set
prefix=(hd0,msdos1)/boot/grub
root=hd0,msdos1
grub recovery> ls
(hd0) (hd0,msdos3) (hd0,msdos1) (hd1) (hd1,msdos5) (hd1,msdos2) (hd1,msdos1)
grub recovery> ls $prefix

error: file not found
grub recovery> 

その後、私はいくつかのパスで「ls」cmdを使用しましたが、結果は奇妙です(私は思う):

grub recovery> ls (hd0,msdos1)/boot

grub recovery> ls (hd0,msdos1)/boot/grub

error: file not found
grub recovery> ls (hd0,msdos1)/lib

grub recovery> ls (hd0,msdos1)/bin

grub recovery> ls (hd0,msdos1)/sys
./ ../
grub recovery> ls (hd0,msdos1)/sbin

grub recovery> ls (hd0,msdos1)/usr
./ ../ local/ (and some other things)

これは正常ですか? Live Ubuntuでこの外部HDDをマウントすると、/ boot/grubとそのコンテンツが表示されます

6

Grubを使用して一部のファイルを見ることができるが、すべてがファイルシステム上にないという症状は、通常、BIOSにバグがあり、大きなドライブを適切に処理できないことを意味します( http://tldp.org/HOWTO/Large-Disk -HOWTO-4.html )。何が起こるかというと、BIOSはドライブの特定のポイントを超えてブロックを読み取ることができないため、ルートファイルシステムがその制限の前に開始し、その制限の後に終了すると、一部のファイルはブート時にBIOSからアクセスでき、他のファイルは勝ちます't。この問題を回避する標準的な方法は、ドライブの先頭近くに小さな/ boot /パーティションを作成し、BIOSを介して読み取る必要のあるすべてのものができるようにすることです。

私は通常、grubからの「ディスク不足」エラーがこれに該当すると予想しますが、なぜこれらが表示されないのかわかりません。問題がBIOSの制限であることを確認する1つの方法は、BIOSメニューに移動し、ドライブがどのサイズであるかを確認することです。実際のサイズよりも小さいとリストされている場合は、BIOSにバグがあります。 BIOSのメニューにサイズがリストされていない場合、別の方法は、grubから「ls -l」を実行し、そこにリストされているサイズを調べることです。残念ながら、レスキューシェルから「ls -l」を実行できないため、grub CDから起動するか、小さな/ boot /パーティションの問題をすでに修正してから、チェックを実行する必要があります。グラブ内。

3
Jordan Uggla

起動設定を変更して、外部ハードディスクから起動します。コンピューターは内蔵HDDでgrubを見つけようとしていますが、実際には外付けHDDにあります。そのため、最初の設定としてその外部HDDを使用し、次に内蔵HDDを2番目の設定として使用するように、起動オプションを変更する必要があります。したがって、外付けHDDを挿入すると、ubuntuが自動的に起動し、そうでない場合は、内蔵HDDにインストールしたシステムが起動します。

1
Pranit Bauva

それでも問題が解決しない場合は、「GRUB Customizer」を試してください

Sudo apt-get grub-customizer

PENDRIVEまたは外部USBのプラグイン

gUI管理ツールのAdmin-> grub-CustomizerまたはQ!から起動します。

起動後、bootinfoscriptに似たブートスクリプトが読み込まれるので、数秒間待ってから、ブート情報ウィンドウの色が灰色から通常に変わります。

その後、見つかった各ドライブのブート情報を編集できます。

新しいエントリを追加するには、[編集]-> [追加]を押し、[Linux]を選択します。タブボタンを使用して、ディスクUUIDが起動元のディスクと一致することを確認します。

完了をクリックします。

保存ボタンをクリック

編集を確認し、手動でgrub-bootメニューを表示して、編集が保存されたことを確認します。あなたのgrubブートローダーがhd0またはsda0にあると仮定しています。ねこ

/hd0/boot/grub/grub.cfg#このファイルを編集しないでください。表示または確認するだけです。または、bootinfoscriptを再度実行します。

これで問題が解決しない場合は、カーネルに問題がある可能性があります。別のLinux 64ビットのインストールではブートローダーが多すぎたため、この方法でUbuntu-LTSを再インストールする必要がありました。 64ビットマシンを使用している場合は、usbドライブ/ pendriveも64ビットOSであることを確認してください。そうしないと、USBドライバーは、USBドライブをロードしようとしたときに分岐します。

新しいOSを6〜10MB程度に小さくして、大容量GB-HDの上限に達しないようにすることをお勧めします。また、grubを実行する前に、外部USBドライバーがインストールされていることを確認する必要があります。これを行うには、紫色の画面で下矢印キーを押して、インストールされているモジュールと分岐しているモジュールを確認します。

それでも解決しない場合は、レスキューディスクを使用して不足しているカーネル/ファイルをピックアップしてみてください。 Grub-Customizerで問題が発生した場合、bootrecovery-CD(sourceforge:boot-repair-diskx64)またはLinux-remix-CD(www.ubuntu-rescue-remix.org)を使用します。

1
Lee