grubはlvmでは動作しません

grubはlvmでは動作しません

LVMにWindows + Ubuntuを含むデュアルブートシステムがあります。

/dev/sda1 -> efi
/dev/sda2-4 -> windows
/dev/sda5 -> LVM

/dev/vgsys/root -> /
/dev/vgsys/home -> /home

そのドライブが破損し始め、最近新しいSSDに移動しました。いくつかの破損したプログラム(wpasupplicantやsedなど)を送信して再インストールした後、システムは私が愚かなように動作し、システムのアップグレードを実行して再起動するまで、グラブが過去の間違いの前に見たことのないいくつかのコンテンツを吐き出すことを見ましたにもかかわらず正常に動作しました。システムが起動しなくなり、システムの回復を介してドライブを起動して理由を見つけようとしています。

私はgrubを消去して再インストールしようとしましたが、これは私が経験していたいくつかの問題を解決しているように見えましたが(もちろん、バックアップなしでいくつかのカスタムgrub構成設定を失うために)、実行するたびにまたは奇妙でgrub-install恐ろしいupdate-grubことが起こります。オンラインでエラー履歴が見つかりません。私は自分でコピーして100%正確ではないかもしれません。

File descriptor 4 (/dev/sda1) leaked on vgs invocation. Parent PID 12201: grub-install
Internal error:  cfg tree element not declared as boolean.
Internal error:  cfg tree element not declared as boolean.
Internal error:  cfg tree element not declared as string.
Internal error:  cfg tree element not declared to allow empty values.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as array.
  Internal error:  cfg tree element not declared as array.
  Internal error:  cfg tree element not declared as array.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as integer.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as array.
  Ignoring invalid activation/mlock_filter entry in config file
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as integer.
  Ignoring too small pv_min_size 0KB, using default 512KB.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as boolean.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared to allow empty values.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as integer.
  Internal error:  cfg tree element not declared as string.
  Internal error:  cfg tree element not declared as array.
  Expecting string in devices/types in config file
  _control_fd: close failed: Bad file descriptor

それからまたそんなことが起きているようでした。

実は以前見たことがありますFile descriptor 4 (/dev/sda1) leaked on vgs invocation. Parent PID 12201: grub-install主張したところによると害がない。他のいくつかのエラーはLVMに関連しているように見えるpv_min_sizeため、これは通常LVMの問題であると推測されます。

grub-installefiとブートパーティションで作成された外部サムドライブで次のことを試しました。

umount /boot/efi
mv /boot /boot.bad
mkdir /boot
mount /dev/sdb2 /boot
mkdir /boot/efi
mount /dev/sdb1 /boot/efi
grub-install --efi-directory=/boot/efi

実際にエラーは受信されません。ただし、実行するたびにupdate-grubこれらのエラーが再発生します。彼らはどこから来て、どのように解決しますか?

アップデート:見つかりましたこのページcfg tree element..そこにいくつかのニュースがありますが、これが何を意味するのか気になります...

ベストアンサー1

@psusiが指摘したように、問題は私のlvmバイナリが破損していることです。私は走った

apt-cache depends lvm2 | grep Depends | awk '{print $2}' | xargs apt install --reinstall -y
apt install --reinstall -y lvm2

lvm2とすべての依存関係を再インストールすると問題が解決しました。

おすすめ記事