『HDD増設後のLINUXの設定に関して』

Fedra Core15をインストール後に、ハードディスクを1台増設しました。 DEBUGシェルのプロンプト画面になり、...

vaidurya さんからの 回答

  • 2011/11/25 22:32
  • 回答No.3
vaidurya

ベストアンサー率 45% (2709/5974)

まぁ、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を複数使っていると、厄介ですけどね。
この回答にこう思った!同じようなことあった!感想や体験を書こう!
この回答にはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
関連するQ&A
  • リナックストWindows2000のデュアルブート環境が再現できません... その他(OS)

    ついこないだまで次のような構成でLinuxとWindows2000を使っていました。 1.IDEのハードディスク:Windows2000 2.SCSIのハードディスク:Windows2000とRedhatlinex7.1 Windows2000をIDEとSCSIの両方に入れているのは、IDEの方はMBRだけ使ってSCSIの方で速いWindows2000を使うためです。(なんかもっといいほうほうがあるのかな。) さてさて問題が生じたのはこれからです。Windows2000で「ディスクの管理」をいじくっているときに、まちがえてLinux領域とスワップ領域を削除してしまいました。幸いその領域には大事なデータは置いてなかったのですぐにLinuxをインストールしなおすことにしました。しかし今回はインストーラーに従っていくとSCSIのハードディスクの情報を読み込むのにエラーが発生してIDEのハードディスクにしかLinux領域を作成できないのです。最初にインストールしたときはそんなことなかったのに…。 IDEのハードディスクは遅いのでどうしてもそっちにインストールする気にはならないので、なんとかSCSIにLinux領域を作成できるようにしたいのですがどうすれば問題を解決できるのでしょうか? よろしくお願いします。...

  • Vistaを再インストールしたらLinuxが起動しない Linux系OS

    色々調べましたが、解らなかったので質問させてください。 ・VistaとLinux(CentOS)のデュアルにしていて、(ハードディスク2台)  Vista側が動きがおかしくなり、Linux側のハードディスクを外して、  Vistaを再インストールしたら、Linuxが起動できなくなりました。  Vistaを立ち上げてコンピュータを参照してもWindows側のハードディスクしか認識していません。  コントロールパネル→コンピュータの管理→ディスクの管理を見ると、  Linux側のハードディスクを認識していますが、ボリューム名に何も表示されていません。  (Windows側のボリューム名はC:です)  ※BIOS側では認識しています。    Linux側のハードディスクには色々データが入っているので、  再インストールは出来れば避けたいと考えています。  そもそもWindowsとLinuxをデュアルにしていて、Windowsを再インストールすると、  後から増設したハードディスクは認識しなくなってしまうのですか? 説明が足りなかったらすいません。 どなたか教えて頂けないでしょうか? よろしくお願いします。...

  • windowsで使用していたUSBハードディスク上のwin95拡張領域 Linux系OS

    windowsで使用していたUSBハードディスク上のwin95拡張領域(LBA)をlinuxにマウントしたいのですが、マウントできません。どうすればいいでしょうか。 *基本情報 OS: Redhat EnterPrise WS Release 3 カーネル:2.4.21-57-ELsmp *ディスクの情報 scsi機器として認識はされている様子(下記のscsi2)。 % more /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: HDS724040KLSA80 Rev: KFAO Type: Direct-Access ANSI SCSI revision: 05 Host: scsi0 Channel: 00 Id: 01 Lun: 00 Vendor: ATA Model: Maxtor 6H400F0 Rev: HA43 Type: Direct-Access ANSI SCSI revision: 05 Host: scsi2 Channel: 00 Id: 00 Lun: 00 Vendor: LOGITEC Model: LHD-PBEU2 Rev: 1.16 Type: Direct-Access ANSI SCSI revision: 02 Host: scsi3 Channel: 00 Id: 00 Lun: 00 Vendor: SONY Model: CDRW/DVD CRX330E Rev: MDK3 Type: CD-ROM ANSI SCSI revision: 02 *FDISKによる情報 % /sbin/fdisk -l /dev/sdc Disk /dev/sdc: 159.8 GB, 159832012800 bytes 255 heads, 63 sectors/track, 19431 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス ブート 始点 終点 ブロック ID システム /dev/sdc1 2 19431 156071475 f Win95 拡張領域 (LBA) /dev/sdc5 2 19431 156071443+ 7 HPFS/NTFS *この状態でマウントすると次のようなエラーが出る。 % mount -t ext3 /dev/sdc1 /mnt/A mount: 間違ったファイルシステムタイプ、不正なオプション、 /dev/sdc1 のスーパーブロックが不正、或いはファイルシステムのマウント が多すぎます (aren't you trying to mount an extended partition, instead of some logical partition inside?) なお、マウントポイントである/mnt/Aは予めディレクトリを作ってあります。...

  • 外付けハードディスクへのLinuxのインストー方法。 Linux系OS

    WindowsXPのパソコンをいつも使っています。 このパソコンに、SCSIの外付けハードディスク(4.2GB)を接続し、HDDの中にred Hat Linux9をインストールし起動ディスクとして、Windowsと共存させたいと考えています。 昔使っていた外付けHDDを、いまパソコンに接続し、コントロールパネルの「デバイスマネージャー」からは認識されていることを確認しました。その後、ディスクの初期化を完了したところです。これで、(F)ドライブとして外付けHDDが認識されました。 この後、解説本についているDVDでLinuxをインストールしようとしました。 が、{自動パーティション設定}という項目にチェックを入れて、次の画面に進んだときにインストール先を聞かれる時に、パソコンのHDDのみ表示されて、外付けのハードディスクが表示されないのです。  そこでこのような時の、外付けHDDへのLinuxのインストール方法について知りたいのです。詳しくは分からないのですが、もしかすると「マスターブートレコードの初期化」という処理をする必要があるのかもしれません。これは推測なので、もしここらへん周辺の技術についてご存知の方がおられましたら、その手順などを教えて下さい。 よろしくお願いします。...

  • windowsの再インストールについて その他(インターネット・Webサービス)

    dell社のノートパソコンを買いました。 それにlinuxのfedora core 5をデュアルブートせずに導入してしまいました。 ですがやはりwindowsも利用したいので、dell社のガイドを読みながら再インストールしようとしましたのですが、ディスクをいれて、“press any key to boot from CD...”とでて、そこでキーをおすと、そのまま画面が真っ黒になって止まってしまいます… ちなみに InSpiron710m pentium M プロセッサ755 DDR-SDRAM メモリ 1GB ハードディスクは80GB です。 windowsはバックアップCDが入っていました。 よろしくお願いいたします。...

ページ先頭へ