CentOS 8 のせいではないと思いますが、 Mondo Rescue のリストアに失敗するようになりました。iso イメージから起動して自動リストアがとても便利でしたが、リストア後のシステムで各パーティションが見つからないと言われる状態に陥っています。
UUID 情報を手動で再セットすることで復帰処理ができたので、これで事なきを得ました。ここにその手順の概要をまとめておきます。誰かの助けになれば幸いです。
リストア処理(mondorescue)
mondorescue の interactive モードでリストアします。基本的に指示通りに進めていけばよく、ディスクの中身は全削除で問題ありません。すべてをリストアしているので、UUIDの上書きも期待したのですがそこがうまくいかないようです。
途中の ブートローダー設定周りのところでシェルに落ちて img ファイルを作り直しをします。このとき、initramfs コマンドがなく、 mkinitrd コマンドで作業する必要がありました。
このコマンドを用いて以下のコマンド列を入力します。ここでファイル名やバージョン名については /boot の中にあったファイル名をベースにしています。
# cd /boot
# mkinitrd initramfs-4.18.0-147.5.1.el8_1.x86_64.img 4.18.0-147.5.1.el8_1.x86_64
その後、 Ctrl+D でシェルを抜けて、ブートローダーの書き込みの処理を完了させます。この状態でシステムを起動させると、 UUID があっておらず起動失敗になります。
リストア処理 (2nd Stage)
CentOS のインストールディスクを用いて、レスキューモードで起動します。ドライブをマウントせずシェルを起動します。
たとえば ext4, xfs, swap のパーティションを持つような場合では、それぞれのファイルシステムに合わせて UUID 変更コマンドを実行します。(これらのコマンドはマウントされていると実行できないので注意しましょう)。
各ファイルシステムごとの変更コマンドの例
- ext4
- e2fsck -f /dev/sda1
- tune2fs -U <UUID> /dev/sda1
- swap
- mkswap -U <UUID> /dev/sda2
- xfs
- xfs_admin -U <UUID> /dev/sda3
最後に、コマンド blkid を実行して期待する UUID になっているかを確認して作業は完了です。
コメント