こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

至急お願いします linux centos 外付けhdd

内蔵のhddが余っているためhddケースを購入し、外付けhddとしました。このhddにcentosをインストールし、自宅のpcのbios画面からusbブートを行うと

grub

と出てとまってしまいます。自宅のpcにはubuntuとfedoraをデュアルブートしております。これはどうしてでしょうか??

centosのインストール時にブートローダーは 「高度なブートローダーオプションの設定」を選択し、外付けのhddに設定しました。

個人的にはブートローダーが2つあるのでこのような現象が起きているのか?と思っているのですが。。

あと疑問点としてはosを1つインストールしている状態でブートローダーというものは必要なのか?
それとこの外付けhddを持ち歩き、usbブートできるpcからブートしてみたいのですが、ハードがコロコロ変わっても対応できるものなのかお聞きしたいです。

投稿日時 - 2009-09-03 19:56:47

QNo.5260208

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

パソコンの機種が分かれば、デバイス名の設定の想像はできるのですが。
CentOSは、内蔵HDDをIDE接続を基本としていますので、
内蔵HDDがIDEのときは、hdaとなります。
SATAの場合は、sdaとなります。
これらの命名は、BIOSからの情報を下に、各OSにより変わり、
LINUXの中でも、FedoraやUbuntuの最新のバージョンでは、
SATA接続を基本にしているため、
CentOSとは、逆になることは、3OSをインストールされている貴殿は、
お分かりになっていると思います。
そこで、外付けUSB接続のHDDの命名の規則が問われることとなります。
よって、MBRに書かれたものと、/boot/grub/grub.confに書かれたものを一致させる必要があることはお分かりだと思います。
この辺を考慮して再インストールしてみるのも良いかもしれません。
BIOSの起動順位を、
1位 CD/DVD-ROMデバイス
2位 外付けUSB接続HDD
3位 内蔵HDDになるかと思います。
とした後で、インストールを試みるということです。

ただし、回答1で書いたとおり、現在のgrub.confの内容から、
上記のことも考慮して、変更をかけてみることが先であると思いますけど。

投稿日時 - 2009-09-04 08:30:46

ANo.3

(hd0,1)と言った記述はGRUBで使われるもので
いくつめのHDDであるかを、0から数えたもので…
GRUBだけがロードされている状態であるために
BIOSから認識されたデバイス順そのものです。

そういう意味では、BIOSが認識するFDやCD以外の起動デバイスで
それがIDEでもSATAでもSCSIでもUSBでも同列に扱われます。
従って(SD1,0)といった記述はありません。

このBIOSが認識する順番は、BIOS設定で変動する可能性があり
現実的には、USB機器を一定の位置で使うことはできないと考えられます。

GRUBをUSB-HDDに入れたことが無いので、細かいところは知りませんが…
CD起動の設定でインストールし、USB起動するように設定変更すれば
その時点でGRUBからのHDD認識が変わってしまっている気がします。

つまり…起動処理がミスディレクションで頓挫している状況です。
一つは、MBR上のGRUBが、どのHDDのどのパーティションのGRUB設定ファイルを参照するか?
二つめ、読み出した設定ファイル中のroot指定が適切になっているか?
この二点が起動できない原因になり得るはずです。

たぶん、起動デバイス優先順が内蔵HDD優先のままでインストールして
その後USBから起動しようと設定変更してひっかかっている気がします。
GRUBからの起動で止まるのは三種類あって…

1.GRUBとかGとかGRで止まるのは、昔よく見たけど最近のPCでは珍しいのかな…
2.GRUBが起動しGRUB設定ファイルが読み込まれるけど、メニューからの起動操作が意図どおりに行なわれない。
3.grubで止まるのは正確には"grub>"で止まっているはずで、それGRUBコンソールのプロンプトです。
GRUBがロードされ、その設定ファイルが読み出せない場合GRUBコンソールで待機します。

GRUBコンソールまで動けば、OSの起動は可能で、最低限
grub>root (hd0,0)
grub>kernel /boot/vmlinuz[TAB]
([TAB]はTABキーによる補完で、実際に存在するファイル名が読み込まれる)
grub>boot
で起動処理が始まるんじゃないかと思います。
(こんだけの設定だと、カーネルパニックで止まる可能性が高いんですけどね)


ともかく、たぶん、grub-installのやりなおしだけど…よくわかんない。

BIOS設定でUSB-HDD最優先にした上で、HDDを無くして
F12とかでLiveCDから起動して、USB-HDD上のrootを指定して
grub-installすると直んないかなぁ…

それか、USB-HDD最優先設定にしてから再インストール。
その設定でインストールしたのにうまくいかないなら
いっそGRUBをPBR(つまり/dev/sda1とか指定)に入れて
USB-HDDのMBRにはMBMを入れておく手もあります。


二つめの問題は、まぁ、USB起動ができるように
BIOS設定を変更できて正常にGRUBを起動できるところでなら
GRUBのメニューで、rootオプションの記述を変更したり
GRUBコンソールから手作業で起動すれば済む話です。
ただ出先で使うなら、コンソールから行なうべき操作を、携帯電話のメールにでもいれておかないと、暗記しておくのは難しい。


なお、パーティション(ボリューム)をマウントする場合
認識順の違いが大きな問題になりやすいので…
/etc/fstabもGRUBの設定ファイルも、/dev/sda1とか/dev/hda1ではなく
UUIDで指定するのが最近の潮流だったりします。
Ubuntuだと標準でそうなります(CentOSの場合は知らない)

パーティションのUUIDはフォーマット時に生成されるもので
ddコマンドでパーティションの複製をした場合以外は
重複することはありません。

UUIDはvol_idコマンドをroot権限で行なえば確認できます。

でもGRUBコンソールからの指定でUUID使ったことはありません(笑)

投稿日時 - 2009-09-04 00:11:08

ANo.2

LiveCDでなくても、FedoraやUbuntuからでも変更できますね。
fstabで定義しておき、/media/sda1とかでできましたね。
失礼しました。

投稿日時 - 2009-09-03 23:22:22

ANo.1

LiveCD起動のKNOPPIX等で、CentOSの/boot/grub/grub.conf
(menu.lstだったか失念)を見て、変更かける必要があるかもしれない。
インストールのときと、ブート時で、デバイス番号が変わる可能性
があるためです。
具体的には、/dev/sda/が、/dev/sdb/になったりします。
パソコンの構成により、変わる可能性があります。
grub.confの、
root (hd0,1)
部分がなんとなっているかです。
おそらく、
root (sd0,0)
といった値ではないかと思います。
これを試しに、
root (sd1,0)
に変更してみてうまくいくかどうかです。

> あと疑問点としてはosを1つインストールしている状態でブートローダーというものは必要なのか?
一つであろうと、二つであろうと、起動に関してのブートローダは、
必要です。

> usbブートできるpcからブートしてみたいのですが、ハードがコロコロ変わっても対応できるものなのかお聞きしたいです。
上記のとおり、ハード構成により、変わります。
構成を見て、上記のような変更する必要がでてくるでしよう。

これらのことは、WEB検索すると結構たくさんヒットし、いろいろ起動に関しては、難しい部分があります。
map命令により、デバイスアドレスの交換を必要とする場合もあります。
場合により、その手続きは異なり、確実に知識取得しておかないと無理です。

投稿日時 - 2009-09-03 23:07:07

あなたにオススメの質問