initramfsからルートファイルシステムをマウントする

initramfsからルートファイルシステムをマウントする

これは一般的なシナリオです。何らかの理由でinitramfs(重要な場合はOpenSUSE)はルートファイルシステムが見つからないため、回復シェルに移動します。私はどの機器を設置するべきかを正確に知っていました。私の質問:

ルートファイルシステムをマウントして起動順序を続行する正しい手順は何ですか?

たぶんそれはすべてかもしれません。より構造コンソール。しかし、実際にこれを行う方法を文書化した人は誰もいないようです。

明らかに、ルートファイルシステムをどこかにマウントできるようです。しかし、私はこれをどうやって行うことができますか?ファイルシステムツリー?では、通常のブートプロセスを続行しますか? (ちょうどシェルを終了すると大丈夫だと思いましたが…そうではありません。)続行する前に、何をインストールする必要がありますか?

答え1

switch_root /mnt/root /sbin/initの実行

https://wiki.gentoo.org/wiki/Custom_Initramfs#Init

答え2

問題の種類によって異なります。問題がinitramfsイメージ自体にある場合、問題を解決するには実際にイメージを再構築する必要があります(update-initramfsの実行)。 initramfsファイルシステムはRAMファイルシステムなので、問題を解決するには、圧縮されたinitramfsイメージを回復するか、ルートファイルシステムを回復する必要があります。

破損したcrypttabエラーが原因で破損したブートを修復するために、LUKS暗号化Ubuntuシステムで次の手順を使用しました。

まず、パーティションのパスワードを復号化しました。

cryptsetup luksOpen /dev/nvme0n1p3 nvme0n1p3_crypt

device_cryptランダムではないので参考にしてください。システムは通常インストールされている名前と一致する必要があります(partition + _cryptが標準のようです)。

次に、現在復号化されているパーティションでボリュームグループをアクティブにする必要があります。

vgchange -ay

これで、ファイルシステム、/、/boot、proc、swapなどをマウントしてそのように実行できます。

私の場合は、exitを入力するだけでinitramfsがそこに配置されている論理ボリュームをチェックし、うまく起動を再開します。これにより、損傷を修復して実行するのが簡単になります。update-initramfs -u

答え3

fsckオプションなしでコマンドを実行して再initramfs起動します。

例:ルートパーティションは次のとおりです。sda3

fsck /dev/sda3

答え4

通常の手順は

  1. マウント /dev/sdX /mnt
  2. /mnt トラブルシューティング
  3. 再起動

欲しいかもしれません

  1. マウント /dev/sdX /mnt
  2. 修理/月
  3. 削除/mnt
  4. マウント /dev/sdX/
  5. 手動で起動完了

これはお勧めできません。起動するたびにこれを行う必要があります。本番環境では、手動起動が自動起動と同じ手順に従うことを保証することはできません。

ただし、機密データに関連する緊急事態では、通常、5つのステップが次のように要約されます。

  • 5.1 ネットワーク設定
  • 5.2重要なファイルを安全な場所にコピーする

関連情報