録画サーバ構築 CentOS7+Win10 デュアルブート編

デスクトップ用途としてsh67h3が2台あるが、1台はCore i7 2600S、もう1台はCore i5 2400S。前者を録画用Linuxサーバ、後者をWindowsクライアントとして使うつもりだが、録画サーバでのエンコード検証のために、i7機の方にもWindowsを入れておきたい。というのも、ハードウェアエンコードの対応状況はWindows方が遥かに充実しているからだ。ついでにコアの違いによる性能差も把握できれば尚よい。PC複数台になり仮想化も当たり前になった中で、デュアルブートなんて何10年振りかという感じだが、難しい設定はないし、ささっと終わらせるつもりだった。

何度か言っている通り、我が家はkickstart+ansibleでLinux構築は全自動。playbookの分岐をいたずらに増やしたくないので例外的なパーティション構成は避けたい。ちょうどSSDが一枚余っていたので、これをi7機に追加して、ディスク2枚でデュアルブートさせる。3.5inchのオープンベイをカードリーダーに使っているため、3.5inchベイは1つしかない。そこでshuttle用の2.5inchディスクを2台搭載可能なPHD3というマウンターを使う。取り付けは簡単だったが、SSDが割りと内側に入り込んでしまうため、電源プラグが下のプレートと干渉して斜めに刺さるような形になってしまう。ちょっと不安だったが起動は問題なかった。

以前作成したLive USBメモリを使ってディスク1にwin10をインストール。その後にkickstartでディスク2にCentOS7を入れたが、grubは動かずにwin10が起動してしまう。手動でCentOS7を入れて、明示的にディスク1にgrubを入れようしたが、そういう選択は存在しなかった。CentOS6以前は入れる場所とか選べて、2枚のディスクにgrub入れたりしてたんだけど。今度は先にCentOS7をディスク1にインストールして、後からwin10を入れてみる。ところが、win10のディスクレイアウトの編集でディスク2を指定してもエラーで進めなかった。若干解せなかったが、とりあえず元の構成に戻す。

sh67h3のBIOSでディスクの優先度を選ぶ方法がこの辺りでわかる。ディスク1を優先するとWindowsが起動するが、ディスク2を優先するとgrubが上がるものの、『grub rescue>』というプロンプトで停止してしまう。適当にぐぐって以下のように手動でgrubを進めてみる。

set prefix=(hd1,msdos2)/boot/grub2
set root=(hd1,msdos2)
insmod normal
normal

これで起動する流れなのだが、画面左上にアンダースコアが点滅するだけで、一向にLinuxが起動してこない。昨日までLinuxは問題なく動いていたのに。。。

最近何1つすんなりいかないなあと思いつつ、切り分けのためにLinuxが入っているディスクのみに戻してみる。この状態でLinuxを再インストールしてみたところ、『attempt to read or write outside of disk ‘hd0’』というエラーで起動しない。今度は同じディスクにwin10を入れてみる。パーティション選択のところで以下のエラーが発生してインストール出来ず。

ディスク0のパーティションをフォーマットできませんでした。
インストール用に選択されたパーティションを準備中に、
エラーが発生しました。エラーコード: 0x80070057

今度は手動でフォーマットしてみたが、同様のエラー。win10のインストール中に『Shift+F10』でDOSウインドウを開けるようなので、DOSで状態を確認してみる。

diskpart
list disk
select disk 0
list partition
select partition 1
list volume
format

これでフォーマットしてみても0%完了のまま、まるで進まない。まさかディスクが壊れたのか。。。

以前のネットワークトラブルがケーブル起因だった事を思い出して1つ1つ確認し直す。まずはSATAポートを変えてみる。マザーボードのSATAポート1に刺さっていたケーブルをポート4に変更。ケーブル交換はしていないし、まあダメだろうなと思いながらインストールを進めると、な、なんとこれだけであっさりwin10を入れる事が出来た。続いてLinuxもインストールしてみるが問題なし。今度はSATAポート2も試してみるが、これも問題なし。もう1度SATAポート1に戻すと失敗。まじかよ。。。SATAポート1に何があったのかわからないが、どうやらこいつが問題のようだ。確かに昨日までは使っていなかったような気がする。全くどこにトラブルあるかなんて本当に読めやしない。しばらくしてから気付いたんだけど、sh67h3のSATAポートはSATA2とSATA3が混在しているので、SATA2ケーブルをSATA3ポートに刺してしまっていたというオチかも。

SATAポート1を避ける事で何の問題もなくなったので、1台目のディスクにCentOS7を、2台目のディスクにWin10を入れてブートローダーはgrubにした。CentOS7はgrub2なので、選択肢にwin10を入れるのは以下のようにする(win10がディスク2にインストールされいてる場合)。

vi /etc/grub.d/40_custom
 :
menuentry "Windows 10" {
     set root=(hd1,msdos1)
     chainloader +1
}

grub2-mkconfig -o /boot/grub2/grub.cfg

但し、GRUB_DEFAULTをsavedにしておいてもwin10の選択は記憶してくれない。つまりwin10起動後に再起動して放っておくとCentOSが起動してくる事になる。自分はそういう動作にしたかったので問題ないが、デフォルトをwindowsにしたい人はgrubだとダメかもしれない。次回こそエンコードの性能検証を!

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)