switch_rootコマンドと空のパーティションを使用して機能的ですが、不安定なrootfsに対してホットリカバリを実行する方法は?

switch_rootコマンドと空のパーティションを使用して機能的ですが、不安定なrootfsに対してホットリカバリを実行する方法は?

二度と体験できない極限の状況に直面しましたが、備えたいと思いました。メインディスクには4つのパーティションを持つ組み込みシステム(u-boot)があります。パーティションの1つはrootfs(ext4)ですが、残念ながらrw。ラフなインタラクションを見事に処理しましたが、ext4今日は初めて問題を発見しました。インストールは引き続き機能しますが、systemd-fsck-root.service失敗して続行するにはCTRL-Dが必要であることを示すメッセージが表示され、を実行するように求められますfsck

systemd-fsck[1130]: /dev/mmcblk1p4: Superblock last mount time is in the future.
systemd-fsck[1130]:         (by less than a day, probably due to the hardware clock being incorrectly set)
systemd-fsck[1130]: /dev/mmcblk1p4 contains a file system with errors, check forced.
systemd-fsck[1130]: /dev/mmcblk1p4: Inodes that were part of a corrupted orphan linked list found.
systemd-fsck[1130]: /dev/mmcblk1p4: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
systemd-fsck[1130]:         (i.e., without -a or -p options)
systemd-fsck[1130]: fsck failed with error code 4.
systemd-fsck[1130]: Running request emergency.target/start/replace

initramfs私のカーネルにはバックアップパーティションがありません。私が持っているすべては次のとおりです

  • rootfsの隣にほとんど使用されていないパーティション
  • switch_rootコマンド

私の計画は次のとおりです。

  1. Linux の実行に必要な基本ファイルを別のパーティションにコピーします。
  2. fsckrootfsを回復するために必要なその他のコンテンツを空のパーティションにコピーします。
  3. 別のパーティションにジャンプswitch_root
  4. デフォルトのrootfsをアンマウントし、fsckリカバリを実行します。
  5. rebootブートローダは固定されたメインを指す必要があります。

私が知らない主な点は次のとおりです。

  • これはうまくいくでしょうか?
  • どの基本文書が必要ですか#1?ロードされたカーネルモジュールを含める必要がありますか、それともカーネルに残りますか?
  • switch_rootジャンプを容易にする非常に簡単な初期化スクリプトはどのようなものでしょうか?

ベストアンサー1

おすすめ記事