2013年11月5日火曜日

OS X (Mavericks)の完全バックアップが作成できない場合

先日、Mavericksにバージョンアップを行ったあと、pkgsrcで導入しているツールの再構築などを実施しており、万一に備えバックアップからの復元が可能か確認してみたところ、大問題が...


  1. Time Machineからの復元が可能かを確認するため、システムを終了する。
  2. 電源ボタンを押下し、電源を投入。
  3. 起動音が鳴るまで、[command] + [R]キーを押下し続ける。
  4. 「バックアップからシステムを復元」を選択 (詳細手順失念)。
  5. NAS (Time Machineのバックアップ先) を選択。
  6. "OS Xシステムのバックアップが見つかりません。"と表示されるって、おい!!


日々のバックアップ (もちろんTime Machineを利用) は、正常に終了しており、バックアップがないはずがないじゃないか....

と言うことで、作業を中止し、通常起動する。

「Time Machineに入る」を選んで、過去のバックアップをブラウズすると...
/Usersしか取れてないじゃん ;'(


こんな目に遭遇した方は、以下の手順で、「完全バックアップ」を取得しておきましょう。


1) /Library/Preferences/com.apple.TimeMachine.plist の設定を確認する。

Time Machine の設定は、上記のファイルに保存されている。
Binary形式なので、次のコマンドを実行し、内容を確認(Xcodeが導入されていることが前提ですが...)。

  % sudo open /Library/Preferences/com.apple.TimeMachine.plist


"ExcludeByPath"に以下のディレクトリ(以降、「システム関連ディレクトリ」とします)が定義されている場合は、「完全バックアップ」の作成ができません。


  • /Applications
  • /Library
  • /System
  • /bin
  • /private
  • /sbin
  • /usr


2) システム関連ディレクトリを、"ExcludeByPath"から削除。

一部のブログなどでは、「com.apple.TimeMachine.plistを削除する」と言う記述がありますが、小生の環境では、削除しても元の設定が復元されてしまいました。
と言うことで、以下のコマンドを実行。

  % for i in /Applications /Library /System /bin /private /sbin /usr
  for> do
  for>     sudo tmutil removeexclusion -p $i
  for> done


3) バックアップ開始コマンドを実行。

  % tmutil startbackup


後はひたすら、バックアップ完了まで待ちましょう。

2013年8月4日日曜日

備忘録:ESXiのコマンド操作

気がつけば、自宅に検証用として以下の環境が出来上がって(単に購入したとも)いました。

 物理ホスト:Fujitsu PRIMERGY TX100 S3
       Intel Xeon E3-1230v/8GBメモリ/500GB HDD x 2
 Hypervisor  :ESXi 5.1

と言うことで、早速現在参画中のプロジェクトの検証環境として、CentOS 6.4 を導入して、リモートから接続できる環境を立ち上げています。
利用方法は、以下の通り。


  1. 宅内サーバに接続し、Wake on LANで物理ホストの電源を投入
  2. ESXiに乗り込み(SSH接続)、ゲストOSを起動
  3. ゲストOSにSSH接続し、作業を実施
  4. ゲストOSの停止
  5. ESXiを停止

少しばかり手順は多くなりますが、常時稼働には適さない環境ですので、仕方ないかと思ってます。


と言うことで、本日の本題。
ESXiでゲスト環境をコマンドで操作する際の備忘録です。

まずは、サブコマンドの一覧などを。

第一階層は、こんな感じです。


  # vim-cmd 
  Commands available under /:
  hbrsvc/       internalsvc/  solo/         vmsvc/        
  hostsvc/      proxysvc/     vimsvc/       help

ゲストOSを操作するサブコマンドは、こんな感じ。


  # vim-cmd vmsvc/
  Commands available under vmsvc/:
  acquiremksticket                 get.snapshotinfo                 
  acquireticket                    get.spaceNeededForConsolidation  
  connect                          get.summary                      
  convert.toTemplate               get.tasklist                     
  convert.toVm                     getallvms                        
  createdummyvm                    gethostconstraints               
  destroy                          login                            
  device.connection                logout                           
  device.connusbdev                message                          
  device.disconnusbdev             power.getstate                   
  device.diskadd                   power.hibernate                  
  device.diskaddexisting           power.off                        
  device.diskremove                power.on                         
  device.getdevices                power.reboot                     
  device.toolsSyncSet              power.reset                      
  device.vmiadd                    power.shutdown                   
  device.vmiremove                 power.suspend                    
  devices.createnic                power.suspendResume              
  disconnect                       queryftcompat                    
  get.capability                   reload                           
  get.config                       setscreenres                     
  get.config.cpuidmask             snapshot.create                  
  get.configoption                 snapshot.dumpoption              
  get.datastores                   snapshot.get                     
  get.disabledmethods              snapshot.remove                  
  get.environment                  snapshot.removeall               
  get.filelayout                   snapshot.revert                  
  get.filelayoutex                 snapshot.setoption               
  get.guest                        tools.cancelinstall              
  get.guestheartbeatStatus         tools.install                    
  get.managedentitystatus          tools.upgrade                    
  get.networks                     unregister                       
  get.runtime                      upgrade


現状の利用方法では、取り敢えずゲストOSの起動ができればよいので、以下のコマンドを覚えておけばよいかな。

 1. ゲストの一覧確認

  # vim-cmd vmsvc/getallvms
  Vmid  Name                File                 Guest OS     Version   Annotation
  1     CentOS6 [datastor1] CentOS6/CentOS6.vmx  centos64Guest  vmx-08

 2. 対象ゲストの電源状態確認

  # vim-cmd vmsvc/power.getstat 1
  Retrieved runtime info
  Powered off

 3. 対象ゲストの電源投入


  # vim-cmd vmsvc/power.on 1
  Powering on VM:


あと、スナップショットの操作や、新規ゲストの作成、ゲスト環境の変更なんかを覚えておけば、vSphere Clientのお世話になることなく操作ができるのかな。
そのあたりは、またの機会に。



2013年4月3日水曜日

Solarisカルチャーショックのお話 - パスワード設定編


Oracle Solaris 10 の 8/11リリースより、pam.confの
定義が変更となっています。

rootアカウントでも、パスワードポリシーのチェックが
強制されるため、初期パスワードとしてアカウント名と
同じものを設定する際に、注意が必要です。


pam.conf 設定変更箇所

 other  password requisite      pam_authtok_check.so.1 force_check
                                                       ^^^^^^^^^^^

rootアカウントでのポリシーチェックを回避する場合は、
"force_check"を削除する必要があります。


ちなみに、アカウント名をパスワードに指定した場合は、
以下のエラーメッセージが表示されます。

「パスワードには、ログイン ID の文字を循環的に移動
 させたものは使用できません。」

これは、"pam_authtok_check.so.1"でチェックしている
以下のポリシーに抵触するためです。

 circular shift

これを回避するには、/etc/default/passwdファイルにて、
"NAMECHECK=NO"を定義する必要があります。