質問: Fedra Core15をインストール後に、ハードディスクを1台増設しました。 DEBUGシェルのプロンプト画面になり、GUIが立ち上がりません。 LINUX側の設定方法を教えてください。 LINUXはSCSIでWINDOWSはS-ATAですがこれも関係あるのでしょうか? 当方、業務でUNIXコマンドを少し叩ける程度のレベルです。 HDDを指定して/etc/fstabにマウントすればよいのでしょうか? よろしければ、推奨の参照サイト等教えていただければありがたいです。 何度かこのようなサイトで質問したことがありますが、主旨に合わない回答などがけっこう目につきます。意味のない書込みはご遠慮ください。 何卒よろしくお願いいたします。m(..)m
回答: まぁ、MS-DOS,OS/2,Linuxくらいしか常用したことないし 超漢字は動かしただけで、FreeBSDはXまで辿りつけなかったんだけど... どんだけ、OSを理解しても パソコン自体を理解しないと、メンテナンスはできないと思います。 前提として、Fedoraが動くハードウェアはIBM PC/AT互換機とPowerPC機がありますが IBM PC/AT互換機という前提で言うと、Linuxでは一般的にSCSI機器もSATA機器も SCSIエミュレーションを介して認識するので、/dev/sda,/dev/sdbといった デバイスファイル名が与えられます。 DEBUGシェルというのが、Dropping to debug shell.というメッセージを見てというのであれば 十中八九、追加HDDの物理的な接続位置(ハードウェアレベルの論理的位置)が 好ましい位置に無く、OSの起動を妨げている状態だと思います。 増設したのが、SCSIなのかSATAなのかは知りませんが カーネルが認識した順番が、Fedoraの入ったHDDより先になっていると考えられます。 なお、Linuxでは初期化のタイミングの違いで、複数のストレージコントローラーが 順番が入れ替わる現象がおきるようです。 (うちの録画サーバーではPCIe SATAカードと内蔵SATAの間でおきる) ですから、同じストレージコントローラーの、優先順の高いポートにFedoraのシステムディスクを置くのが理想。 ただ、たぶん状況は、SATAが先に認識されて、後からSCSIが認識されている状態で かつSATAに追加HDDが入ったんじゃないかと思います。 こうなるとGRUB2設定を書き換えないなら、起動ラムディスクイメージ(initramfs)の中のカーネル及びカーネルモジュールで SATAポートを認識しないようにする方法しか知りません。ただ、非常に煩雑です。 認識順を指定する方法もあるような気がしますが知りません。 なおinitramfsは、BIOSレベルのHDDアクセスで読み込まれ、その中のカーネルが起動し デバイスドライバーなどを読み込んで、最終的にデバイスドライバー管理下のHDDへと ルートディレクトリーの遷移を行なうという仕組みで使われています。 これがあるから、Windowsのように、延々再起動を繰り返すようなトラブルが起きにくいのですが 遷移すべきルートファイルシステム(のパーティション)を認識できない場合には initramfsの中に組み込まれているbusyboxが起動され... つまり、これがDropping to Debug Shell.というメッセージと共に現れるわけです。 もちろん、GRUB設定を書き換えて、ルートファイルシステムを指定すれば起動できるはずです。 ただ、追加したHDDを外すと、逆のかたちでやはり起動不能になるはずです。 根本的には、正しい認識を強制的に指定する方法を探すというものだと思います。 なお、こういった認識順の問題は、Windowsではドライブレターの変化として表れますが Linuxでは、指定しないパーティションは自動マウントされたりしないので 指定しない段階では起動に影響を与えることがありません。 ただ、指定方法として「二つ目のSCSI HDDの1つめのパーティション」みたいな指定方法をしていると つまり/dev/sdb1といった指定をしていると、認識順の変化で 指定したつもりのパーティションと、実際に選択されるパーティションが食い違うので こういったトラブルになります。 これを回避する手段として、現在ではパーティション(ボリューム)のmkfs(フォーマット)で生成される UUIDを使った指定が普及しています。 たとえば、Ubuntuのデフォルトの/etc/fstab記述はUUID指定ですから うちのように、認識順が勝手に変わる構成でも、安定して正常起動できます。 ただ、Fedora環境が既にUUID指定になっているなら、問題は別にあるのかもしれませんし FedoraではUUID指定を利用する上での、何らかの技術的問題があるのかもしれません。 まぁSCSIカードが入っていたりしない環境でなら 普通にUUID指定での起動例があるので、普通にできそうですけどね。 なお、UUIDはmkfs時に生成されるようなので、ddでのディスク複製を行なうと システムに同じUUIDのファイルシステムが複数存在する状況が生まれます。 逆に、ルートパーティション拡大時に、mkfsしてcp -Aして起動ディスクを作った場合 UUID指定では、起動不能になります。 FedoraがデフォルトでUUID指定を使っていないとしたら、理由はここにあるんだと思います。 UUID指定でも、GRUB2設定を書き換えれば、HDD交換時の対応は可能です。 UUIDはroot権限で、blkid /dev/sdb1といった指定で確認できます。 デバイスファイルとHDDの対応はsysディレクトリーから調べたり hdparm -i /dev/sda|grep Modelといった手法で確認できます。 同じHDDを複数使っていると、厄介ですけどね。