読者です 読者をやめる 読者になる 読者になる

手持ちのパソコンに大学のOSLと同じUNIX環境を作る

最近MacBook Proを買いまして,大学のOSLのパソコンに入っているUNIX環境と同じものをMBPにも構築することにしました. 演習授業などですでにOSLのUNIX環境を使っている人は,これがあるとOSLの開放時間外でも自由に使えるので便利だと思います. 参考までに,プロセスを記しておきます.Macでの作業方法ですが,Windowsでもあまり大きな差はありませんので適宜読み替えてください.

なお,言うまでもありませんが京都大学の学生向けの記事です.

用語

手順

必要なもののダウンロード

  1. http://virtualbox.org/ から,インストーラと拡張パッケージをダウンロードする.
  2. http://vinelinux.org/ から,ディスクイメージをダウンロードする.
    • Vine63-DVD-x86_64.iso(以下,「ディスクイメージ」)

VirtualBoxのインストール

  1. VBoxインストーラを開く.
  2. パッケージのアイコンをダブルクリックする.インストーラが起動する.
  3. 画面に従ってインストールを進める.
  4. インストールが完了したら閉じる.インストーラは捨てて構わないが,アンインストールする際は再び必要になる.

拡張パッケージのインストール

  1. VirtualBoxを開く.
  2. ダウンロードしたVBox拡張パッケージを開く.
  3. 「インストール」をクリックする.ライセンスを読んだら「同意する」を押す.
  4. インストールされた.

拡張パッケージをインストールしないと,VBox本体はUSB1.1コントローラーしか持っていないので,手持ちのUSBメディアが使えないということが起こりうる.

仮想マシンの作成

  1. 「新規」をクリックする.ウィザードが起動する.
  2. マシンの名前は何でもよいが,「Vine Linux」と入れると自動でタイプとバージョンを判断してくれる.
  3. メモリのサイズは最低1GBを要求されるが,多いに越したことはない.2GBや4GBなど,マシンのメモリに合わせて決める.
  4. 「仮想ハードディスクを作成する」を選んだ状態で「作成」をクリックする.
  5. ファイルタイプはVDIのままでよい.
  6. 「可変サイズ」は,初めは最小サイズで,指定したサイズを上限として仮想マシンの内容に応じて容量が増える.「固定サイズ」は,初めから指定したサイズだけ容量を確保する.これも好みで選べばよい.
  7. ディスクのサイズもマシンのHDD容量に合わせて好みで設定すればよいが,仮想マシン上で広く作業領域が欲しい場合が多いだろうから,20GB以上を目安に設定する方がよい.
  8. 仮想マシンが作成された.

Vine Linux のインストール

  1. 作成した「Vine Linux」を選んで「設定」をクリックする.
  2. 「ストレージ」のタブで,IDEコントローラーの欄を表示する.
  3. IDE セカンダリマスター」の横にあるディスクのボタンをクリックし,「仮想光学ディスクファイルを選択」で先ほどダウンロードしたディスクイメージを選ぶ.
  4. 「Live CD/DVD」にチェックを入れて「OK」をクリックする.
  5. Vine Linux」を選んで「起動」をクリックする.
  6. 仮想マシンが起動し,ブートメニューが出る.「Install Vine Linux 6 -- default」を選んだままEnterを押す.
  7. しばらくするとインストール画面が出てくる.「次へ」を押す.
  8. 「日本語(日本語)」を選んで「次へ」.
  9. 「日本語」を選んで「次へ」.
  10. インストールの種類は「すべて」か「デスクトップ」のどちらかを選ぶ.「デスクトップ」を選ぶと,あとでいくつか手動でインストールしなくてはならないソフトが出てくる可能性がある.「次へ」.
  11. 「自動パーティション設定」のまま「次へ」.「警告」が出るが,いまインストールしようとしているディスクには何のデータもないので安心して「はい」を押す.
  12. 「システムのすべてのLinuxパーティションを削除」を選んだまま「次へ」.ここでも「警告」が出るが安心して「はい」を押す.
  13. ブートローダの設定はいじらなくてよい.「次へ」.
  14. ネットワークデバイスの設定もこのままでよい.「次へ」.
  15. ファイアウォール設定もこのままでよいが,あとでホストからゲストへSSHで接続したいような場合は「リモートログイン (SSH)」にチェックをつけておいてもよい,「次へ」.
  16. 「Japanese」を選んだまま「次へ」.
  17. タイムゾーン設定はそのままでよい.「次へ」.
  18. rootパスワードを入力する.ここで入力したパスワードは,仮想マシンに重要な変更を加える場合に必要になるので覚えておくこと.次に,ユーザ名とパスワードを入力する.フルネームはあってもなくてもよい.「次へ」.
  19. 「デフォルトのソフトウェアをインストール」のまま「次へ」.
  20. 「次へ」を押すとインストールが始まる.
  21. インストールにはSSD環境でも5分ほどかかる.HDD環境ならもっとかかる.
  22. インストールが完了したら,右下のディスクアイコンを右クリックして「仮想ドライブからディスクを除去」を押す.ディスクが取り出されたことを確認してから「再起動」を押す.
  23. 再起動すると,ブートメニューが表示される,そのまま5秒待つとVine Linuxが起動し始める.
  24. OSLではターミナル画面だが,デフォルトではスプラッシュ画面になる.ESCキーで入れ替えることができる.
  25. 自分のアカウントを選び,パスワードを入力してログインする.

Guest Addition のインストール

Guest Addition を導入することで.ホスト側とゲスト側のマウスポインタが重ならなくなったり,ホスト側でウィンドウサイズを変えると自動でゲスト側のウィンドウサイズも変わるようになるなど,いろいろな連携がよくなる.

  1. メニューバーから「デバイス」タブ内の「Guest Addition CD イメージの挿入」をクリックする.
  2. 「”オートランの問い合わせ”を開く」のまま「OK」を押す.
  3. 「実行する」を押す.
  4. 先ほど設定したrootパスワードを入力する.
  5. インストールが終わったらEnterキーを押すと端末が閉じる.デスクトップのCDアイコンを右クリックし,「取り出す」を押すと自動で仮想ドライブからディスクが取り出される.

USBコントローラーの設定

VirtualBox本体はUSB1.1コントローラーしか持たないが,拡張パッケージを導入したことでUSB3.0も利用できるようになっている.USB3.0対応のポートがある場合は,この設定をしておくと通信速度が速くなる.

  1. Vine Linux を起動している場合はいったんシャットダウンする.
  2. Vine Linux」を選んで「設定」を開く.
  3. 「ポート」メニューの「USB」タブを開く.
  4. 利用するUSBコントローラーを選ぶ.
  5. 「OK」を押す.

共有フォルダの作成

ホスト側とゲスト側でデータをやりとりできるフォルダがあると便利なので,作成しておく.

  1. Vine Linux を起動している場合はいったんシャットダウンする.
  2. Vine Linux」を選んで「設定」を開く.
  3. 「共有フォルダー」メニューを開く.
  4. 右側に並んでいるフォルダのアイコンの一番上をクリックする.
  5. 共有フォルダにするディレクトリを選ぶ.「自動マウント」にチェックを入れると,ゲストの起動時にVirtualBoxが自動で共有フォルダをマウントしてくれる.その際,ディレクトリ名は「フォルダー名」に入っている名前が使われる.「OK」を押す.
  6. Vine Linux を起動する.起動したら,端末を起動する.共有フォルダは/media/sf_*****/にマウントされているが,今の状態ではアクセスできないはず.
  7. sudo gpasswd -a ユーザー名 vboxsfと入力し,Enter.パスワードを聞かれるので入力する.
  8. いったんログオフし,もう一度ログインする.再起動でもよい.
  9. 端末を起動する.今度は/media/sf_*****/にアクセスできるはず.
  10. ln -s /media/sf_***** ~/***** など,ホームディレクトリに適当にシンボリックリンクでも張っておくと楽になるだろう.

その他,覚え書き

パスワードがわからなくなったら

  1. Vine Linux を起動する.ブートメニューが表示されたら,eを入力する.2行目に移動し,eを入力して編集できる状態になったら,コマンドの末尾に1を付け足す.Enterを押して編集を保存し,その状態でbを押すと起動する.
  2. rootでログインした状態になっている.passwdでrootパスワードを,passwd ***で***というユーザーのパスワードを変更できる.
  3. 変更し終わったらrebootを実行して再起動する.

ディスクの容量が足りなくなったら

この項目にある内容を実行する場合は,必ず事前にバックアップを作成しておくこと.失敗してデータを破損しても責任は負わない.

まず,ホスト側で作業する.

  1. VirtualBoxのあるディレクトリにパスが通っているか確認する.通っていない場合は,以下のVBoxManageをフルパスで入力し実行すること.
  2. Vine Linuxの仮想ハードディスクのあるディレクトリに移動する.デフォルトでは~/VirtualBox VMs/Vine Linux
  3. 仮想ハードディスクを「固定サイズ」で作成した場合は,「可変サイズ」に変換する.
    VBoxManage clonehd --format VDI Vine¥ Linux.vdi Vine¥ Linux-1.vdi
  4. 仮想ハードディスクのサイズを拡張する.サイズの指定はMB単位である.例えば30GBの場合は30720MB.
    VBoxManage modifyhd Vine¥ Linux.vdi --resize 30720

次に,ゲスト側で作業するが,Vine Linuxを起動するのではなく,パーティション編集ツールGPartedのLive CDを使う.http://gparted.org/ からgparted-live-0.27.0-1-i686.isoをダウンロードする.

  1. Vine Linux」の「設定」を開く.
  2. 「ストレージ」メニューの「IDE コントローラー」で,ダウンロードしたISOを光学ドライブにセットする.
  3. 「OK」を押して設定を閉じ,起動する.
  4. 「GParted Live (Default Settings)」のままEnterを押す.
  5. キーボードマッピングに関する質問をされるが,「Don't touch keymap」のままEnterを押す.
  6. 言語を聞かれるので,「15」(日本語)を入力してEnter.
  7. 他にも設定をするか聞かれるが,そのままEnterを押す.GPartedが起動する.
  8. /dev/sda2が現在使っている領域で,「未割り当て」が拡張した部分./dev/sda2を選んで右クリックし,「リサイズ/移動」を選択.
  9. スライダーを右側いっぱいまで引っ張るか,「新しいサイズ」の欄を「後ろの空き領域」がなくなるまで引き上げる.
  10. 「Apply」を押す.警告されるが,そのまま「Apply」を押す.
  11. 完了したらポップアップを閉じ,メニューバーから「GParted」>「Quit」で終了する.デスクトップの「Exit」をダブルクリックすると,少ししてからシャットダウンメニューが開くので,「Reboot」を選んで終了.ディスクを取り出すよう指示されるので取り出した後,Enterを押すと再起動する.
  12. Vine Linux でログインする.
  13. 端末を開く.以降の作業はすべてスーパーユーザーで行うので,suでrootとしてログインする.
  14. まず,pvdisplayで物理ボリュームを表示し,容量が増えていることを確認する.
  15. lvdisplayで論理ボリュームを表示する.まだ容量が増えていない.
  16. lvextend -l+100%FREE /dev/mapper/VolGroup00-LogVol00を実行する.
  17. lvdisplayで論理ボリュームを表示し,容量が増えたことを確認する.
  18. df -hファイルシステムを表示する.まだ容量が増えていない.
  19. resize2fs /dev/mapper/VolGroup00-LogVol00を実行する.
  20. df -hファイルシステムを表示し,容量が増えたことを確認する.
[k-ashiya@localhost ~]$ su
パスワード:
[root@localhost k-ashiya]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               VolGroup00
  PV Size               19.80 GiB / not usable 19.05 MiB
  Allocatable           yes 
  PE Size               32.00 MiB
  Total PE              633
  Free PE               161
  Allocated PE          472
  PV UUID               uj0m0Y-2cEE-7BJg-Q72J-OHNB-RTFt-IKELLg
   
[root@localhost k-ashiya]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                YGnvbR-RIYn-40pc-Vq3O-hWTK-hbnz-BpovsW
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                8.88 GiB
  Current LE             284
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                pXs62W-zW82-bfo1-LvFu-8beQ-zsLc-CIreeo
  LV Write Access        read/write
  LV Status              available
  # open                 3
  LV Size                5.88 GiB
  Current LE             188
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
[root@localhost k-ashiya]# lvextend -l+100%FREE /dev/mapper/VolGroup00-LogVol00
  Extending logical volume LogVol00 to 13.91 GiB
  Logical volume LogVol00 successfully resized
[root@localhost k-ashiya]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol00
  VG Name                VolGroup00
  LV UUID                YGnvbR-RIYn-40pc-Vq3O-hWTK-hbnz-BpovsW
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                13.91 GiB
  Current LE             445
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
   
  --- Logical volume ---
  LV Name                /dev/VolGroup00/LogVol01
  VG Name                VolGroup00
  LV UUID                pXs62W-zW82-bfo1-LvFu-8beQ-zsLc-CIreeo
  LV Write Access        read/write
  LV Status              available
  # open                 3
  LV Size                5.88 GiB
  Current LE             188
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1
   
[root@localhost k-ashiya]# df -h
ファイルシステム    サイズ  使用  残り 使用% マウント位置
rootfs                8.8G  5.2G  3.2G  62% /
/dev/root             8.8G  5.2G  3.2G  62% /
/dev                  2.0G  540K  2.0G   1% /dev
/dev/sda1             201M   29M  162M  15% /boot
none                  2.0G   76K  2.0G   1% /dev/shm
[root@localhost k-ashiya]# resize2fs /dev/mapper/VolGroup00-LogVol00
resize2fs 1.41.14 (22-Dec-2010)
Filesystem at /dev/mapper/VolGroup00-LogVol00 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/mapper/VolGroup00-LogVol00 to 3645440 (4k) blocks.
The filesystem on /dev/mapper/VolGroup00-LogVol00 is now 3645440 blocks long.

[root@localhost k-ashiya]# df -h
ファイルシステム    サイズ  使用  残り 使用% マウント位置
rootfs                 14G  5.2G  8.0G  40% /
/dev/root              14G  5.2G  8.0G  40% /
/dev                  2.0G  540K  2.0G   1% /dev
/dev/sda1             201M   29M  162M  15% /boot
none                  2.0G   76K  2.0G   1% /dev/shm
[root@localhost k-ashiya]# 

参考にしたサイト