長い話なのに解決しないので、最初に話の概要をまとめておこう。
メモリは 8G 、ストレージは SSD 256G。
以前のサーバーより性能は上がったが、電力消費量は減る。
さて、この上で今まで使っていた環境と「全く同じもの」を動かしたかった。
でも、CentOS 5 は動かなかった。仕方ないので CentOS 7 を入れたら、想像以上に苦労した。
最終的に 7 は動いたのだけど、期待していたことができなかったために CentOS 6 を動かすことにした。
話としてはこれで終わり。
だけど、なにかの参考になるかもしれないので、苦労した部分を書いておこう、という次第。
興味ない人には全く面白くない話なので、読まないほうがいい。
余談だけど、UEFI(起動時の設定を行う、BIOSに相当するもの)がGUIっぽいマシン初めて触った。
マウスでも設定ができるし、日本語に表示を切り替えることもできる。
(冒頭の写真)
「変更がそして退出することを保存します」(save changes and exit)っていい翻訳だな。
なかなかネイティブには思いつかない。
まず、N3700 上での CentOS 5 について。
以前のマシンの HDD を繋げて、CentOS 5 を起動してみた。
#以前のマシンの故障個所は電源で、マザボも HDD も問題ないと確認済み。
X Window を起動しようとするところでエラーを出し、操作不能になってしまう。
N3700 には CPU 内臓グラフィックチップがあり、以前のものと同じ設定では動かないようだ。
起動時にオプションを与え、テキストモードで起動すると暴走しない。
でも、なぜかキーボードが利かない。マウスも…光学マウスだけど、LED が点灯していない。
USB コントローラーも新しくなっているため、認識しないようだ。
試しに、CentOS 5 を新規インストールしようとしてみても、インストーラーが USB を認識しない。
ネットで調べても、CentOS 5 だと USB 3 を認識できない、という話題が多数見つかる。
ここで CentOS 5 には見切りをつける。
要件として、仮想化に Xen を使える必要がある。
仮想化して多数のマシンを使いたい、のではなく、ハードウェアの不調時に、環境をそのまま別のマシンに移行したいためだ。
家にはもう一台、Atom D525 で構築されたサーバーがあるのだが、D525 は IntelVT 命令セットをもっていない。
CentOS 6 以降は、仮想化環境に KVM を採用している。しかし、KVM は VT がなくては動かない。
とはいえ、CentOS 5 は動かないと判明しているので、情報収集。
…なるほど、CentOS 7 でも、後でインストールすれば Xen が使えるようだ。
というわけで、 CentOS 7 を入れてみることにする。
基本的には、インストールディスクの内容を CD か DVD に焼いて起動すればいい。
でも、現在家には使える DVD ドライブがない。
先日、古いノートパソコンの再生で、USB メモリ起動からのインストールを行った。
この手で行こう。
UNetBootin に CentOS 7 のネットワークインストールイメージを入れる。
…が、起動中にエラーとなる。
イメージが壊れていたかな? と、今度は DVD インストールイメージを入れてみる。
こちらもダメ。
えーと、どうやら UNetBootin はインストールイメージを「解凍」して、ファイル単位で USB メモリに書き込み、DVD のふりをして起動するようだ。
起動してしまえば、ファイルはそこにあるのでアクセスできる。
でも、UNetBootin は CentOS 6 の時代に作られたものが最新版。
CentOS 7 では、インストーラーが一新され、ファイル構成が全然違うものになっている。
このために、インストールイメージを「解凍」したといっても、必要ファイルが USB メモリに書き込まれないようだ。
それで起動に失敗する。
別のソフトを探す。LiveUSB Creator。
DVD インストールイメージを入れてみると、起動はする。
しかし、インストールソースを選択するところでエラーになる。こちらもやはり、必要ファイルが USB メモリに書き込まれないようだ。
仕方がないからネットワークインストールしようとしてもダメ。
DVD インストールからのネットワークインストール、というのがダメだった模様で、最初からネットワークインストールを書き込んで成功した、という人もいる。
でも、僕はここで「そもそも、ディスクイメージをそのまま USB に入れたらだめなのか?」と思ってしまった。
dd で iso ファイルを USB に書き込んでみた。
#dd は UNIX 用の Disk Dump ツール。
セクタ内容をそのままファイルに書き出したり、逆にファイルをセクタに戻したりできる。
これは、起動しないだけでなく、Windows でも認識しない USB となった。
やばい、壊してしまったようだ。
唐突に、壊した USB の治し方。
これも、ネットで情報探したら、同じようなことをやって壊した人がいる。
でも、修理方法がわからないまま諦めた、という記事が多い。
試しに Linux マシンに突っ込んでみた。
ちゃんと認識するし、マウントするとファイルも見える。
fdisk でパーテション情報を見てみた。
なんと、大きなパーテションの「中に」小さなパーテションが入っている、という、入れ子構造になっていた。
そんなのありえない。Windows が認識できないわけだ。
パーテションを削除して、作り直す。
ところが、「GPT 形式だと思うけど、fdisk では認識できないから GNU parted つかって」というエラーが出る。
GPT ってなんだ?
恥ずかしながら知らなかったが、2T を超えるようなディスクでは、従来の形式では容量が大きすぎて管理できなくなる。
その際に使われるのが GPT 形式だそうだ。
今回は 8G の USB メモリだし、USB メモリの可搬性を考えると従来の形式(MBR形式)のほうが良いらしい。
GPT 形式と認識されてしまうけど、これを戻すには…
GNU parted の mklabel で、USB メモリに msdos とラベルを付けるだけだった。
これで MBR 形式と認識される。
最後に、パーテションを1つだけ作る。これがないと、メモリデバイスとして認識できない。
出来上がったら、Windows に差し込むだけ。
「未フォーマットの USB ドライブ」として認識されるので、フォーマットする。
フォーマットの際は、FAT32 の、4096byte/block で。
土曜日の朝にマシンの組み立てから初めて、USB メモリを壊した時点で深夜。
修理は翌日の朝。
さて、振出しに戻った。CentOS 7 をインストールしようじゃないか。
Rufus という、また別のツールで USB イメージを作ってみる。
このツールは現在積極的にメンテナンスされているようで、CentOS 7 の形式に対応していた。
そのうえ、ツール自体が驚くほど小さい。
パーテションの切り直しから行ってくれるので、もしかしたら壊れた USB メモリでもそのまま使えたかもしれない。
もっとも、認識してドライブレターが付かないと、書き込み先として利用できないかもしれない。
今度はネットワークインストールを使った。
インストール時に、パーテション構成を聞かれる。
なにも指定しないとお勧めの設定にしてくれるけど…仮想化に使いたいため、ストレージをパーテションで細かく区切りたい。
以前のマシンと同じように区切るが、これがまた失敗の元だった。
CentOS 5 の以前のマシンは、/boot が 100M 。これで足りていた。
しかし、CentOS 7 は起動シーケンスも変わったようで、/boot が 100M では、起動に必要なファイルが収まりきらないようだ。
インストール後、起動したらエラーが出た。
原因がわからないのでインストールディスクを「レスキューモード」で起動し、インストールしたディスクを見てみたら、容量を使い切っていたので「パーテションサイズがダメだった」と理解。
再度パーテションを切り直してインストール。
起動したらエラーが出た。
今度は先ほどとは違う箇所。明らかに、X Window の起動に失敗している。
リセットして、テキストモードで起動。
やっと起動できた。X に関しては、後で設定しよう。
ここまでで、日曜日の夕方近くなっている。
さて、ここから Xen を入れる。
CentOS 7 用の Xen インストール方法を書いたページを参考に…
レポジトリ追加して、yum 一発でインストールできる、となっているのだけど、レポジトリ追加の際にエラーとなる。
えーと、調べてみると、レポジトリを設定するためのファイル URL が Not found 。
よく見ると、コメント欄にも「ファイル壊れてるよ」と質問している人がいた。
CentOS の野良レポジトリで、Xen の「実験」版の扱いなので、ファイル内容など変動するのは勘弁、とのことだった。
Xen を深く理解していれば…最悪の話、カーネルビルドから始めれば解決できるかもしれない。
しかし、そこまで深い知識は持ち合わせていないし、目的はそこではない。
CentOS 7 に Xen を入れた、という記事はほかにもあったのだけど、もっと面倒な方法ばかり。
ここにきて、CentOS 7 を諦めることにする。
今度は CentOS 6 を試す。
少し古いバージョンになるが、まだサポート期間中だ。
#CentOS 5 だってサポート期間中。
先に書いたが、標準仮想化ソフトは KVM 。でも、Xen もインストール可能、とわかっている。
CentOS 6 は RedHat Enterprise Linux 6 のクローンだ。全く同じもの。
しかし、RHEL は Xen をサポートしないが、CentOS 6 は「オプションとして」公式サポートしている。
標準の OS インストールを行い、公式ページを見ながら Xen のインストールを行う。
ここまでで、すでに日曜日の深夜。
Xen のレポジトリはすごく重く、ファイルダウンロードに時間がかかっている。
ここで耐えられず、就寝。Xen インストールはマシンに勝手に続けてもらう。
月曜日…今日だ。
Xen はインストールできていたようなので、その他もろもろの設定。
LVM 上に仮想マシン用のボリュームを用意して、その内部をパーテションで切って…
ここら辺は個人の環境の話で、他人と共有できるノウハウなどではなくなってくるので割愛。
CentOS 6 も、X window はまだ動いていない。
CPU 内蔵のグラフィックチップをうまく認識しない、とわかったので、最初から入れてないの。
仮想化サーバーを動かすための土台だから、別にこれでいいんだけどね。
同じテーマの日記(最近の一覧)
関連ページ
CentOS5+Xen3 から CentOS6+Xen4 への引っ越し【日記 15/12/18】
別年同日の日記
09年 「その文字」はインターネットで使ってはいけないのか?
申し訳ありませんが、現在意見投稿をできない状態にしています。 |