平林孝太@東京大学研究のはなし、個人的なメモ書きなどのページになる予定です。。。 |
研究室マシン設定メモ:その2
Ubuntu 12.04 LTS から Ubuntu 14.04 LTS へのアップグレードに失敗して、 いろいろ苦しみながらやったことの覚書。
Ubuntu インストールまで
まずUbuntu 14.04 のインストーラの問題で、RAID構成のHDDへのインストールはできないらしい。 なんじゃそりゃ。 500GBのHDD2台でRAID1(ミラーリング)になっていたせいで、ここで詰まる。 OSが起動しない状態になっていたので、UbuntuをDVDからライブ起動して、 ホームディレクトリだけ1TBのHDDに退避。
続いてRAID構成を解除する。BIOSの起動画面で Ctrl+I だかを押して、RAIDコントローラ画面を呼び出す。
このへんは勘で進む。RAID delete を選択して中身もろともさようなら。
RAIDが解除できたらあとは DVD からいつものように Ubuntu 14.04 をインストールするだけ。
問題なく終了。
で、ここまでやって気がついた。Intel Fortran Composer XE がまだ Ubuntu 14.04 に対応していない。 というわけで泣く泣く Ubuntu 12.04 LTS を入れ直す。
インストールに失敗する原因がわからずに、ここまででだいぶ時間を食った。具体的には3日くらい。 だってエラーメッセージが「??? ??? ??? ???」としか表示されないんだもの!
ホームディレクトリのマウントまで
1TBのHDDに退避しておいたホームディレクトリを /home にマウントする。 ついでに、RAID解除で余った500GBのHDDも /work としてマウントしてしまおう。 具体的には /etc/fstab の中身を編集して、Ubuntu の起動時に自動マウントさせる。
まず、UUID(デバイスに固有のIDで、世界中で重複しないように設定されるらしい)を調べる。
$ sudo blkid
/dev/sda1: UUID="oooooooo-oooo-oooo-oooo-oooooooooooo" TYPE="ext4"
/dev/sda2: UUID="oooooooo-oooo-oooo-oooo-oooooooooooo" TYPE="swap"
/dev/sdb1: UUID="oooooooo-oooo-oooo-oooo-oooooooooooo" TYPE="ext4"
/dev/sdc1: UUID="oooooooo-oooo-oooo-oooo-oooooooooooo" TYPE="ext4"
上の二つ(/dev/sda1, /dev/sda2)は Ubuntu をインストールしたHDDなので、
下の二つ(/dev/sdb1, /dev/sdc1)が追加のHDD。
/dev/sdb1 を /work、/dev/sdc1 を /home として使おう。
既存の /home を /home.back としてバックアップを取り、
mkdir でマウントポイント(/work, /home)を作成。続いて
/etc/fstab に次の記述を追加する。
# extended HDD
UUID=oooooooo-oooo-oooo-oooo-oooooooooooo /work ext4 defaults 1 3
UUID=oooooooo-oooo-oooo-oooo-oooooooooooo /home ext4 defaults 1 2
UUID にはさっき調べた /dev/sdb1, /dev/sdc1 の値をそれぞれ入れる。
行末の数値はマウント時のチェックの順番で、/dev/sda1 が1に設定されている。
その前の数値はなんだったか忘れた。
あとは再起動すれば勝手にマウントされる。 自分は defaults と書くところを誤って default と書いたせいで ホームディレクトリがマウントできずに、ログインできなくなった。 再びライブ起動して修正。
サーバ上のディレクトリをマウント
最後に、ネットワーク上のリモートサーバにあるファイルシステムをマウントする。
これまで .bashrc に sshfs の記述をしてマウントしていたが、bash を起動しないと繋がらないので
どうにも使い勝手が悪かった。
autofs を組み合わせると自動マウントできるらしいので今回これを使う。
ローカルホストを kerr、
リモートホストを dio、両方とも自分のアカウント名は hirako とする。
マウント先は /mnt/dio とでもしておく。
鍵の設定
rootユーザでパスワードなしログインができることが必要らしいので、秘密鍵と公開鍵のセットを作り、
公開鍵をリモートホストに置く。
hirako@kerr:~$ sudo -s
root@kerr:~$ ssh-keygen (/root/.ssh/id_rsa_kerr として作成)
root@kerr:~$ scp -r /root/.ssh/id_rsa_kerr.pub hirako@dio:~/.ssh/
root@kerr:~$ ssh hirako@dio
hirako@dio:~$ cat ~/.ssh/id_rsa_kerr.pub >> ~/.ssh/authorized_keys
続いて、SSH接続する際にこの鍵を使うように設定する。
/root/.ssh/config に(なければ作成して)次の記述を追加。
Host dio
User hirako
HostName XXX.XX.XX.XXX (IPアドレス)
IdentityFile /root/.ssh/id_rsa_kerr
root のまま $ ssh dio とかして hirako 名義でパスワードなしログインできれば成功。
autofs と sshfs の設定
なにはともあれインストール。
$ sudo apt-get install autofs sshfs
続いて設定ファイルをいくつか編集します。
/etc/auto.master の最後に
/mnt /etc/auto.sshfs --timeout 0 --ghost
を追加。
最初がマウントポイントを作成するディレクトリ、2番目がマウント元を記述する設定ファイル名。
後ろはおまじない。
さっき指定した /etc/auto.sshfs に以下を記述。
#dio -fstype=fuse,allow_other :sshfs\#dio\:/home/hirako
dio -fstype=fuse,allow_other,follow_symlinks :sshfs\#dio\:/home/hirako
(\はバックスラッシュ)
2015/02/19追記: follow_symlinks を入れるとマウント先のシンボリックリンクも辿れる。
先頭がマウントポイントの名前、一番最後がマウント元の指定。今回は自分のホームディレクトリ。
最後に sshfs に必要なグループの設定。 /etc/group 中の
fuse:x:104:
とか書いてある行の最後に自分のアカウントを追加して
fuse:x:104: hirako
とすればOK。
再起動したら自動マウント完了!ホームディレクトリにリンクを張ると幸せになれます。