ご注意下さい
この記事は3年以上前に書かれた記事ですので、内容が古い可能性があります。
ESXiでは起動する度に設定が消えてしまうために/etc/rc.local.d/local.shを編集する必要があるのはよく知られています。
当ブログでもlocal.shを編集して、USB NICを起動時に認識させたり、バックアップの設定を入れています。
-
ESXi7.0でブート時にUSB NICが外れてしまう
ESXiを使う上でNICは重要なパーツです。USB NICは手軽な上に価格も良心的で是非みなさんにも利用してもらいたいNICですが、ESXi 7.0 …続きを見る
-
ESXi 7.0でバックアップを自動取得する
ESXi7.0でバックアップを取得する方法について解説します。バックアップツールGhettoVCBでバックアップを取得します。続きを見る
ところが、local.shを編集しても再起動すると微妙に戻ってしまう事象が発生しました。微妙に戻ってしまう、というのは上記で設定したものは反映されているのですが新たに編集したものが再起動すると消えてしまう、という事象です。
いろいろと調べてみると/vmfs/volumes/BOOTBANK1/state.tgzに設定が入っている、という記述を発見。
/vmfs/volumes/BOOTBANK1/state.tgzを/tmpにコピーして解凍してみてみると、古いの(起動すると戻ってしまったファイル)が入っていました。state.tgzが更新されていないのが原因ということがわかりました。
さらに上記記事を読んでみると、state.tgzは1時間に一度実行される/sbin/auto-backup.shか、シャットダウン時に実行される/sbin/backup.sh 1というコマンドが実行しているとのこと。
さっそく実行してみたところ、
[root@esxi:~] /sbin/auto-backup.sh [root@esxi:~] echo $? 1 [root@esxi:~] sh -x /sbin/auto-backup.sh + export 'PATH=/bin:/sbin' + main + local 'files_to_save=' + '[' '!' -d /bootbank ] + esxcfg-init --alert 'Bootbank cannot be found at path '"'"'/bootbank'"'" + exit 1 [root@esxi:~] [root@esxi:~] /sbin/backup.sh 1 Bootbank cannot be found at path '/bootbank' [root@esxi:~]
上記のように/bootbankが見つからない、ということでエラーになっていることが分かりました。
以前に一度電源ボタン長押しで強制的にvSphereを落としたことが原因かもしれません。
ということで/bootbankを作ればいいんだな、ということで以下のサイトを参考にシンボリックリンクを張ることにします。
私の環境では以下の通りです。
[root@esxi:~] df -h Filesystem Size Used Available Use% Mounted on VMFS-6 1.9T 633.2G 1.2T 33% /vmfs/volumes/NVMe1 VMFS-6 1.8T 1.6T 234.3G 87% /vmfs/volumes/SSD1 VMFS-6 232.8G 1.5G 231.3G 1% /vmfs/volumes/SSD2 VMFS-6 5.5T 2.9T 2.5T 54% /vmfs/volumes/HDD vfat 4.0G 163.4M 3.8G 4% /vmfs/volumes/BOOTBANK2 vfat 4.0G 163.4M 3.8G 4% /vmfs/volumes/BOOTBANK1 [root@esxi:~]
BOOTBANK0ではなく、BOOTBANK1となっているのが気になるところですが、
/bootbank --> /vmfs/volumes/BOOTBANK1
/bootbank --> /vmfs/volumes/BOOTBANK2
でシンボリックリンクを張ることにします。実際にはBOOTBANK1とか2ではなくUUIDで表現しないといけないので注意してください。私の環境では以下の通りです。
[root@esxi:~] cd / [root@esxi:~] /bin/ln -s /vmfs/volumes/d9efd23c-994ee412-67a0-458e9eeb894e /bootbank [root@esxi:~] /bin/ln -s /vmfs/volumes/aff72174-644a1011-7aa5-8a9020897378 /altbootbank
これでESXiを再起動しましょう(シャットダウンプロセスの中で/sbin/backup.sh 1 が実行されてlocal.shは保存されるはずです)。
再起動したらrootディレクトリのシンボリックリンクが消えていました。仕方がない…。ということでlocal.shにこちらも書くことにします。
#!/bin/sh
# local configuration options
# Note: modify at your own risk! If you do/use anything in this
# script that is not part of a stable API (relying on files to be in
# specific places, specific tools, specific output, etc) there is a
# possibility you will end up with a broken system after patching or
# upgrading. Changes are not supported unless under direction of
# VMware support.
# Note: This script will not be run when UEFI secure boot is enabled.
esxcfg-vswitch -L vusb0 vSwitch0
esxcfg-vswitch -M vusb0 -p "Management Network" vSwitch0
esxcfg-vswitch -M vusb0 -p "Home Network" vSwitch0
esxcfg-vswitch -M vusb0 -p "External Network" vSwitch0
esxcfg-vswitch -L vmnic0 vSwitch0
esxcfg-vswitch -M vmnic0 -p "Management Network" vSwitch0
esxcfg-vswitch -M vmnic0 -p "Home Network" vSwitch0
esxcfg-vswitch -M vmnic0 -p "External Network" vSwitch0
esxcfg-vswitch -L vmnic1 vSwitch0
esxcfg-vswitch -M vmnic1 -p "Management Network" vSwitch0
esxcfg-vswitch -M vmnic1 -p "Home Network" vSwitch0
esxcfg-vswitch -M vmnic1 -p "External Network" vSwitch0
cat<<_EOT_>>/var/spool/cron/crontabs/root
0 4 10,20 * * /vmfs/volumes/HDD/backup/ghettoVCB-master/ghettoVCB.sh \
-f /vmfs/volumes/HDD/backup/ghettoVCB-master/backuplist.txt
0 4 15,25 * * /vmfs/volumes/HDD/backup/ghettoVCB-master/ghettoVCB_shutdown.sh \
-f /vmfs/volumes/HDD/backup/ghettoVCB-master/backuplist_shutdown.txt
_EOT_
/bin/kill $(cat /var/run/crond.pid)
/bin/crond
/bin/ln -s /vmfs/volumes/d9efd23c-994ee412-67a0-458e9eeb894e /bootbank
/bin/ln -s /vmfs/volumes/aff72174-644a1011-7aa5-8a9020897378 /altbootbank
exit 0
この状態で/sbin/auto-backup.shを実行してみると
[root@esxi:/etc/rc.local.d] vi local.sh [root@esxi:/etc/rc.local.d] [root@esxi:/etc/rc.local.d] [root@esxi:/etc/rc.local.d] auto-backup.sh --- /etc/rc.local.d/local.sh +++ /tmp/auto-backup.1052513//etc/rc.local.d/local.sh @@ -36,7 +36,4 @@ /bin/kill $(cat /var/run/crond.pid) /bin/crond -/bin/ln -s /vmfs/volumes/d9efd23c-994ee412-67a0-458e9eeb894e /bootbank -/bin/ln -s /vmfs/volumes/aff72174-644a1011-7aa5-8a9020897378 /altbootbank - exit 0 Saving current state in /bootbank Clock updated. Time: 07:48:45 Date: 10/25/2020 UTC [root@esxi:/etc/rc.local.d]
これで反映できました。
なんだか釈然としませんが、一旦回避できた、ということで…。
記事は以上!