hrt10の日記

色々な設定のメモやら何やら

macOS での時刻同期に失敗する場合

しばらく止めていたマシンとか、mac の標準の時刻同期で時刻が合わないことがある。時間をおけば合うかもしれないが、手動で時刻合わせてから再度同期モードに戻しても、誤った時刻にもどってしまう(特に時刻のずれが大きい場合ではないかと思われる)。こういう場合にはターミナルで sntp コマンドで強制的に合わせれば良い。

% sntp -S <ntpサーバの名前/アドレス>

-S (大文字のS)が重要で、これを付ければ offset が大きくても強制的に合わせてくれる。

ovftool による仮想マシンの操作

ovftool を使って ESXi から ova でイメージ抜き取る方法

  • ovftool --noImageFiles --noSSLVerify vi://username:pass@esxi-host/VMname ova_filename.ova
  • ovftool --noImageFiles --noSSLVerify vi://username@esxi-host/VMname ova_filename.ova

パスワードをコマンドラインに書きたくなければ後者の表記で(パスワードプロンプトが出る)。ユーザ名も書きたくなければ @ の前を削れば良い(認証プロンプトが出る)。ESXi から持ってくるときには URL の scheme を vi にする(他も色々と変換できるらしい)。保存先の拡張子が .ova なら OVA で保存され、.ovf なら OVF で保存されるので適当に。10G I/F のマシン間だと 1G の ova 抜くのに2分弱って感じかな(適当)

 

ovftool を使って ESXi に ova をインポートする方法

  • ovftool --noSSLVerify --datastore=datastore_name --diskMode=(thin|zeroedThick|eagerZerodThick) --name=VMName ova_filename.ova  vi://username:pass@esxi-host/
  • ovftool --noSSLVerify --datastore=datastore_name --diskMode=(thin|zeroedThick|eagerZerodThick) --name=VMName  ova_filename.ova   vi://username@esxi-host/
  • ovftool --noSSLVerify -ds=datastore_name -dm=thin -n=VMName ova_filename.ova vi://username@esxi-host/

VMware ESXi での vmdk の復旧+α

VMware ESXi で vmdk の異常で起動できないとき

  • Web UI から ssh サーバを起動
  • ssh で特権のあるアカウントにアクセス
  • vmkfstools -x check /vmfs/volumes/datastore名/VM名/XXXX.vmdk 

    • 多分、"Disk needs repair"とか出る
  • vmkfstools -x repair /vmfs/volumes/datastore名/VM名/XXXX.vmdk
    • 上手く行けば "Disk was successfully repaired." とか

 

ESXi 6.5 とかでの Windows 10 SVGAドライバ

  • なんか透明になったり fliker 出たり
    • hwVersion が古いと出るらしい
  • .vmx ファイル中で mks.enable3d = "FALSE"  として 3D 落とすと直るらしい
    • まだ設定して確認中

sparse image での storage 保存

実験環境とかのストレージをイメージごと保存しておくときの作業用メモ

  1. 元ストレージの partition 情報の確認
    • lsblk -S
      lsblk
    • parted <デバイスファイル名>
      parted> unit s
      parted> print
      • ex)  parted /dev/sdc  とか (コピー元が sdc の場合) 
      • セクタサイズ(普通は 512B) とストレージと各 partition の大きさを確認
  2. 保存先に sparse image のファイルを作成
    • dd if=/dev/zero of=イメージファイル名 bs=512 seek=セクタ数 count=0
      • bs=512 はセクタサイズ↑のセクタサイズ(まぁ、普通512)
      • セクタ数は容量的に足りれば良いけど、どーせ sparse image なので元のストレージの総セクタ数かそれより大きくしときゃ良い
      • dd if=/dev/zeor of=node00.img bs=512 seek=536871000 count=0 で256GB くらいの node00.img というイメージファイルができる
      • ls -l node00.img と du -sh node00.img を見比べるとちゃんと spase になっているかどうか確認できる
  3. sparse image file を loopback device に紐付け
    • losetup -l
      • 使っていない loopback device を確認(次で -f で探させるなら跳ばしても良い)
    • losetup /dev/loopXX イメージファイル名
        または
      losetup -f イメージファイル名
      • losetup -l でデバイスとsparse image ファイルの対応を確認
      • これで /dev/loopXX がストレージの block device に見える
  4. ストレージの中身を全てコピー(使って無い…過去に一回使った…blockもコピー)
    • dd if=元のデバイス of=/dev/looopXX bs=512 conv=sparse  とか
      dd if=元のデバイス bs=512 | ssh コピー先ホスト 'dd of=/dev/loopXX bs=512 conv=sparse  とか
      ssh コピー元ホスト 'dd if=元のデバイス bs=512' | dd of='/dev/loopXX bs=512 conv=sparse'
      • ex) dd if=/dev/sdc of=/dev/loop10 bs=512 conv=sparse
      • ストレージ引っこ抜ければローカルコピーできるし、ダメなら ssh 越しとかですな
      • block レベルでまるごとコピーするので、基本的には partition table とかも移るはず。逆にコピー先の大きさは元ストレージと同じか大きく
      • この場合、dirty block が全て sparse image 中に block として復元されるので、df とかで見たファイルシステムの使用量より保存イメージの実際の大きさはかなり大きくなる(ので、5 の方法の方が普通は良い)
  5. ストレージの使っている部分をコピー(普通はこっち)
    • dd if=元のデバイス of=/dev/loopXX bs=512 count=パーティション1の開始オフセット
      • 一応、冒頭の(boot loader とか入っている?ところ)をコピー
      • 別に要らないなら(後から必要なら入れるなら)これは跳ばして良い
    • parted /dev/loopXX
      parted> unit s
      parted> mklabel gpt
      parted> mkpart  ... 
    • ls /dev/loopXX*   とかして、パーティションのデバイスができているか確認する。できてなければ losetup -d /dev/loopXX; losetup -P /dev/loopXX イメージファイル名 で再紐付け
    • block レベルで移して良いパーティションは 4 の手順で dd でコピーする。但し、デバイス名をパーティション番号付きのにすること。データだけ移したいパーティションは次の dump/restore で複製
      • ex) dd if=/dev/sdc1 of=/dev/loop10p1 bs=512
      • sparse mode にするかどうかは、パーティションの使用率とかみて好みで
    • mkfs.ext4 /dev/loopXpY  でファイルシステム作成
      • ex) mkfs.ext4 /dev/loop10p2
    • mount /dev/loopXpY 適当なディレクト
    • dump -0 -f - 元のパーティションのデバイス | (cd マウント先; restore -r -f -)
      • 必要に応じて ssh とかで転送してもよし(4 参照)

Linux (Ubuntu) でのストレージ追加手順 (lvm を使ってる場合)

LVMでストレージ管理しているマシンへのストレージ追加。LVに追加して size up するとかではなくて、単に別 partition として追加する場合。

  • SSD/HDD 追加したらデバイス状況の確認
    • lsblk -S

  • disk label を作る (以下、デバイスが sdc で全部を一つのPVにするとき)
    • parted /dev/sdc
    • (parted) mklabel gpt
    • (parted) mkpart
      • Partition name とか File sytem type はそのまま enter
      • Start? で 0%、End? で 100%
    • (parted) set 1 lvm on
    • (parted) quit
  • PV (Physical Volume) を作る
  • VG (Volume Group) を作る(今回は既存のに加えたりせずに別に作る)
    • vgcreate vg_name /dev/sdc1
      • vg_name のところは適当な名前
      • PV の名前は使うものを指定(今回は直前に作った /dev/sdc1)
    • vgdisplay
      • できた VG を確認
  • LV (Logical Volume) を作る(今回は VG 全部で一つの LV を作る)
    • lvcreate -n lv_name -l 100%FREE vg_name
      • -l 100%FREE とすると空き領域全部を使ってくれる
    • lvdisplay
      • できた LV を確認
  • ファイルシステムを作る(今回は全部を使ってext4
    • mkfs -t ext4 /dev/vg_name/lv_name
      • VG や LV は作ったものの名前を指定
    • tune2fs -l /dev/vg_name/lv_name
  • あとは適当に mount するとか fstab に書くとか

ストレージ関係のパラメータ確認コマンド

  • blockdev  --getalignoff  /dev/sdc1
    • アライメントオフセットの確認
    • 0 ならオッケ
  • hdparm -I  /dev/sdc  (オプションは大文字のi )
    • ストレージの機能の確認
    • SSD だと TRIM の確認をするなど
    •  

ATOKイミクルを止める

ATOK に「ATOKイミクル」ってのが入ってて、Keyboard shortcut を外してもたまにウィンドウが上がってくる。

何かと思ったら、どうも常駐して hot key (default は Ctrl 2回) に反応しているらしい(下記 URL は Windows だけど同様)

外すには…

  • 常駐しているなら hot key (default は Ctrl) を 2 回叩く。ウィンドウが出ないなら、ATOK のメニューから「ATOKイミクル」を選ぶ
  • 右上の★と棒三本のメニューを開いて、設定 (歯車マーク) を開く
  • ATOKイミクルを常駐する」のチェックを外す

とする(再度戻すときは常駐させりゃぁ…)

 

ATOKのイミクルを消したい : じいじの備忘録