VirtualBox orVMWare PlayerでLinux環境をWindows 7×64に構築するメモ
今回はVirtualBoxTurnkey Linux coreを使って構築した。

と見せかけて、最終的にはUbuntu Server使う事にしたので途中まで飛ばしていいです。

なんでVMを使ってまでやるかというと
WIndowsでのCUIはConsole+NYAOSでコンソールとしていいのですが、node.jsなど実行できないものが出てきたので、VM上に環境を作ることにしました。
Cygwin : 食わず嫌いでしたが、食ったら嫌いでした。
coLinux : 64 bitが非対応でした。

必要なもの

  • VirtualBox(仮想化ソフトウェア)
  • TurnKey Core(サーバー、そこら辺の便利なソフトが入ってる感じのディストリビューション)
  • RLogin(SSHクライアント)

Turnkey Linux coreはVM向けにovf形式でも配布してるので、OVFと書かれてるリンクからturnkey-core-バージョン-lucid-x86-ovf.zipをダウンロードして使う。

2011-04-20-ss11

VirtualBoxを起動してメニューの仮想アプライアンスのインポートから、先ほどのovfをインポートすると自動でTurnKey Coreが仮想マシン一覧に並ぶ。(設定するのは仮想マシンの名前ぐらい)

2011-04-20-ss8

起動するとパスワードの設定などがあって、パスワード以外はEnter押してればいいと思う。
設定が終わると起動して下のようなメニュー画面が表示される。

2011-04-20-ss12
メニューを終了させると、CUIで操作できるけどキーやマウスの関係で扱いにくいのでSSHからアクセスして操作する。

RLoginを起動して、サーバの接続から新規追加して、プロトコロルにSSH、アドレスにはLinuxサーバーのIPアドレス、ユーザーはrootで、パスワードは最初の起動時に設定したものを入力して接続する

2011-04-20-ss13

2011-04-20-ss9

こっからはサーバー{ゲスト側(Ubuntu)}の設定

まずはrootだとあんまりよくないので、ユーザー(azuという例で)を追加、そのユーザーのパスワードを設定する。

root@core ~# useradd -m -s /bin/bash azu
# ユーザーazuを追加する。mオプションがないとHOMEディレクトリが追加されなかった
root@core ~# ls /home/     
azu/
# HOMEディレクトリがあるのを確認
root@core ~# passwd azu
# パスワードの設定
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
useraddの-sオプションでログインシェルを決めないとかなり不自由な感じになります。

後からログインシェルを決める場合はchsh -s /bin/bash などとする。
と、このままTurnkey Linuxを使おうと思っていたんだけど、ファイル共有でどうしても上手くGuest Additionsのインストールが上手くできないのと、なんかroot前提なような環境で他とは少し違った感じで躓く事がありそうだったので、Ubuntu Serverに切り替えました。
 

Ubuntu Serverを使って環境構築(改めて)

(ちょこちょログにTurnkeyが出てくるのはそのときの名残です。プロンプトの文字は無視してください)
(Turnkey Linuxの事は忘れてください)
必要なもの
  <td valign="top" width="200">
    <p>
      ゲストOS
    </p>
  </td>
</tr>

<tr>
  <td valign="top" width="200">
    <p>
      Windows 7 64bit
    </p>
  </td>
  
  <td valign="top" width="200">
    <p>
      Ubuntu Server
    </p>
  </td>
</tr>

ホストOS

で環境を作っていきます。
Ubuntu Serverのisoをダウンロードしてきて、新規仮想マシン作成から適当な配分で仮想マシンを作りますが、ネットワークをブリッジ接続に変更しないとUbuntu ServerのIPアドレスが10.0.2.25とかいう感じになってSSH接続できなかったので、ネットワークをブリッジ接続に変更して作成しました。
image
追記: ネットワークがNATでもポートフォワーディングすればSSH接続できました(こっちの方がいいかも)
ネットワークの設定をNATにしてから、高度の設定でポートフォワーディングにホストには任意のポート、ゲストにはUbuntu側に設定したSSHのポート番号(デフォルト22)を設定します。
2011-04-23-ss1
この状態で、RLoginに接続IPアドレスに127.0.0.1 or localhost で、ポート番号にはホストに設定したポート番号を入力すればSSH接続できます。

任意のポートだけを開く感じで使えるのでこっちの方がいい気がします。同様の方法でWebのポートである8080もポートフォワーディングに設定しました。

 

仮想マシンを起動したUbuntu Serverのインストール画面でユーザーアカウントの作成ができるので、下のガイドに従って入力していくだけで先ほどのTurnkey Linux でのユーザーアカウント追加までと同じ事ができます。

注意点としては18.サーバーソフトウェアの選択画面でOpenSSH SERVERを選択してSSHでつなげるようにしておくと楽でいいです(スペースキーで選択チェックが入る)

忘れた場合でも

sudo apt-get install openssh-server
とすればいいだけなので、そこまで問題ないです。
Ubuntu Serverはそのまま使うと文字化けして扱いにくいので、RLoginを使ってアクセスすれば文字化け対策をしなくてもいいので、最初からRLoginを使って作業します。

サーバのIPアドレスは

ifconfig
<p>
  で、わかると思います。<br /> <br />初期設定なら、インストール時に入力したアカウントとパスワードでログインできると思います。<strong></strong>
</p>

<p>
  <strong><br /> <br />SSHで鍵を使って接続</strong>
</p>

<p>
  セキュリティ的にパスワードではなく鍵でSSHをつなぐのが普通だと思うので、SSHの鍵設定をします。
</p>

<div>
  <pre id="codeSnippet" class="csharpcode">root@core ~<span class="rem"># cd /home/azu/</span>

# ユーザのHOMEへ root@core /home/azu# mkdir .ssh root@core /home/azu# cd .ssh # .sshディレクトリを作って移動 root@core azu/.ssh# ssh-keygen -t rsa # 鍵を生成する Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): turnkey # ファイル名は適当に Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in turnkey. Your public key has been saved in turnkey.pub. root@core azu/.ssh# ls turnkey turnkey.pub # .sshディレクトリに秘密鍵と暗号鍵が生成される root@core azu/.ssh# mv turnkey.pub authorized_keys # turnkey.pub を authorized_keysにリネームする root@core azu/.ssh# ls authorized_keys turnkey