仮想ホストであれば、isoファイルをマウントしてレスキューモードに入っていく事ができるが、仮想マシン(KVM)の場合はvirt-rescueを実行する事で確認する事ができる。
実行環境
ホスト型の仮想化環境で、KVMで構築している状態である。
ツールのインストール
virtでのレスキューモードで実行できるようにするには、仮想ホスト上で以下をインストールする必要がある。 以下コマンドを、仮想ホストにて実行する。
sudo yum install libguestfs-tools
ゲストをシャットダウンする。
sudo virsh shutdown ゲスト名
Virt-rescueでゲストを起動
以下のコマンドを実行する。この時、ゲストはシャットダウンされている事。
sudo virt-rescue ゲスト名
すると、いくつか表示が出た後、プロンプトが以下のように変化する。
><rescue>
パスワードとユーザを作る
一般ユーザがないという時に、レスキューモードから入ってパスワードを変更する&ユーザを追加する手順を記載する。
まずは、どのディスクが /
で使われていそうか、以下コマンドを使って確認する。
fdisk -l
今回であれば、/dev/sda3が使われていそう。
><rescue> fdisk -l
Device Start End Sectors Size Type
/dev/sda1 2048 206847 204800 100M EFI System
/dev/sda2 206848 10692607 10485760 5G Linux filesystem
/dev/sda3 10692608 41940991 31248384 14.9G Linux filesystem
sda3を、/sysrootにマウントする。
以下コマンドでマウント
mount /dev/sda3 /sysroot/
以下コマンドを実行し、root以下のフォルダが見れればOK.
ls -l /sysroot
root環境に入る
まずはchrootコマンドで権限を変更してから、新たにユーザーとパスワードを作成する。
この時、passwdコマンドで、rootのパスワードを新たに作成する。
><rescue> cd /sysroot
><rescue> chroot /sysroot
><rescue> passwd root
Changing password for user root.
New password:
次に、新しく一般ユーザを作成する。
また、passwordも設定する。
><rescue>useradd -m user
><rescue>passwd user
アンマウントし、さらにexit
でレスキューモードから抜ける。
><rescue>umount /dev/sda3
><rescue> exit
ゲストにログイン
仮想ホスト上で、以下のコマンドを実行する。
sudo virsh start ゲスト名
そしてログイン
sudo virsh console ゲスト名
コンソールが起動するので、先ほど作ったuserとパスワードでログインする。
所感
ゲストのパスワードがわからなくても、ホストにルート権限でログインする事ができればこのように新たに
権限を追加して中に入る事ができてしまう。コンソールにつなぐ事ができるというのはそれだけ注意しなければいけない事だ。
参考サイト