lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

VMware Workstation Playerで仮想マシンにVMware toolsをインストール

概要

先日の続きで、VMware toolsをインストールします。
VPSを触っていたときにはmountとか使わなかったので
会社で教えてもらわなければきっと理解できなかったでしょう。

VMware toolsのインストールはどうでもよくてmount/umountの備忘録です。

OSインストール直後からスタートです。

環境

前提知識

  • 会社でVMware Playerを使っている。

※自分でセットアップ等はしたことがない。すでに用意されているもの

  • 高校生の時にさくらVPS使ってDebianで色々していた

CLIにアレルギー反応が出ない

仮想マシンのネットワーク接続確認

ifconfigが使えないのでip addr showで確認します。
さあTeraTermで接続だ。

 [root@localhost ~]# ip addr show
...中略
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff
    inet 192.168.XXX.XXX/24 brd 192.168.XXX.XXX scope global dynamic eth0
       valid_lft 1459sec preferred_lft 1459sec
    inet6 XXXX::XXXX:XXXX:XXXX:XXXX/64 scope link
       valid_lft forever preferred_lft forever

パッケージアップデートの実行

VMware toolsをインストールする前にインストール済みのいろいろをアップデートします。

[root@localhost ~]# yum check-update
...中略
[root@localhost ~]# yum -y update
...中略
完了しました!

TeraTermの出力では日本語で完了と出ました。VMware上での操作ではこの限りではないかもしれません

詳しい人は一括でアップデートかけたりしないのかな?
細かいことは気にしません。練習なんですから...

VMware toolsの入手

VMware toolsはどこからかDLしてくるとかではなくVMware Workstation Playerから
ディスクドライブにCD/ROMを挿入する感覚です。

上メニューPlayer → 管理 →VMware toolsのインストールを選択
こで仮想マシンのディスクドライブにCD/ROMが挿入されました。
USBメモリが接続されたのほうが正しい?

f:id:HM_Atlas:20180208225845p:plain

CD/ROMやUSBメモリ、HDDなどのPCデバイス/dev配下に
スクリプト?デバイス本体?を持っています。
※すいません。ここよくわかってません。

先程の操作で挿入されたCD/ROMは/dev/sr0にあるのでマウントします。

一応と言うか自分もよくわかってないのに説明もクソもないですが
cdromと言うグループに所属していることになっています。
つまりこいつはディスクドライブだ!(無理やり)

[root@localhost ~]# ls -la /dev/sr0
brw-rw----. 1 root cdrom 11, 0  28 23:01 /dev/sr0

mountをかけてVMware toolsを取り出す。

/dev/sr0がCD/ROMという事がわかったのでマウント掛けます。
/mntにマウントしていますが普通に良くない(?)ので配下に作業ディレクトリでも用意してそこにマウントしてください

dfコマンドでマウントされてういることを確認してください
/dev/sr0/mntにマウントされてると表示されていますね

mountコマンドが成功していればマウント先である/mntVMwareTools-10.2.0-7259539.tar.gzが存在しているはずです。

[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
/dev/mapper/centos-root    17G  1.2G   16G    7% /
devtmpfs                  478M     0  478M    0% /dev
tmpfs                     489M     0  489M    0% /dev/shm
tmpfs                     489M  6.8M  482M    2% /run
tmpfs                     489M     0  489M    0% /sys/fs/cgroup
/dev/sda1                1014M  153M  862M   16% /boot
tmpfs                      98M     0   98M    0% /run/user/0
/dev/sr0                   56M   56M     0  100% /mnt
[root@localhost ~]# ls -l /mnt/
合計 56201
-r--r--r--. 1 root root 55734807 1130 19:08 VMwareTools-10.2.0-7259539.tar.gz
-r-xr-xr-x. 1 root root     1975 1130 19:08 manifest.txt
-r-xr-xr-x. 1 root root     4393 1130 19:03 run_upgrader.sh
-r-xr-xr-x. 1 root root   880268 1130 19:05 vmware-tools-upgrader-32
-r-xr-xr-x. 1 root root   926440 1130 19:05 vmware-tools-upgrader-64

コピー後、umount

VMwareTools-10.2.0-7259539.tar.gzを任意のディレクトリにコピー後、umount(アンマウント)をかけます。
マウント状態だとガッチリ掴んで離さない状態なのでアンマウントで外します。

mount,umountについては下の「mountって何よ?」に解説サイトのリンクがあります。

[root@localhost ~]# cp /mnt/VMwareTools-10.2.0-7259539.tar.gz /root/
[root@localhost ~]# umount /dev/sr0
[root@localhost ~]# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
...中略(/dev/sr0がないことを確認してください)
[root@localhost ~]# ls -l /mnt/
合計 0
[root@localhost ~]# ls -l /root/
合計 54436
-r--r--r--. 1 root root 55734807  28 23:36 VMwareTools-10.2.0-7259539.tar.gz

mountって何よ?

すみません。自分も会社で教えてもらうまで知りませんでした。

mountとは

登る、乗る、またがる、乗せる、(…に)据えつける、装置する、(…に)はる、(…に)はめる、固定する、開催する
mountの意味・使い方・読み方 | Weblio英和辞書

なんか、こう言葉だけで大体想像付きました?
本当にざっくり、ざっくりだけ言うと「デバイス(記憶装置?)からデータとかを取り出せるようにする。」くらいの勢いでいいのではないだろうか。
※HDDの拡張をしているときはPCに装着すると言う感覚のほうがしっくり来たけども

早い話こっちを読んだほうが良い
eng-entrance.com

VMware toolsのインストール

コピーしたVMware toolsを展開します。

[root@localhost ~]# tar zxvf VMwareTools-10.2.0-7259539.tar.gz
[root@localhost ~]# ls -l
合計 54436
-r--r--r--. 1 root root 55734807  28 23:36 VMwareTools-10.2.0-7259539.tar.gz
-rw-------. 1 root root     1238  28 21:47 anaconda-ks.cfg
drwxr-xr-x. 9 root root      145 1130 19:08 vmware-tools-distrib
[root@localhost ~]# cd vmware-tools-distrib/
[root@localhost vmware-tools-distrib]# ls -l
合計 372
(...中略)
-rwxr-xr-x.  1 root root 221099 1130 19:08 vmware-install.pl

展開後、展開してできたディレクトリに移動します。
vmware-install.plを実行します。
インストールに関しては下記の解説記事が詳しく分かりやすかったです。
このブログ記事下部にもトラブルシュートを載せていますがリンク先の記事でも解説されています。
urashita.com

インストールの実行

※トラブルシュートを実施してから実行するとスムーズにことが運ぶかと思います。

[root@localhost ~]# ./vmware-tools-distrib/vmware-install.pl

また、-dのオプションをつけることでインストール中のエンター連打作業がなくなります。
つけない場合はエンターを押しまくりましょう。

完了ログ

Enjoy,
--the VMware team

上記のログで特段エラーも吐いていなければOKだと思われます。

動作確認

先程の記事をパクッ参考にサービスが起動しているか確認します。

[root@localhost ~]# systemctl | grep vmware-tools.service
  vmware-tools.service                                                                loaded active running   SYSV: Manages the services needed to run VMware software

runningとなっているので大丈夫そうですね。
以上で終了です。

トラブルシュート

vmware-install.plが実行できない

事象

インストールを実行すると下記のエラーが出る。

[root@localhost vmware-tools-distrib]# ./vmware-install.pl
-bash: ./vmware-install.pl: /usr/bin/perl: 誤ったインタプリタです: そのようなフ ァイルやディレクトリはありません

TeraTermでは日本語で表示されています。

解決策

/user/bin/perlが無いですよと言っています。
perlをインストールしてあげましょう

[root@localhost ~]# yum provides perl
(...中略)
4:perl-5.16.3-292.el7.x86_64 : Practical Extraction and Report Language
リポジトリー        : base
[root@localhost ~]# yum -y install perl
(...中略)
完了しました!

yum searchで検索をかけてもいいんですが大量に引っかかってよくわかりません
なのでperlがどのパッケージに含まれているかを検索します。それがprovidesです。

yum searchコマンドとyum providesコマンドについてはこちらがわかりやすいです。
kazmax.zpp.jp

インストールが進むとループして進まなくなる(GCC編)

事象

ある程度インストールが進むと下記の質問が発生しこれまで通りエンター連打をしてもループしてインストールが進まないと言う沼にハマってしまいます。

[root@localhost vmware-tools-distrib]# ./vmware-install.pl
(...中略)
Searching for GCC...
The path "" is not valid path to the gcc binary.
Would you like to change it? [yes]
INPUT: [yes]  default
What is the location of the gcc program on your machine?
INPUT: []  default

The path "" is not valid path to the gcc binary.
Would you like to change it? [yes]
INPUT: [yes]  default
What is the location of the gcc program on your machine?
INPUT: []  default
(...以下ループ)
解決策

gccどこにあるの?と聞いています。無いようなのでインストールしてあげましょう。

[root@localhost ~]# yum provides gcc
(...中略)
gcc-4.8.5-16.el7.x86_64 : Various compilers (C, C++, Objective-C, Java, ...)
リポジトリー        : base
gcc-4.8.5-16.el7_4.1.x86_64 : Various compilers (C, C++, Objective-C, Java, ...)
リポジトリー        : updates
[root@localhost ~]# yum -y install gcc-4.8.5-16.el7.x86_64
(...中略)
エラー:  Multilib version problems found. This often means that the root
(...中略)
        Protected multilib versions: libgomp-4.8.5-16.el7.i686 != libgomp-4.8.5-16.el7_4.1.x86_64

最初に、リポジトリのベースを入れてからアップデートかければいいのかな?と思い
ベースをインストールしたらエラーでコケました。
なので最新のパッケージをインストールしましょう。

[root@localhost ~]# yum -y install gcc-4.8.5-16.el7_4.1.x86_64
(...中略)
インストール:
  gcc.x86_64 0:4.8.5-16.el7_4.1

依存性関連をインストールしました:
  cpp.x86_64 0:4.8.5-16.el7_4.1
  glibc-devel.x86_64 0:2.17-196.el7_4.2
  glibc-headers.x86_64 0:2.17-196.el7_4.2
  kernel-headers.x86_64 0:3.10.0-693.17.1.el7
  libmpc.x86_64 0:1.0.1-3.el7
  mpfr.x86_64 0:3.1.1-4.el7

完了しました!

これでgccが入りました。

インストールが進むとループして進まなくなる(kernel編)

事象

GCC編とほぼ同様です。kernel headerと言うやつで困っているようです。
最初は、最新or未インストールかと思ったのですが、調べるとVMware toolsとのバージョン違いで起きる事象みたいです。

今回、自分の環境では再現されなかったのでログなしです。

解決策

kernel-headerのインストール(アップデート?)の実行
事象が再現できていないので割愛

たぶんですがgccのパッケージのインストール時に依存性関連で一緒にインストールされたからエラーが出なかったのではないかな?と思ったりしています。

参考サイト様

記事途中で紹介したサイト様

雑感

ブログ書くだけでなぜこんなに時間がかかっているのか...
再現しながら書いてるからなんですけどね。

金曜からまた上京するので記事をためておきたかったのだけど仕方がない。