web-dev-qa-db-ja.com

sudo update-grubが機能しない

最近、Windows 10コンピューターにUbuntuをインストールしてデュアルブートを実装しましたが、インストールプロセス中に最初に問題が発生したため、パーティションをめちゃくちゃにしました。

とにかく、Ubuntuは正常に起動しますが、使用するOSを選択するための基本画面が表示されません(つまり、Windowsからロックアウトされています)。

いくつかのチュートリアルで検索して、Sudo update-grubを書き込もうとしたところ、次のエラーが発生しました。

error: invalid volume.
grub-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your device.map.

Windowsを参照するものはありません。

さらに、sdb1は私のhdd(オペレーティングシステムなし)ですが、Windowsはsda2にインストールされています(以下を参照)。

一方、WindowsパーティションはSudo fdisk -l上またはOther Locations > SSD下にまだ表示されます。

助言がありますか?


更新:

これは私のパーティションです:

Number  Start   End    Size    Type      File system     Flags
 1      1049kB  577MB  576MB   primary   ntfs
 2      577MB   167GB  166GB   primary   ntfs
 3      167GB   168GB  1024MB  primary   fat32           boot, esp
 4      168GB   254GB  86,0GB  extended
 5      168GB   174GB  5999MB  logical   linux-swap(v1)
 6      174GB   254GB  80,0GB  logical   ext4

リスト構成一般設定外観設定

私も追加しようとしました

menuentry "Windows 10 (loader)"{
    insmod part_gpt
    search --set=root --file /EFI/Microsoft/Boot/bootmgfw.efi --fs-uuid DA02-12A2
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

ここを参照 ですが、起動時にError: invalid EFI file pathが表示されます(/EFI/Microsoft/Boot/bootmgfw.efiは実際には存在しません)。


更新2:

Sudo fdisk -l:

Disk /dev/loop0: 93,94 MiB, 98484224 bytes, 192352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 9,7 MiB, 9510912 bytes, 18576 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop2: 54,97 MiB, 57614336 bytes, 112528 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop3: 242,43 MiB, 254193664 bytes, 496472 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop4: 54,97 MiB, 57618432 bytes, 112536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop5: 240,82 MiB, 252493824 bytes, 493152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop6: 160,16 MiB, 167931904 bytes, 327992 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop7: 49,8 MiB, 52203520 bytes, 101960 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 238,49 GiB, 256060514304 bytes, 500118192 sectors
Disk model: ADATA SU800     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0a7e098f

Device     Boot     Start       End   Sectors  Size Id Type
/dev/sda1            2048   1126399   1124352  549M  7 HPFS/NTFS/exFAT
/dev/sda2         1126400 326035455 324909056  155G  7 HPFS/NTFS/exFAT
/dev/sda3  *    326035456 328036351   2000896  977M ef EFI (FAT-12/16/32)
/dev/sda4       328038398 496005119 167966722 80,1G  5 Extended
/dev/sda5       328038400 339755007  11716608  5,6G 82 Linux swap / Solaris
/dev/sda6       339757056 496005119 156248064 74,5G 83 Linux


Disk /dev/sdb: 931,53 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WDC WD10EZEX-60W
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x9dba35c9

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdb1          63 1953523119 1953523057 931,5G 42 SFS

Partition 1 does not start on physical sector boundary.




Disk /dev/loop8: 62,9 MiB, 65105920 bytes, 127160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop9: 27,9 MiB, 28405760 bytes, 55480 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
2
Foxel

修正でグラブメニューの問題が表示されない

GRUB=の最近のバージョンでは、タイムアウトが非表示になっています。起動中にleft-shiftを押し続けると、メッセージを表示したり、/boot/grub/grub.confを編集してhiddenmeuを削除したりできますデフォルトを10秒などに設定しますtimeout=10

Grub2の場合、/etc/default/grubファイルを編集して、次の変更を行います。

#GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=10

注:#記号はGRUB_HIDDEN_TIMEOUTをコメント化し、メニューを有効にします

変更を加えた後、Sudo update-grubを実行して変更を適用します。

これは私にとって/etc/default/grubのようになります:

# If you change this file, run 'update-grub' afterwards to update

# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="0"
GRUB_TIMEOUT_STYLE="hidden"
GRUB_TIMEOUT="5"
GRUB_DISTRIBUTOR="`lsb_release -i -s 2> /dev/null || echo Debian`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL="console"

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE="640x480"

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID="true"

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

GRUB_SAVEDEFAULT="false"
export GRUB_COLOR_NORMAL="light-gray/black"
export GRUB_COLOR_HIGHLIGHT="Magenta/black"  

Ubuntuソフトウェアセンターからダウンロードできる"grub Customizer"ソフトウェアを使用して、GUIでこれらの値を編集することもできます。 。

Grub Customizer

修正すると、Windowsブートマネージャーでgrubメニューの問題が表示されません。

また、Ubuntuは[〜#〜] uefi [〜#〜]モードで、WindowsはLegacy BIOSでインストールされているようです。 2つのオプションがあります。 Windowsを[〜#〜] uefi [〜#〜]に変更するか、UbuntuをレガシーBIOSに変更します。 Windowsを[〜#〜] uefi [〜#〜]に変更することをお勧めします。なぜなら、[〜#〜] uefi [〜#〜]は、 レガシーBIOS

1)WindowsをUEFIに変更します:これは、Windowsを再インストールするか、または ここ に記載されていることを実行してみます。 何をするにせよ、念のため、バックアップがあることをユーザーに伝えます。

2)UbuntuをレガシーBIOSに変更します:これを行うには、Ubuntuを再インストールしますが、-[〜# 〜] uefi [〜#〜]ブートオプションのオプション。 ([〜#〜] uefi [〜#〜]オプションには、名前の前に「UEFI:」が付いています[〜#〜] uefi [〜#〜]オプションとLegacy BIOSオプションの名前が異なる場合があることに注意してください詳細については、コメントでチャットを読んでください。

1
Sasuke Uchiha