VMware ESXi 4.0に設定したパスワードをリセットする方法

ここに書いてある ESXi 3 用の方法が使えます。
http://www.vm-help.com/esx/esx3i/Reset_root_password.php

一応手順

  1. 何らかの Live CD を使って起動する。僕は CentOS LiveCD を使いました
  2. ディスクのパーティションが /mnt/disc 以下に自動でマウントされていたら state.tgz を探す
    • されていなかったらディスクらしきものを /dev から探してマウント
  3. リードオンリーでマウントされているので再度マウント
  4. state.tgz を /tmp 以下にコピーして展開すると local.tgz が出るのでまた展開
  5. すると etc ディレクトリが出てくるのでその中の shadow ファイルを vi で開く
  6. root の行の 暗号化されている部分を削って保存
  7. etc ディレクトリを local.tgz に圧縮、また local.tgz を state.tgz に圧縮
  8. マウント元の state.tgz に上書きコピーする
  9. reboot
  10. 幸福実現

コマンドで書くと

ls /mnt/disc/sda*
umount /mnt/disc/sda5
mount /dev/sda5 /mnt/disc/sda5
cd /tmp
cp /mnt/disc/sda5/state.tgz .
tar zxf state.tgz
tar zxf local.tgz

vi etc/shadow
#============
root:$1$pDGdG0GW$gi6sUoOa1JMC7zMFQcin2.:14708:0:99999:7:::
     ↓
root::14708:0:99999:7:::
#============

tar cxf local.tgz etc
tar cxf state.tgz local.tgz
cp state.tgz /mnt/disc/sda5/
reboot

Google Chrome DevにExtensionを入れた時のメモ(Chrome Keyconfig等)

AutoPatchWork

URL: http://ss-o.net/chrome_extension/#AutoPatchWork
インストールしたバージョン: 0.20.1

Chrome Keyconfig

URL: http://ss-o.net/chrome_extension/#ChromeKeyconfig
インストールしたバージョン: 1.5.5

行った設定

Advancedタブのテキストエリアに以下のファイルの文字列をペーストしてImport。
http://github.com/tester7/dotFiles/raw/master/chrome/ChromeKeyconfig
vimperatorっぽい?ショートカットキー設定です(自分好みに変えている部分があります)。

Gmail Checker

URL: http://www.chromeextensions.org/alerts-updates/gmail-checker/
インストールしたバージョン: 1.9

行った設定

Google Appsで使うには、Custom Google Apps Domain項目に対して以下のように入力。

https://mail.google.com/a/example.com/

RSS Subscription Extension

URL: http://code.google.com/chrome/extensions/samples.html
インストールしたバージョン: 1.6.5

SBM Counter

URL: http://ss-o.net/chrome_extension/#SBMCounter
インストールしたバージョン: 4.2.8

行った設定

デフォルトでGoogle検索結果等Webページ内のブクマ数が表示される。
Google検索結果にはいらないので、フィルタに以下の正規表現を追加することで抑制。

^http://www\.google\.co(m|\.jp/)/

Windows 7 上に Rails 2.3.4(Ruby 1.9.1 MySQL 5.4.3-beta) 開発環境を構築した時のメモ

環境構築のスピードを重視しています。

環境

Windows 7 Professional 64bit

Rubyインストール

ActiveScriptRuby and Other packagesRuby-1.9.1-p243 をダウンロードしインストール。
インストールパスは C:\bin\ruby にした。

gemをアップデート

gem update --system

RailsMySQL/Rubyインストール

gem install rails
gem install mysql

MySQLインストール

MySQL :: Download MySQL Community Server の Windows(x64ではない) の Without installer をダウンロードし展開。
展開フォルダ名を mysql に変更して C:\bin 配下に配置し、C:\bin\mysql にパスを通す。
my-medium.ini をコピーしてファイル名を my.ini にして以下の部分を編集。
初期の設定ファイルはぐちゃぐちゃなので最低限の修正を加えて後でじっくり編集する方向で。

[client]
#socket = /tmp/mysql.sock
          :
[mysqld]
#socket = /tmp/mysql.sock
character_set_server = utf8
collation_server = utf8_general_ci
          :
[mysql]
default_character_set = cp932

サービス登録してスタート

mysqld --install mysql --defaults-file="--defaults-file=C:\bin\mysql\my.ini"
net start mysql

発生した問題への対応

MySQL/RubyがM17Nに対応していない問題の対応

以下のファイルを編集することで対応
C:\bin\ruby\lib\ruby\gems\1.9.1\gems\activerecord-2.3.4\lib\active_record\attribute_methods.rb

  • 148行目を以下の文字列に置換
          access_code = cast_code ? "(v=@attributes['#{attr_name}']) && #{cast_code}" : "(@attributes['#{attr_name}'].class == String) ? @attributes['#{attr_name}'].force_encoding('UTF-8') : @attributes['#{attr_name}']"
  • 273行目を以下の文字列に置換
            (column.type_cast(value).class == String) ? column.type_cast(value).force_encoding("UTF-8") : column.type_cast(value)
Ruby 1.9からString[n]の解釈が変わった問題の対応

以下のファイルを編集することで対応
C:\bin\ruby\lib\ruby\gems\1.9.1\gems\activesupport-2.3.4\lib\active_support\message_verifier.rb

  • 43行目から51行目を以下の内容に置換
        if a.respond_to?(:bytesize)
          # 1.9
          if a.bytesize == b.bytesize
            result = 0
            j = b.each_byte
            a.each_byte { |i| result |= i ^ j.next }
            result == 0
          else
            false
          end
        else
          # 1.8
          if a.size == b.size
            result = 0
            for i in 0..(a.length - 1)
              result |= a[i] ^ b[i]
            end
            result == 0
          else
            false
          end
        end
db:create時にRubyがSEGVしてしまう場合

以下のファイルをダウンロードして C:\bin\ruby\bin に置く
http://instantrails.rubyforge.org/svn/trunk/InstantRails-win/InstantRails/mysql/bin/libmySQL.dll

終焉

あとは適当なRailsアプリを作って動作確認して完了。
複雑なアプリで試したわけじゃないので、まだ問題があるかもしれない。

Passenger 2.2.5で rewindable_input.rb:86:in `make_rewindable' みたいなエラーが出る問題

解決方法

# vi /usr/local/lib/ruby/gems/1.9.1/gems/passenger-2.2.5/vendor/rack-1.0.0-git/lib/rack/rewindable_input.rb
- if filesystem_has_posix_semantics?
+ if filesystem_has_posix_semantics? && "#{RUBY_VERSION}.#{RUBY_PATCHLEVEL}" < "1.9.1.152"

Ruby 1.9.1p243 & Rails 2.3.4 で undefined method `^' for "0":String みたいなエラーが出る問題

結構ハマった。

これは何

Ruby1.9ではString[n]は文字そのものを返します。この動作はRuby1.8の動作(キャラクターコードを返す)とは異なります。
その問題を解決するPatchです。
感謝。

Railsを始めて一番最初にハマったこと

[tester@localhost]~% rails rails
/usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator/options.rb:32:in `default_options': undefined method 
`write_inheritable_attribute' for Rails::Generator::Base:Class (NoMethodError)
        from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator/base.rb:90:in `<class:Base>'
        from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator/base.rb:85:in `<module:Generator>'
        from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator/base.rb:48:in `<module:Rails>'
        from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator/base.rb:6:in `<top (required)>'
        from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator.rb:34:in `require'
        from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/lib/rails_generator.rb:34:in `<top (required)>'
        from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/bin/rails:14:in `require'
        from /usr/local/lib/ruby/gems/1.9.1/gems/rails-2.3.4/bin/rails:14:in `<top (required)>'
        from /usr/local/bin/rails:19:in `load'
        from /usr/local/bin/rails:19:in `<main>'
[tester@localhost]~% 

!?
調べたらirbactivesupportをrequireしてみろとのことだったのでやる。

[tester@localhost]~% irb
irb(main):001:0> require 'activesupport'
LoadError: no such file to load -- activesupport
        from (irb):2:in `require'
        from (irb):2
        from /usr/local/bin/irb:12:in `<main>'
irb(main):002:0> 

oh...

原因

[tester@localhost]~% gem install rails

これによって、ユーザディレクトリ配下の.gemディレクトリに諸々がインストールされてしまっていた。
これではrequireにパスが明示されていない限り読めない。

解決方法

[tester@localhost]~% sudo gem uninstall actionmailer actionpack activerecord activeresource activesupport rack rails
#アンインストール中いろいろ流れる
[tester@localhost]~% sudo gem install rails

幸福実現

[tester@localhost]~% rails rails
      create  
      create  app/controllers
            ・
            ・
            ・
      create  log/test.log
[tester@localhost]~%