LoginSignup
1
0

More than 5 years have passed since last update.

VMwareをインストールして(エラー対処できてから)使ってみよう

Last updated at Posted at 2018-03-09

なぜVMwareを入れるのか

これはあくまで僕の持論なので反論は受け付けませんが、僕は色んなOSを触るために仮想で試しています。
いやいや。待ってください。自分のパソコンに入れたらいいじゃないですか?って
自分のパソコンに入れるとなるとメモリに限度があるというのと、一度インストールに失敗したりパソコン全体に響くようなミスをしてしまった場合を考えて仮想で試すのです。
自分のパソコンなので責任なんてどうでもいいですが、まずは慣れが大事だと思うので僕は入れます。

実際にVMwareを入れてみよう

まず、実際に導入した機器のスペック?です。

       
パソコン ThinkPad X1 Carbon (2017モデル)
入れてるOS Ubuntu17.10

結構最新のもの使ってます。ただ、やり方は変わらない(と思う)ので特に気にしなくて問題ないと思います。

インストール手順

こちらからLinux版をダウンロードしてきてください。

上記のサイトからダウンロードしてきたbandleファイルをrootディレクトリに置いてshコマンドで実行してインストールしてください。*1

端末
$ sh VMware-Player-14.0.0-6661328.x86_64.bundle

終わり

さあ、起動しよう

さあ、Windowsを入れてみよう!!
Screenshot from 2018-03-08 09-27-50.png

なんでや!!!!
俺が悪いことでもしたっていうのか?!(心当たりあり)

このエラーを直して使えるようにしよう

このエラーを凄い要約すると物理メモリが足りないって言われてます。
ということでググってみたらこのサイト辺りが当たりだと思ったのでやってみました。*2

以下のコマンドを実行

端末にて
cd /usr/lib/vmware/modules/source

tar xf vmmon.tar

cd vmmon-only/linux

edit vmmon-only/linux/hostif.c

②hostif.cの中身追加

hostif.c
 #include "versioned_atomic.h"
 --- BEGIN ADD ---
 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 14, 0)
 #   define global_zone_page_state global_page_state
 #endif

 static unsigned long get_nr_slab_unreclaimable(void)
{
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0)
   return global_node_page_state(NR_SLAB_UNRECLAIMABLE);
 #else
   return global_page_state(NR_SLAB_UNRECLAIMABLE);
 #endif
}

 static unsigned long get_nr_unevictable(void)
{

 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
   return global_node_page_state(NR_UNEVICTABLE);
 #else
   return global_page_state(NR_UNEVICTABLE);
 #endif
}

static unsigned long get_nr_anon_mapped(void)
{
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
   return global_node_page_state(NR_ANON_MAPPED);
 #else
   return global_page_state(NR_ANON_PAGES);
 #endif
}
--- END ADD ---

...
    unsigned int reservedPages = MEMDEFAULTS_MIN_HOST_PAGES;
    unsigned int hugePages = (vm == NULL) ? 0 :
       BYTES_2_PAGES(vm->memInfo.hugePageBytes);

--- BEGIN REPLACE ---
   unsigned int lockedPages = global_page_state(NR_PAGETABLE) +
                              global_page_state(NR_SLAB_UNRECLAIMABLE) +
                              global_page_state(NR_UNEVICTABLE) +
                              hugePages + reservedPages;
   unsigned int anonPages =
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
      global_page_state(NR_ANON_MAPPED);
 #else
      global_page_state(NR_ANON_PAGES);
 #endif
--- WITH ---
   unsigned int lockedPages = global_zone_page_state(NR_PAGETABLE) +
                              get_nr_slab_unreclaimable() +
                              get_nr_unevictable() +
                              hugePages + reservedPages;
   unsigned int anonPages = get_nr_anon_mapped(); 
--- END REPLACE ---

③以下のコマンドを実行

端末
cd ../..
tar cf vmmon.tar vmmon-only
rm -rf vmmon-only 

④追加したパッチを適応するためにもう一度構築する

端末
sudo vmware-modconfig --console --install-all

これで以上になります。

さあ起動しよう②

エラーでないようにググってそれを実行しただけ修正をしたので早速実行してみましょう!
Screenshot from 2018-03-08 09-27-50.png
なんで(ry

調べてみました

これを行うことは自己責任でお願いします。

ドライバをインストールするときにセキュアブートがONだと邪魔するみたいです。
なのでBIOSからセキュアブートをOFFにして上記のことをもう一回やりました。
参照はこちらから

さあ起動しよう③

これで動かなかったらもうVMwareやめます。
Screenshot from 2018-03-09 17-21-31.png
動きました!!!
日頃の行いが良かったからできました(心当たりなし)

最後に

なにか質問があったらTwitterまでお願いします。
仮想マシンの使い道とかは聞かないでください。

補足説明

*1、ここの説明ではrootディレクトリにおきましたが、以下の方法でも可能です
①実行権限を与える。

端末
$ sudo chmod +x VMware-Player-14.0.0-6661328.x86_64.bundle

②インストーラを起動する

端末
$ sudo ./VMware-Player-14.0.0-6661328.x86_64.bundle

これでインストールできます。
参照はこちらから

*2、これが正解かどうかはわかりませんが、少なくともセキュアブート関連が関係ない人は治ったみたいです。

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