🔨
Proxmox VEのVMを破壊したときの対処
なにかやらかしてVMを破壊してブートしなくなった、GRUBにすらたどり着かない、みたいなときの対処方法。
※きちんと検証しているわけではないので、自己責任でお願いします。
前提環境
- Proxmox VE 7.3
- VM
- Almalinux 9.4
ストレージのLVM設定をいじってリブートしたところ、Booting from Hard disk...
の表示でハングアップしてまったく起動しなくなった。
まとめ
- vzdumpのダンプされたVMファイルがあればそれを戻す(1番楽)
- Proxmox WebUIから該当VMに対しiSOファイルをマウントして、そこから起動、レスキューモードに頼る
- VM起動時にNoVNCで頑張ってEsc連打するとブートメニューに入れるので、マウントしたiSOファイルの優先度を上げる
レスキューモードでの対処
Almalinux9.4のiSOを使って対処した。
iSOからインストーラが起動したら、レスキューモードを選択する。
そこから指示に従ってシェルを起動する。
ファイルシステム周りの確認
# lsblk -f /dev/sda
ファイルシステムの状態をみる
システム上データ領域をLVMにして運用している場合、そのままLVM化しているパーティションに無理やりfsck等を実行するとデータが破損します。
とのこと。こわい。
LVMを壊さないように以下を実行する
# pvs
# vgchange -a y (VG領域有効化)
# lvs (状態確認)
該当するパーティションのマウントを試してみて、ファイルシステムが生きているかみる。
# mount /dev/vdaX /mnt (マウントを試す)
# mount --bind /dev /mnt/dev
# mount --bind /proc /mnt/proc
# mount --bind /sys /mnt/sys (chrootするのに必要なディレクトリを用意する。/binとか/lib, /lib64もやらないとだめかも)
# chroot /mnt
でたとえばalmalinux-home
みたいなLVがある場合、/dev/mapper 以下に既にマッパーデバイスができていることがある。
これをマウントできれば普通にデータを吸い出せる。
SSHサーバの設定
レスキューモードでsshサーバの待ち受けを設定できれば、ローカルにデータを吸い出すときに楽
# ip a
# nmcli con sh
# nmcli con mod <デバイス名> ipv4.method manual ipv4.addr <IPアドレス>/<PREFIX>
# nmcli con mod <デバイス名> ipv4.gateway <gateway>
# nmcli con up <デバイス名>
# nmcli con sh
# ip a
# systemctl restart NetworkManager (設定反映)
参考
-
レスキューブートを実施する — さくらの VPS マニュアル
https://manual.sakura.ad.jp/vps/troubleshoot/rescue_boot.html -
CentOSのレスキューモードでsshサーバを起動できた - なにかの技術メモ置き場
https://none06.hatenadiary.org/entry/2021/10/16/034123
Discussion