1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Linux】VMwareで仮想マシンの保存場所を変更すると起動しなくなる問題の解決方法

Last updated at Posted at 2023-04-04

仮想マシンが起動しなくなった経緯

仮想マシンやスナップショットの容量が大きくなり,仮想マシンを保存しているCドライブの容量が枯渇してきた.そこで,新しく用意したEドライブにVMwareのファイルを移動することにした.自分が行った手順は以下の通り.

  1. 仮想マシンをパワーオフ
  2. 仮想マシンが含まれるディレクトリ(C:\Windows\ユーザー\l3ickey\ドキュメント\Virtual Machines\Kali Linux\)をコピー
  3. 新しい保存場所(E:\Virtual Machines\Kali Linux\)に貼り付け
  4. 仮想マシンをVMwareのライブラリから削除
  5. [ファイル] > [開く] で新しい保存場所にある仮想マシン構成ファイル(E:\Virtual Machines\Kali Linux\Kali Linux.vmx)を参照して指定
  6. 新しい仮想マシンをパワーオン
  7. You are in emergency mode. After logging in, type "Journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or "exit" to boot into default mode.というエラーが発生

image.png

エラーの原因と解決方法

CドライブからEドライブにディレクトリをコピーした際,仮想マシン設定の共有フォルダが無効になってしまい,共有フォルダのマウントに失敗するためエラーが発生していた.
このエラーを解決するには,単純に [仮想マシン] > [設定] から [オプション] タブの [共有フォルダ] を選択し,[フォルダの共有] を 無効 から 常に有効 に変更する.変更後,仮想マシンを再起動することで正常に起動するようになる.
image.png

解決に至るまでの手順

上記の解決方法で解決すると思うが,実際に自分が行った手順も参考程度に書き記しておく.

/bin/bash にログイン

emergency moderoot ユーザーのパスワードの再設定などで使われるそうだが,今回は root ユーザーのアカウントがロックされているため,シェルにアクセスすることができない.そのため,まずは /bin/bash にログインすることから始める.基本的に下記の記事と同じことをした.
Error “Cannot open access to console, the root account is locked” (SOLVED)

  1. 仮想マシンを再起動
  2. ブートローダーが起動したら eキー を押してブート設定の編集に進む
    image.png
  3. linux から始まる行の末尾に single init=/bin/bash を追記
    image.png
  4. Ctrl+x または F10 を押してブート
  5. /bin/bash が起動
    image (1).png

/dev/sda1 に読み取り権限を付与

passwd コマンドでパスワードを変更しようとすると失敗する.
image (2).png
この場合,ルートディレクトリに書き込み権限が無い可能性がある.
mount コマンドで権限を確認すると,/dev/sda1 on / の権限が ro (read-only) になっている.
image (3).png
再マウントすることでルートディレクトリの権限を rw (read, write) に変更する.
image (4).png
もう一度 passwd コマンドでパスワードを変更し,書き込み権限があることを確認する.
image (5).png

root ユーザーのアカウントロックをアンロック

アカウントがロックされていることが原因でログインシェルにアクセスできないため,アカウントロックのアンロックを行う.passwd -u root コマンドで root ユーザーのアカウントロックをアンロックすることができる.
image (6).png
/etc/passwd ファイルを確認し,root ユーザーのログインシェルが /usr/sbin/nologin になっていないことを確認する.(/usr/sbin/nologin になっている場合は /usr/bin/bash などに変更する必要がある)
image (7).png
再起動すると,Give root password for maintenance という表示があり,パスワードを入力することでログインシェルにアクセスできるようになる.
image (8).png

ブート時のエラーを解消

上記の画像の一行目を見ると,SMBus Host Controller not enabled! というエラーが表示されていることが確認できる.重要ではなさそうだったため,理由までは調べなかったが i2c_piix4 というモジュールをブラックリストに追加することでエラーを解消することができる.
image.png
再起動すると,SMBus Host Controller not enabled! というエラーが消えていることがわかる.
image (9).png

共有フォルダを有効化

You are in emergency mode. After logging in, type "Journalctl -xb" to view system logs, "systemctl reboot" to reboot, "systemctl default" or "exit" to boot into default mode.というエラーはマウントに失敗していると表示されることが多い./etc/fstab を確認し,UUID やその他の設定に不備が無いか確認する.
image (10).png
lsblk -f コマンドで UUID を確認すると,UUID は正しいことがわかる.
image (11).png
となると怪しいのは vmhgfs-fuse で,これは仮想マシンからホストOSにある共有フォルダをマウントするための設定.[仮想マシン] > [設定] から [オプション] タブの [共有フォルダ] を選択すると,[フォルダの共有] が 無効 になっていることに気づく.これを 常に有効 に変更し,仮想マシンを再起動することで正常に起動するようになった.
image.png
おかえりGUI.
image.png

おわりに

ホストOSの共有フォルダ機能は便利なので使っている人が多いと思います,しかし思わぬところで機能が無効になり,ブートに失敗するという罠があるので気づくのに時間がかかりました.この記事が同じ問題で困っている人の役に立てば幸いです.

参考文献

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?