web-dev-qa-db-ja.com

LUKS initramfsブートの問題:「/ dev / mapper / ubuntu-rootが存在しません。」バックアップを使用して修正するにはどうすればよいですか?

Ubuntu/Linuxに比較的新しい、初めての質問者。検索機能にそれほど運がなかった。以下のエッセイを許してください-問題は少しユニークです、私は思う...

代替CDを使用して完全なディスク暗号化をセットアップし、ラップトップ(UEFI BIOSを搭載)で12.04を実行しています。最近、ddを使用してハードドライブ全体のバックアップイメージを外部USB hddに作成しました。最近ラップトップでいくつかの変更を行ったので、ファイルをコピーするために外部USBクローンをプラグインしようとしました。パスワードプロンプトを取得し、ディスクユーティリティに論理ボリュームグループとして表示するにもかかわらず、「マウント可能なファイルシステムではない」と言って、実際には外部ドライブをマウントしません。デスクトップで試してみたところ、うまくマウントされました(lvm2をインストールしたら)。

Pvdisplayを使用して、外部ドライブと内部ラップトップドライブの両方が同じUUIDを持っていることに気付きました(クローンです!)。そのため、デスクトップで、pvchange -uを使用して外部ドライブのuuidを変更しました。残念ながら、それをラップトップに接続しても、まだ喜びはありません。あきらめて、ラップトップの電源を切り(ドライブはまだ差し込まれている)、行って夕食をとりました。帰ってきた、今オフのラップトップから外された外付けドライブは、起動しようとしました。問題!

パスワードプロンプト画面で正常に起動します。パスワードを入力すると、長い待機の後、「アラート!/ dev/mapper/ubuntu-rootが存在しません。」というエラーが表示されて、initramfsプロンプトが表示されます。うん.

再起動し、外部ドライブに再び接続すると、起動し、USBドライブからrootを実行しているように見えます。解決策を試してみました here 、代わりに/ dev/sda3(およびさらに多くのバリエーション)を入力します。ビンゴはありませんが、まったく同じメッセージを受け取ります。 LVMでLUKSを使用しているという事実は、事態を複雑にしているようです。おそらく同じUUID(愚かな!)の2つのドライブを接続することによって、どこかに設定ファイルを混乱させたと思いますが、今では/ rootが外部ドライブにあると考えています。私はそれを取り戻す方法について困惑しています。

3
jdeks

それを私が直した!!将来の世代の参照については、こちらをご覧ください。

問題は、実行中のシステムのクローンをプラグインすることで、どのドライブに書き込むかについてシステムを「混乱」させ、元の内部ドライブのボリュームグループメタデータを何らかの方法で無効にすることでした。幸いなことに、私が作成したクローンのメタデータはまだありました。

これは、作業バックアップをプラグインしてロックを解除し、vgcfgbackupを使用してメタデータのコピーを作成できることを意味していました。

~$ Sudo vgcfgbackup -f /tmp/trousers
  Volume group "ubuntu" successfully backed up.

これにより、ズボンと呼ばれるメタデータが/ tmpにあるテキストファイルが作成されます(好きな名前で呼び出され、違いはありません)。

次に、機能しているバックアップクローンのマウントを解除してプラグを抜き、破損した内部ドライブを差し込みました。バックアップを行ったようにロックを解除し、実行します:

 Sudo vgcfgrestore -f /tmp/trousers ubuntu
  Restored volume group ubuntu

これを行うと、ボリュームグループは突然ディスクユーティリティの寿命を迎え、壊れた内部は解放され、マウント可能になり、再び読み取り可能になりました!

ここで重要なのは、「ubuntu」が元のボリュームグループの名前だったことです。これを確認するには、geditで「ズボン」ファイルを開き、「creation_time」の下の行のエントリを見てください。

また、バックアップは元の内部の正確なクローンであり、したがってVGメタデータファイルにはすべての正しいUUIDが配置されていたため、これが機能したことにも注意してください。もともと外部ドライブのUUIDの1つを手動で変更したため、実際には初めてエラーメッセージが表示されました。元の内部でpvdisplayを使用してそのUUIDを見つけてから、「ズボン」ファイルを手動で編集して機能させる必要がありました。

とにかく、それがいつか誰かを助けることを願っています。

4
jdeks