仮想マシンソフトウェアとLinuxのインストール

goto home page.

この授業では,ところどころでLinuxを使った演習を行う. また,メモリを使い切った時のOSの挙動など, いくつかの「危ない」実験も行う. それをするために,仮想マシンソフトウェアを用いて仮想環境を作り, その中にLinux OSを自分でインストールする. 仮想環境は,メモリ量やCPU数なども自在に調節でき, 実験環境として使いやすい. Linuxを普段使っていない人も, これで実験のためにLinux環境を使えるようになるし, 普段学科PCのLinuxを使っているという人も, 一度Linuxを自分でインストールしてみることは将来的にも有用だろう.

このページでは,

  1. Linuxの仮想マシンソフトウェアVirtualBoxのインストールし,
  2. VirtualBox上に, 最小限のLinux OS環境をインストール
する手順を説明する. とても簡単なのだが以下は大分懇切丁寧に書いてある. 読まずにやってみてわからなくなったら読むくらいでも十分かも知れない.

以下のこの手順は, 必ず自宅でやっておくこと. 何回か後に,この環境構築がすんでいることを前提として, 演習・実験を行うので必ず済ませておくこと.

仮想マシンソフトウェアのインストール

学科PCには配布された状態で, VirtualBoxがインストールされているので, このステップは省略可能. 画面左端に, VirtualBoxのアイコンが出ているのでそれをクリックすれば, 起動するはず.

学科から貸出された以外のPCを使っている人は, 本ページ末尾 の指示に従えばインストールできる. 授業中にそれをやっている時間はないので, 家でやっておくこと.

Debian GNU/Linux インストーラCDのダウンロード

  1. 本演習では Deibian というLinuxのディストリビューションを用いる. DebianはUbuntuの元となったディストリビューション.
  2. Debianの最小構成(280MB程度)のインストーラCD AMD64用のネットワークインストールCD (2015.9.29現在) をダウンロードせよ. 上記リンクが古くなるなどして失敗する場合や, 他の選択肢を見てみたい人は こちら のページからダウンロードしてください.その際,
    • bittorrent 経由となっているものは使わない
    • 自分のOSが64 bit環境であれば,amd64, 32 bit環境であればi386 を選択する.Linuxの場合どちらであるかは,uname -i コマンドでわかる. x86_64と出れば64 bit環境,i386と出れば32 bit環境.
  3. 次の作業の途中で使うので保存した場所を覚えておく.

VirtualBox上にLinux OS環境をインストール

仮想マシン環境でも実際の環境でも, インストール手順自体はほとんど同じである. 違うのは仮想マシンを起動するところまで; 実際のマシンだったらインストールCDを入れて起動するところが, 仮想マシンの場合は, CDのイメージファイルを仮想CDとして起動するというだけの違い (CDを焼かなくていい分よほど楽だし地球にも優しい). マシンが立ち上がった後のやり方はまるで同じである. また,以下はVirtualBoxという仮想マシンを用いているが, (おそらく)他の仮想マシン(VMware, KVM, MacのParallelsなど)でも, マシンが立ち上がった後のやり方はほとんど同じである.

なので, 過去にもLinuxをインストールした経験があり, 自分が好きなLinux OSのディストリビューション(Ubuntuなど) なんかがある人はそれを入れても良い. が, この演習のための 環境としてはやや余計なものが入りすぎているかもしれない(特に, デスクトップ環境を入れると小さなメモリでは動かない環境になるから, この演習の目的には不向きになるかも知れない).

以下では, 極力余分なソフトが入らないLinux環境をVirtualBox内に構築する手順を, Linuxインストール未経験を前提に説明する. 書くと長くなったがほとんどは ENTERキーを連打するだけである. ポイントとなるところだけ赤字と大きな 図で説明してある. 後は適宜図をクリックすれば拡大できます.

VirtualBoxで新しい仮想マシンを作成

以下の説明中の画像はクリックすると拡大可能. 確認する必要があるときなどは, 必要に応じて拡大してください.

  1. VirtualBoxを立ち上げ, "New"ボタンをクリック
  2. OSを選べと言われるので, TypeはLinux, VersionはDebianとする. Nameは適当な名前をつける(スペースは含まないのが無難).
  3. メモリ量を選べと言われるので, 少なめを選ぶ. たとえば 128MB-256MB 256MB-512MB. デスクトップ環境をインストールしなければこの程度で十分. 後から変更することも可能.
  4. (仮想)ハードディスクをどうするかと聞かるので, そのままENTER (新しいのを作る).
  5. (仮想)ハードディスクのタイプをどうするかと聞かれるので, そのままENTER (VDI).
  6. (仮想)ハードディスクの割り当て方法をどうするかと聞かれるので, そのままENTER (dynamically allocate).
  7. (仮想)ハードディスクのファイル名をどうするかと聞かれるので 適当に答える.
  8. (仮想)ハードディスクの作成・設定が終わった後の状態
  9. 肝心なのは, 仮想マシンがインストールCDから立ち上がる ようにすることで, そのための設定. 設定項目の Storage をクリック
  10. Storage treeの中でCDのマークを選ぶ. そのattributesの中で, 右の方にCDのイメージファイルを選ぶメニューがある. そこをクリックして "Choose a virtual CD/DVD disk file..." を選択
  11. イメージファイルを選ぶダイアログが出てくるので, ダウンロードしたDebianインストーラCDのイメージファイルを選択.
  12. これで仮想マシンを起動する準備が完了. "Start"を押して起動すると, 数秒でこのようなメニューにたどり着くはず. もしうまく立ち上がらない場合, インストーラCDのイメージファイルが きちんと仮想CDドライブとして設定されているのか, 仮想マシン自身がCDから立ち上がる設定になっているか, などを確認しよう.
  13. 以降, ほとんどのステップはデフォルトの選択肢に yes と答えていくだけ. 言語を選べと聞かれる. 日本語を選んでもよいがインストールが早く済むのは きっとEnglishなんだろうということでEnglishを選択.
  14. 場所はどこですかと聞かれる. きっとUnited Statesと答えても問題は 無いんだろうけど一応, other を選択
  15. そしてAsiaを選択
  16. そしてJapanを選択
  17. Localesを選べと言われるので, United Statesを選択 (きっとここで日本語を選ぶとまた不要なものがインストールされるんだろう ということで. お好きにしてくれてOKです)
  18. ホスト名を選べと言われるので適当に名付ける.
  19. ドメイン名を選べと言われる. ここは理由がなければ空にしておくのが無用な混乱を避ける方法.
  20. ソフトをダウンロードするサーバの国を選べと言われる. 日本にいるのだから日本のサーバを選ぶのが正解.
  21. 具体的にサーバを選べと呼ばれる. 上の方から適当に選べばよい.
  22. Proxyを設定したければどうぞと言われるが空のままにする
  23. ルートパスワードを設定せよと言われる. 安全なものを選んで覚えておく.
  24. もう一度と言われるので同じのを入れる.
  25. 一般ユーザを一人作れと言われる. まずは名前を聞かれるので適当に入れる. ここは本名を入れても良いのだが, ユーザ名のような(tau, denjoなど)を入れても 差し支えない.
  26. その人のユーザIDを聞かれる. さっき入れたものと同じものがデフォルトに なっているので, さっきの欄にスペース混じりを入れたとか言うのでない限り そのままでOK. こちらはスペースは含まないこと.
  27. ユーザにもパスワードを.
  28. もう一度.
  29. ネットワーク経由で時刻の設定をするとかで少し時間がかかる. 場合によっては1分くらい かかるがここまでの処理が無事に行っていればネットワークにはつながっている はずなので, しばらく待っていればOKのはず.
  30. (仮想)ハードディスクのパーティショニングなどを聞かれる. 基本はデフォルトのままエンターキー連打でOK.
  31. 同様
  32. 同様
  33. 同様
  34. ここだけやや注意. 実際にディスクに書いていいかを最終確認する所で, デフォルトがNOになっているので, YESにしてから先へ進む.
  35. 後は待つだけ. 数分から10分くらいすると基本部分のインストールが終わり, それが終わりかけたところで, 人気パッケージの調査に参加するかと聞かれるので, NOでもYESでも好きに答える.
  36. ここは肝心. 他にどんなソフトを入れたいかを聞いてくる. インストールが最短時間で終わるよう, デフォルトでついてくるチェックボックスをすべて外す.
  37. すると以降のインストールは数十秒で終了し, grubを入れるかと聞いてくるのでYES.
  38. すると以降のインストールは数十秒で終了し, grubを入れるかと聞いてくるのでYES.
  39. インストールが終わって再起動しますと行ってくるのでYES.
  40. 起動OSの選択画面になるのでENTERもしくは放置すれば起動する.
  41. Ubuntuと異なりグラフィックな画面は出ないが, ものの数秒でで以下のようなログインプロンプト にたどり着く.
  42. 設定したパスワードでrootでログインする.
  43. うまく行けばこんなプロンプトにたどりつく.
  44. このままここで作業をすることは原理的には不可能ではないが, 画面の更新が遅いなど, 非常に使いにくい. そのため, SSH というソフトウェア で, 現在使っているマシン(学科PCだったら普段使っている Ubuntuのこと; 以下ホスト OS)から, 仮想マシン中のLinux (今入れたDebian; 以下ゲスト OS) へ, 遠隔ログインする. なお,普段使っているホストOSが,Windowsな人は, ホストOS側にも,SSH (クライアント)をインストールする必要がある. 例えば, Putty, Tera Term などをインストールする.
    以下は,SSHでゲストOSへログインできるようにするための, ゲストOS側の手順. まず, ゲストOSにSSHをインストールするために, ゲストOS (仮想マシン)内で
    # apt-get install openssh-server
    
    というコマンドを実行.
    もちろん遠隔ログインという言葉は, 本来物理的に離れたところにある マシンにネットワーク経由でログインするときに使う. ここでホストOSから ゲストOSにログインするのは遠隔でも何でもないのだが, 使っているソフトや プロトコルは同じ.
  45. 次にゲストOSに割り振られたIPアドレスを調べて, 覚えるかメモする. コマンドは
    ifconfig
    
    この写真では, 10.0.2.15というアドレスが割り振られている. おそらく誰がやっても同じ結果になる. IPアドレスが重複していて 大丈夫なのかと不思議に思うのは正しい疑問. NATというものを 使っているので大丈夫だとだけ答えておきます.
  46. さて次に, ホストOSからゲストOSに, sshコマンドで遠隔ログインする方法を説明する. sshは本来,
    ssh ユーザ名@ホスト名
    
    ssh ユーザ名@IPアドレス
    
    で, 指定したホスト名やIPアドレスを持つマシンへログインできる (ユーザ名部分はログイン元と先で同じであれば省略可)というものだが,
    ssh tau@10.0.2.15
    
    などとやっても残念ながらうまくいかない. VirtualBoxでport forwardなる設定を行う必要がある.
  47. そのためにVirtualBoxのメインのメニューに戻り, 起動しているDebianを選択した上でNetworkをクリック.
  48. advancedという項目が開かれていなければ選択して開く
  49. Port Forwardingというボタンをクリック
  50. 右上隅の + ボタンをクリックして新しいルールを追加
  51. ここでルールを写真の通り設定する
    Name Protocolo Host IP Host Port Guest IP Guest Port
    ssh TCP 127.0.0.1 2222 10.0.2.15 22
    赤字はそのとおり打つ. 10.0.2.15のところは, ifconfigで調べたアドレスを 入れること. 緑の部分は変えてもよいが, 2222 の部分は1024以上で, 他のアプリケーションに使われていないポート番号ということで, 意味がよく分からなければ2222にしておく. この設定は全体として, localhost (ホストOS)の2222というポートと通信したい人がいたら, それを10.0.2.15の22というポートへ転送してくれという設定である. 10.0.2.15の22というポートでは, sshのログインを受け付けるサーバ (先ほどインストールしたopenssh-serverのサーバ)が待ち受けている.
  52. この設定がすんだら, ホストOSで端末を立ち上げて, sshコマンドを 以下のように発行する.
    ssh -p 2222 localhost
    
    うまく行けば以下のようにログインできる. 以降の作業はこの端末から継続する.

  53. ホストOSにあるファイルをゲストOSにコピーしたければ, ホストOSで端末を立ち上げてscpコマンドを使う.
    $ scp -P 2222 ファイル名 ユーザ名@localhost:
    
    ssh同様, ユーザ名はホストOSと同じであれば省略可能.

    たとえば, ゲストOSのユーザ名がtauで, そこにenshu.c というファイルをコピーしたければ,

    $ scp -P 2222 enshu.txt tau@localhost:
    enshu.txt                                      100% 3661     3.6KB/s   00:00   
    
    とする. 2行目のような表示が出てくれば成功という事.

    逆に, ゲストOSにあるファイルをホストOSにコピーしたければ, やはり, ホストOSで端末を立ち上げ,

    $ scp -P 2222 ユーザ名@localhost:ファイル名 .
    
    とする. 「ファイル名」の部分には, ゲストOS上の, ホームディレクトリからの 相対パス名を指定する. 例えば, ゲストOS上で, ex というフォルダを作り, その中の a.dat をコピーしたいのであれば,
    $ scp -P 2222 ユーザ名@localhost:ex/a.dat .
    
    とする.

    落とし穴が2つ

    • ポート番号の指定が, -p ではなく, -P (大文字のP)
    • ホスト名の後にコロン( : ) をつける. 付け忘れると, エラーにはならずに, ホストOSの中でファイルをcp しているのと同じ事になる(例えば上記であれば, tau@localhost というファイルができてしまう)ので注意.

      一般には : の後ろに, コピー先でのファイル名を指定できる(例: localhost:enshu/xyz.c). : 以降が相対パス名('/'から始まらないパス名) であればゲストOSのホームディレクトリからの相対パス名になる. : 以降に何も書かなければホームディレクトリにコピーするという意味になる.

  54. 何かソフトを入れるには, rootユーザになって, apt-get install ソフト名 というコマンド. 例えばEmacsを入れたければ,
    $ su 
    password ...
    # apt-get install emacs
    ...
    # exit
    
    これまでデスクトップのGUIでしかこの手の作業をしたことがない人は, 一度経験しておくと良いだろう (そのうち遠隔のサーバマシンで実験をする日が来る).
  55. sudo を使い慣れていて, 毎回suしてパスワードを入れるのが面倒という人は, sudoを入れればよい. sudoを入れた後, visudoというソフトで, 自分をsudoコマンドを発行できる人間として設定する.
    $ su 
    password ...
    # apt-get install sudo
    ...
    # visudo
    
  56. visudoで立ち上がった画面では, root と書かれた行を真似して, 自分を以下のように書き足す.
    tau   ALL=(ALL) ALL
    
    終了は Ctrl-x, 何やら聞かれるが, Y と答えてその後はENTER.
  57. 以降は必要なソフトは,
    sudo apt-get install ソフト名
    
    で入れられる.
  58. ゲストOSの終了は, sshでログインした端末で,
    sudo halt
    
    sudo shutdown -h now
    
    など. 間違えてホストOSを終了してしまわないように注意. ゲストOSがフリーズするなどして, 強制的に終了せざるを得ない場合は仮想マシンのウィンドウを閉じても良い.

VirtualBoxのインストール手順

  1. VirtualBoxホームページの, ダウンロード セクションへ行く.
  2. VirtualBoxのダウンロードページ に行きそこから適切なバージョンを選ぶ.
  3. ダウンロードしたものを保存してダブルクリックしても良いし, そのまま開いても良い. 勝手にインストーラが走ってくれるはず. そうならず, コマンドラインでやらなくてはいけなくなったら, Ubuntuの場合,
    sudo dpkg -i ダウンロードした.debファイル
    
  4. これでVirtualBoxのインストールは完了で, メニューに追加されているはず. Dashの人は, vir.. あたりまで入れれば出てくるはず.