これを修正する方法はたくさんありますが、私の場合は解決策を適用できませんでした。
私の状況は次のとおりです。
14.04でusbスティックを使用し、12.04で作業しているので、修正を適用したり、さらにデバッグしたりできます。
Sudo grub-update
を実行すると、次のことがわかります。
> Generating grub.cfg ... Found linux image:
> /boot/vmlinuz-3.5.0-52-generic Found initrd image:
> /boot/initrd.img-3.5.0-52-generic Found linux image:
> /boot/vmlinuz-3.5.0-46-generic Found initrd image:
> /boot/initrd.img-3.5.0-46-generic Found linux image:
> /boot/vmlinuz-3.5.0-45-generic Found initrd image:
> /boot/initrd.img-3.5.0-45-generic Found linux image:
> /boot/vmlinuz-3.5.0-23-generic Found initrd image:
> /boot/initrd.img-3.5.0-23-generic Found memtest86+ image:
> /boot/memtest86+.bin Found Ubuntu 14.04 LTS (14.04) on /dev/sda6
> done
私が試した解決策の1つは、grub menu
でe
を押し、IDを/dev/sda6
に置き換えることでしたが、何も変わりません。
問題の原因は何ですか?また、12.04を使用してGRUBを修正する簡単な方法はありますか?
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
linux /boot/vmlinuz-3.5.0-52-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.5.0-52-generic
}
--
search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
echo 'Loading Linux 3.5.0-52-generic ...'
linux /boot/vmlinuz-3.5.0-52-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.5.0-52-generic
--
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
linux /boot/vmlinuz-3.5.0-46-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.5.0-46-generic
}
--
search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
echo 'Loading Linux 3.5.0-46-generic ...'
linux /boot/vmlinuz-3.5.0-46-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.5.0-46-generic
--
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
linux /boot/vmlinuz-3.5.0-45-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.5.0-45-generic
}
--
search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
echo 'Loading Linux 3.5.0-45-generic ...'
linux /boot/vmlinuz-3.5.0-45-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.5.0-45-generic
--
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
linux /boot/vmlinuz-3.5.0-23-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.5.0-23-generic
}
--
search --no-floppy --fs-uuid --set=root 0970394e-13f2-47c9-979e-c93cb6eef06d
echo 'Loading Linux 3.5.0-23-generic ...'
linux /boot/vmlinuz-3.5.0-23-generic root=UUID=0970394e-13f2-47c9-979e-c93cb6eef06d ro recovery nomodeset
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-3.5.0-23-generic
--
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
linux /boot/vmlinuz-3.13.0-30-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro nomodeset quiet splash $vt_handoff
initrd /boot/initrd.img-3.13.0-30-generic
}
--
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
linux /boot/vmlinuz-3.13.0-30-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro nomodeset quiet splash $vt_handoff
initrd /boot/initrd.img-3.13.0-30-generic
}
--
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
linux /boot/vmlinuz-3.13.0-30-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro recovery nomodeset nomodeset
initrd /boot/initrd.img-3.13.0-30-generic
}
--
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro nomodeset quiet splash $vt_handoff
initrd /boot/initrd.img-3.13.0-24-generic
}
--
set root='(hd0,msdos6)'
search --no-floppy --fs-uuid --set=root ee707b14-31a7-4f86-a6e5-1b9aa38bdd68
linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ee707b14-31a7-4f86-a6e5-1b9aa38bdd68 ro recovery nomodeset nomodeset
initrd /boot/initrd.img-3.13.0-24-generic
}
上記のエラーの2つの考えられる原因は次のとおりです(インストールが完全に壊れていないことを前提としています)。
a)Grubが14.04のブートに正しいルートをロードしていない
b)14.04インストールのfstabおよび/またはinitrdのルートのエントリが壊れています。
問題のコメントを考えると、a)が原因になる可能性は低いようです。その理由は、grubでroot =/dev/sda6に置き換えても役に立たなかったからです。 12.04 grubエントリは正しいように見えますが、実際のgrubインストールは現在14.04である可能性があります(フロントgrubブートページに表示されるエントリから確認でき、14.04と12.04は代替画面に表示されます)。そのため、先に述べたように、12.04 grubに置き換えることを最初に試すことができますが、おそらく問題ではありません。作業中の12.04環境から:
Sudo grub-install /dev/sda
オプション:Sudo gedit /etc/default/grub
、GRUB_HIDDEN_TIMEOUTとGRUB_TIMEOUTの両方がゼロ以外の10(タイムアウト10秒)を選択できるように、grubにタイムアウトが設定されていることを確認してから、Sudo update-grub
を実行します。再起動すると、フロントブート画面に12.04が表示され、14.04が代替画面に表示されます。 14.04が動作するようになったら、完了です。14.04環境からSudo grub-install /dev/sda
を実行して、14.04のgrubをインストールするだけです。それ以外の場合、次のようにb)の修正を試みます。
B)については、2つの方法があります。 1つは、ライブCDから起動し、既存のインストールをマウントして修正することです。その他は、作業中の12.04インストールから修正することです。 1つ目のオプションはかなり似ていますが、既存の12.04インストールの代わりにライブCDで起動するという違いがありますが、2つ目について詳しく説明します。
12.04で起動したら、最初にルートシェルにドロップして、Sudo
の繰り返し呼び出しを避けます:Sudo -i
。
ここで、14.04のインストール(たとえば/mnt/trusty
)とchroot
をマウントして、14.04をそのシェルの新しいルートとしてインストールします(そして、シェルを14.04として効果的に作成します)。昔のLinuxの時代には、これはシェルから14.04環境で動作するのに十分でしたが、新しいカーネルでは/dev
のデバイスファイルのほとんどが動的になり、udev
デーモンに置き換えられました。最初に多くのこと。ただし、fstab/initrdを修正する目的では、そのままで問題ありません。それでも、警告/エラーを回避するためにいくつかのことを行う必要があります-現在のmtabをコピーしてprocをマウントします.
mkdir /mnt/trusty
mount /dev/sda6 /mnt/trusty
cp /etc/mtab /mnt/trusty/etc/mtab
この時点で、chroot
ingの前にfstabをチェックして修正し、14.04カーネルのinitrdイメージを再生成する準備が整いました。それを開いて:gedit /mnt/trusty/etc/fstab
、最初のコメント化されていない行にルート(/)のマウントポイントの正しいUUIDがあることを確認します。この場合、14.04のルート/ dev/sda6のUUIDがee707b14-31a7-4f86-a6e5-1b9aa38bdd68
であることがわかりました。したがって、fstabがUUIDを修正し、fstabを保存して閉じることも同じことを示していることを確認してください。これで、initrdを再生成できます。
chroot /mnt/trusty
mount -t proc proc /proc
update-initramfs -k all -c
これはエラーなしで終了するはずです。次に/ procをアンマウントし、chroot
環境からログアウトし、14.04をアンマウントします。
umount /proc
exit
umount /mnt/trusty
ここでリブートして、14.04を開始してみてください。正常に起動したら、前述の14.04のgrubに置き換えます。14.04環境のSudo grub-install /dev/sda
。また、chrooted環境にいくつかの違いがあった場合に備えて、14.04環境内からinitrdを再生成することをお勧めします:Sudo update-initramfs -k all -c
。
私は同じエラーメッセージを受け取りましたが、何も助けませんでした。私の場合、エラーはファイルシステムの破損であることが判明しました。ディスクからの読み取りに失敗していました。
Linuxドライブ(/ dev/sdaN)で-fオプションを指定してfsckを実行することで修正しました。その方法で、fsckにドライブのエラーチェックを強制し(最後のチェックからフラグを読み取るだけではなく)、見つかったエラーを手動で修正しました。
エラーが修正されると、システムは再起動後にオンラインに戻りました。これがお役に立てば幸いです。