ESXi

local.shを編集したのに反映されない(Bootbank cannot be found at path '/bootbank')

0
(0)

ESXiでは起動する度に設定が消えてしまうために/etc/rc.local.d/local.shを編集する必要があるのはよく知られています。

当ブログでもlocal.shを編集して、USB NICを起動時に認識させたり、バックアップの設定を入れています。

ESXi
ESXi7.0でブート時にUSB NICが外れてしまう
ESXiを使う上でNICは重要なパーツです。USB NICは手軽な上に価格も良心的で是非みなさんにも利用してもらいたいNICですが、ESXi 7.0 …

続きを見る

ESXi
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が見つからない、ということでエラーになっていることが分かりました。

確かに/bootbankがない

以前に一度電源ボタン長押しで強制的にvSphereを落としたことが原因かもしれません。

ということで/bootbankを作ればいいんだな、ということで以下のサイトを参考にシンボリックリンクを張ることにします。

vSphere 7 - ESXi System Storage Changes - VMware vSphere Blog
The ESXi system storage partition layout in vSphere 7 changed. The boot bank sizes increased, and we consolidated the system partitions.
vSphere 7 - ESXi System Storage Changes - VMware vSphere Blog

/bootbank --> /vmfs/volumes/BOOTBANK1 /altbootbank --> /vmfs/volumes/BOOTBANK2

私の環境では以下の通りです。

[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] 

これで反映できました。

なんだか釈然としませんが、一旦回避できた、ということで…。

記事は以上!

この記事は役に立ちましたか? | Is this article useful for you?

評価をお願いします | Please leave your rating.

平均 | Av.: 0 / 5. 投票数 | Votes: 0

最初の評価を下さい | Please vote for the first rating.

-ESXi
-, , , ,

© 1999 - 2020 蒲田ネット