web-dev-qa-db-ja.com

initramfsにドロップされたLVMルートが見つかりません

起動すると、次のような画面が表示されます。

Gave up waiting for root device

次に、一般的な問題をリストします。

ALERT! /dev/mapper/ubuntu--vg-root does npt exist. Dropping to a Shell!

次に、initramfsプロンプトが表示されます。

これはバックアップなしで修正可能ですか?

私はこの機能を停止させるために何をしたかを正確に思い出せません...

(私のハードディスクは暗号化されていません。)

5
tillius

UbuntuのLVM自動検出も私にはまったく機能しませんでした。それを修正するために、スクリプトを作成しました

/etc/initramfs-tools/scripts/local-top/forcelvm

次の内容で:

#!/bin/sh
PREREQ=""
prereqs()
{
   echo "$PREREQ"
}
case $1 in
prereqs)
   prereqs
   exit 0
   ;;
esac
. /scripts/functions
# Begin real processing below this line

# This was necessary because ubuntu's LVM autodetect is completely broken. This
# is the only line they needed in their script. It makes no sense.
# How was this so hard for you to do, Ubuntu?!?!?
lvm vgchange -ay

それからした

# chmod +x `/etc/initramfs-tools/scripts/local-top/forcelvm`

良い尺度と

# update-initramfs -u -k all

それはすべてを修正しましたが、システムの更新後も持続します。

8

一時的な回避策を試してください

Ininitramfsプロンプトタイプ:

vgchange -ay

サンプル出力:

ボリュームグループ「vg1000」の論理ボリュームがアクティブになりました

に続く:

exit

ルートパーティションのLVMスナップショットがある場合、それはバグです #360237 。このスナップショットを削除/削除する問題を解決します。

そうでない場合は、 これを修正する を試してください。

別の関連するバグ: #139621#29858#1163406

2
Maxwel Leite

一部の人にとっては、grub.cfgに問題がある可能性があります。

18.04の今日、同じ問題(lvmボリュームグループがinitrdによってアクティブ化されなかったため、ルートが見つかりません)についてつまずきました。デバイス名で「grub.cfg」にルートデバイスを指定すると、ボリュームグループが自動的にアクティブになることがわかりました

linux   /vmlinuz root=/dev/mapper/vg-root

uUIDごとに指定した場合、自動的にアクティブ化されないため

linux   /vmlinuz root=UUID=abcd-[...]

したがって、このロジックを含むinitrdにはスクリプトが必要でした。

1
user922073
  1. バックアップ

    /usr/share/initramfs-tools/scripts/local-top/lvm2
    
  2. 編集

    /usr/share/initramfs-tools/scripts/local-top/lvm2
    
  3. modprobe -q dm-modactivate_vg "$ROOT"の間に次の行を追加して、lvmを初期化します。

    lvm vgchange -ayactivate_vg "$ROOT"
    
  4. Initramfsを再構築します。

    Sudo update-initramfs -u
    
  5. Grub cfgを再構築します。

     Sudo update-grub
    

楽しい! :-)

0
Jason