web-dev-qa-db-ja.com

14.04アップグレードトリガーgrub-pcの失敗

私の問題は、Ubuntu 12.04 LTSから14.02 LTSへのアップグレードから始まります。この一環として、古いカーネルを削除できないというエラーメッセージをいくつか受け取りました。

14.02を初めて起動したときに、Sudo apt-get autoremoveを実行してすべてが正常であることを確認すると、同じエラーが表示されました。

オンラインのガイドに従って、次を実行しました。

Sudo apt-get purge grub-common
Sudo apt-get install grub-pc

最初の操作が成功し、PCからgrubが削除されました。次の操作で2番目の操作が失敗しました。

Creating config file /etc/default/grub with new version
Installing for i386-pc platform.
Installation finished. No error reported.
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-3.13.0-54-generic
Found initrd image: /boot/initrd.img-3.13.0-54-generic
Found linux image: /boot/vmlinuz-3.13.0-44-generic
Found initrd image: /boot/initrd.img-3.13.0-44-generic
Found linux image: /boot/vmlinuz-3.13.0-40-generic
Found initrd image: /boot/initrd.img-3.13.0-40-generic
Adding boot menu entry for EFI firmware configuration
cat: /video.lst: No such file or directory
/usr/sbin/grub-probe: error: failed to get canonical path of `'.
No path or device is specified.
Usage: grub-probe [OPTION...] [OPTION]... [PATH|DEVICE]
Try 'grub-probe --help' or 'grub-probe --usage' for more information.
dpkg: error processing package grub-pc (--configure):
 subprocess installed post-installation script returned error exit status 64
Errors were encountered while processing:
 grub-pc
E: Sub-process /usr/bin/dpkg returned an error code (1)

私はこれについて多くの修正を試みましたが、そのほとんどは ここ で文書化されています。 grub-commonを削除する前にLiveCDを作成したため、古いパーティションにアクセスでき、mountchrootをそこに入れることができます。

ただし、update-grubを実行すると同じエラーが表示されますが、dpkg --configure -aを実行することもできません。

boot-repairを使用して、マシンの ブートサマリ を取得しました。これは、最初のドライブでデュアルブートを行う2 HDDリグです(/dev/sda)。 /dev/sda1上のWindows/dev/sda2上のUbuntuパーティション(ブートも)を使用します。

これを修正するのを手伝ってください。Ubuntuのインストールに二度と触れないことを約束します。 :-)

3
Rossiar

I "優雅に解決"次を使用して私の問題:

Sudo apt-get purge grub-pc grub-common
Sudo rm -r /etc/grub.d/
Sudo apt-get install grub-pc grub-common
Sudo grub-install /dev/sda
Sudo update-grub

/etc/grub.d/ディレクトリを削除すると、12.04ファイルが削除され、14.04がgrubをインストールできるようになりました。

もちろん、削除しようとしているもののバックアップを作成することをお勧めします。

5
Rossiar

Boot-Repairを使用する最も簡単な方法は、ツールを含むディスク(たとえば、Boot-Repair-Disk、Boot-Repairを自動的に開始するディスク)を作成し、その上で起動することです。

個人的には Boot-Repair disk ISO を使用することを好みます

0
Jackspace