- ベストアンサー
USBメモリ起動のgrubでの内蔵HDDの指定方法は?
- ノートPCに接続したUSBフラッシュメモリにUbuntuをインストールし、そのUSBメモリから起動できるようになりました。内蔵ハードディスクにインストールされたWindowsを起動するためのデバイス指定がわからず、(hd1)とかを指定しても起動できません。
- 内蔵ハードディスクの指定方法についてアドバイスをお願いします。なお、「内蔵ハードディスクのMBRを書き換えてはならず、grubをHDDのMBRに書き込んではならない」という条件があります。
- USBメモリ起動のgrubで内蔵HDDを指定する方法を教えてください。
- みんなの回答 (14)
- 専門家の回答
質問者が選んだベストアンサー
hd1は第2ハードディスクになりますね。 Windowsは第2ハードディスクからはブートしないうようです。 grub > map (hd0) (hd1) grub > map (hd1) (hd0) grub > root (hd1,0) grub > makeactive grub > chainloader +1 grub > boot でWindowsが起動しませんか? コマンドのスペースも正確に入力して下さい。
その他の回答 (13)
- yakan9
- ベストアンサー率54% (2244/4125)
map命令で入れ替えることは気が付かなかったな。 USBメモリの中でもMBRを曲げていたわけですね。 どうも失礼しました。 あのURLにはそこまでのことはなくて、別な回避策を書いていました。 USBメモリそんなに安いのを見つけましたか。 10,800円近くすると思っていました。
- yakan9
- ベストアンサー率54% (2244/4125)
ANo.9の補足を見る限りだめですね。 環境がないので、確かめられずにすみません。 私も後学のため、8GBのUSBメモリを購入したくなりました。 大きな電気店でどの程度で買えるのかな。
お礼
yakan9様、いろいろとありがとうございます。 投稿しましたように、grubのmap命令でドライブ順を入れ替えてWindowsインストールディスクを第1ドライブにすれば起動できるようです。 8GBのUSBメモリは、3週間ほど前にドスパラという大きな電気店ではないですが、わりとメジャーなPCショップで4千円ほどで買いました。 2008年4月30日
- yakan9
- ベストアンサー率54% (2244/4125)
>> USBメモリを使用したWinXPとubuntuとのデュアルの方法 >> http://forum.ubuntulinux.jp/viewtopic.php?pid=9533 > 申し訳ありませんが、上記2サイトのどの部分が関連するのか、 > よくわかりませんでした。 ここの下記のところが関連すると思いました。 >>> 但し、インストオプションでadvanceにて(hd1,0)とした。>>>> です。 そこで、ANo.6で、 「既定値では、hda1=(hd0,0)のところを、hdb1=(hd1,0)とすれば 良いようです。」 と書きました。 それにしたがって、貴殿は、インストールをやり直しました。 それから、ANo.9,ANo.10とつながる訳ですが。 さて結果はどうでしたか。
- yakan9
- ベストアンサー率54% (2244/4125)
ANo.6 ANo.7の記述を省略したのがまずかったのでしょうか。 省略しないで書きますと次のようなことです。 USBメモリにUBUNTUをインストールする際、既定値であるhdaで行うと、 パソコンのHDDと同じ名前となり、本来一意的でなければ ならないのがここで崩れてしまう。 そこで、USBメモリにUBUNTUをインストールする際、 既定値であるhdaでなく、hdbとすることで名前が重ならないようした。こうすることで、両方を同時に認識できるデザインを 取ったということです。 すなわち、パソコンのHDDは、今までどおり、hda=(hd0,0) USBメモリは、hdb=(hd1,0)という名前をつければ、両方認識 できるということです。
- yakan9
- ベストアンサー率54% (2244/4125)
ANo.5の補足を読ませてもらいました。 ANo.6の補足も読ませてもらいました。 ここで整理したいと思います。 1.共有で使用されているパソコンは、HDD1台で80GBですね。 2.貴殿が使われているUSBメモリは、8GBですね。 > Ubuntu-Live-CDを起動してUSBにインストールをする際、 > grubのインストール先には(hd1)を指定することで、 > USBメモりのMBRに書き込むことができました。 > インストール後は、"root (hd0,0)"と指定することで > インストールしたLinuxをUSBメモリから起動できました。 の >> インストール後は、"root (hd0,0)"と指定することで の部分は正しいでしょうか。 このあと、USBメモリの /boot/grub/grub.confのWindowsXPの起動は下記のように修正して 試されましたか。 root (hd0,0) chainloader +1 でだめだったのでしょうか。
補足
yakan9様、ありがとうございます。 >>> インストール後は、"root (hd0,0)"と指定することで > の部分は正しいでしょうか。 既に書いていますが、 (1)Ubuntuのインストール作業時に(hd1)を指定することでUSBメモリのMBRにgrubが書き込まれます。 (2)Linux起動時に、grubに "root (hd0,0)" と指定することで、パソコンがUSBメモリのMBRを読み込み、そしてUSBメモリの第1パーティションのカーネルを読み込んでUbuntu Linuxが正常に起動します。 (3)上記の(hdx)の指定は一見間違っているように感じられるかもしれませんが、間違いありません。 > /boot/grub/grub.confのWindowsXPの起動は下記のように修正して > 試されましたか。 > root (hd0,0) > chainloader +1 この場合、"Invalid or unsupported executable format" というエラーになります。 2008年4月27日
- egz
- ベストアンサー率31% (6/19)
grub-shellのTabkey補間機能を使えば解かると思います。 USBメモリからブートしてgrubが起動し、grub >の画面になれば root (h まで入力してTabkeyを押すと選択可能なものが表示されるのでWindowsと思われるものを選ぶ。 grub > root (hd1, ここでTabkeyを押すとPartition num:0 Filesystem type unknown partition type 0x7 など選択可能なものが表示される。 partition type 0x7がWindowsと思われるのでnum:の後の数字を入力する。 grub > root (hd1,0) grub > makeactive grub > chainloade + 1 grub > boot うまくWindowsが起動すればUbuntuのgrubのメニューに追加する。
お礼
egz様、ありがとうございます。 "grub > root (" の場面でtabキーを押したところ、 Possible disks are : fd0, fd1, fd2, fd3, fd4, fd5, fd6, fd7, hd0, hd1 と表示されました。 hd0を選んでtabキーを押すと、USBフラッシュメモリ内のパーティションと同じ構成のパーティション一覧が表示されましたので、hd0がUSBフラッシュメモリと判断しました。 hd1を選んでtabキーを押すと、内蔵HDD内のパーティションと同じ構成((hd1,0)しかない)のパーティション一覧が表示されましたので、hd1が内蔵HDDと判断しました。 次のgrub設定で起動しようとすると、"Starting up ..."と表示されてハングアップしました。 root (hd1,0) makeactive chainloader +1 このPCは共用であり、別の管理者がインストールをしています。 私の結論は、「hd1が内蔵HDDである。Windowsは電源起動後すぐに普通に起動しているが、共用PCであることから、MBRに何らかの細工がなされているのではないか」です。 2008年4月27日
- yakan9
- ベストアンサー率54% (2244/4125)
> 「内蔵ハードディスクのMBRを書き換えてはならず、 > grubをHDDのMBRに書き込んではならない」というのは、 > 「使っているPCが自分専用のものでなく共用のもので、 > MBRを含めHDDに勝手な書き込みをしてはならない。 > でも、自分が使っている時にLinuxを使いたい」というためです。 分かってみれば、簡単な理由でしたね。 HDDのマスターのMBRをそのままにということは、USBメモリを、 スレーブにしておけばよいだけです。 スレーブもあるとすれば、hda,hdb,hdcといった、定義のない 部分を見つけるだけでしょうか。 ここまで理解できていれば、USBメモリにubuntuをインストール する際のオプション指定は、気をつけていればすぐに分かりますよね。 たぶんUSBメモリのパーティションを切るときに、hdaか、 他に候補が挙がっているかと思いますが、如何でしょう。 大変勉強になりました。ありがとうございました。
- yakan9
- ベストアンサー率54% (2244/4125)
非常に面白いブートローダを利用していますね。 後学のため、少しubuntuの日本語フォーラムを覗いてみました。 やはり特殊なことをやっていますね。 通常は、HDDのMBRから起動するところ、 BIOS →HDDのMBR → Windows BIOS →USBメモリ → USBメモリのMBR という方式を取っています。 ここで、USBメモリのMBRをインストールのときに、変更を 加えなければならないようです。 既定値では、hda1=(hd0,0)のところを、hdb1=(hd1,0)とすれば 良いようです。 詳しくは、下記を見て参考にしてみたらよいと思います。 日本語フォーラム http://forum.ubuntulinux.jp/ USBメモリを使用したWinXPとubuntuとのデュアルの方法 http://forum.ubuntulinux.jp/viewtopic.php?pid=9533
補足
yakan9様、ありがとうございます。 > ここで、USBメモリのMBRをインストールのときに、変更を > 加えなければならないようです。 > 既定値では、hda1=(hd0,0)のところを、hdb1=(hd1,0)とすれば > 良いようです。 Ubuntu-Live-CDを起動してUSBにインストールをする際、grubのインストール先には(hd1)を指定することで、USBメモりのMBRに書き込むことができました。 インストール後は、"root (hd0,0)"と指定することでインストールしたLinuxをUSBメモリから起動できました。 > 詳しくは、下記を見て参考にしてみたらよいと思います。 > 日本語フォーラム > http://forum.ubuntulinux.jp/ > > USBメモリを使用したWinXPとubuntuとのデュアルの方法 > http://forum.ubuntulinux.jp/viewtopic.php?pid=9533 申し訳ありませんが、上記2サイトのどの部分が関連するのか、よくわかりませんでした。 2008年4月27日
- yakan9
- ベストアンサー率54% (2244/4125)
fdisk -l /dev/xxx としないで、 fdisk -l だけのときは、どんな状態でしょう。 この状態での認識が、正しいのだと思います。 調査の仕方として、USBメモリで起動した場合は、そのときのそのOSの 認識を正しく把握することであって、fdisk -l /dev/xxxと 先入観だけで入力した時点で、曲げられています。 やってみる環境がないので確証はないのですが、 特殊な認識をしていると思います。 あと、rootになって、gpartedでの認識も可能ではないかと思います。 もしかすると、USBメモリの認識を、シンボリックリンクで 逃げている可能性が高いのではないかと思います。 この場合は、USBメモリの中だけで、hda=USBメモリ としての認識かも知れないです。 USBメモリの中だけで閉じているのではないでしょうか。 もしそうであれば、外へのアクセスはできない仕様で、 基本的に無理なことをやろうとしているだけなのかもしれません。 > # fdisk -l /dev/sda で内蔵IDE-HDDが表示される。 > root (hd0,0) では "Invalid or unsupported executable format" > となる。 ANo.4の補足を見る限りでは、この説のようです。 メーリングリストでご自分で調べてみればよいでしょう。 試すとすれば、swapファイルをHDDにおくとインストールエラーに なったりしないかです。 インストールエラーにならなけば、/etc/fstabの スワップファイルの定義を見るとか。 ubuntuは、Linuxの中でも特殊ですから、どんな仕様か不明です。 このところ良く登場するようになったディストリビュション ですね。 rootでの操作が、面倒なのと、 rpmパッケージ管理に独自の加工をしているのは、 debianと同じです。 本来の操作から、危険な部分を取り除き安全策を取り込んで いるため、一つ手間がかかって使いづらいですね。
お礼
yakan9様、ありがとうございます。 fdisk -l の結果は次のとおりです。 # fdisk -l Disk /dev/sda: 80.0 GB, 80026361856 bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x03090309 Device Boot Start End Blocks Id System /dev/sda1 * 1 9728 78140128+ 7 HPFS/NTFS Disk /dev/sdb: 8120 MB, 8120172544 bytes 255 heads, 63 sectors/track, 987 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x434f4475 Device Boot Start End Blocks Id System /dev/sdb1 * 1 13 104391 83 Linux /dev/sdb2 14 622 4891792+ 83 Linux /dev/sdb3 623 659 297202+ 82 Linux swap / Solaris /dev/sdb4 660 987 2634660 5 Extended /dev/sdb5 660 666 56196 83 Linux /dev/sdb6 667 862 1574338+ 83 Linux /dev/sdb7 863 987 1004031 b W95 FAT32 シンボリックリンク云々以下の御助言は、恥ずかしながら私の理解を超えています。 ただ、root (hd0,0) では "Invalid or unsupported executable format"というのは、ext3パーティションを指定してWindowsを起動しようとしたから表示されたエラーではないかと思います。 2008年4月27日
- yakan9
- ベストアンサー率54% (2244/4125)
hda1=(hd0,0) hda2=(hd0,1) hda3=(hd0,2) とパーティション名と、grub.confの内容は対応しています。 このことからでも、分かっていただけると思います。
補足
yakan9様、ありがとうございます。 当方の状況は次のとおりです。 (1) Windowsを内蔵IDE-HDDにインストールしたパソコンで、USBフラッシュメモリに書き込んだgrubから、USBフラッシュメモリの第1パーティションに書き込んだ/bootを読み込んで起動する場合、grubの記述が "root (hd0,0)" でLinuxが起動する。 (2) USBフラッシュメモリから起動したLinuxでは、 # fdisk -l /dev/sda で内蔵IDE-HDDが表示される。 # fdisk -l /dev/sdb でUSBフラッシュメモリが表示される。 # fdisk -l /dev/hda では何も表示されない。 # fdisk -l /dev/hdb でも何も表示されない。 (3) 内蔵IDE-HDDのWindowsを起動しようとすると、 root (hd0,0) では "Invalid or unsupported executable format"となる。 root (hd1,0) では "Starting up ..."と表示されてハングアップする。 root (sd0,0) では "Error while parsing number"となる。 root (sd1,0) では "Error while parsing number"となる。 いずれの場合も、root (xxx,0)行の次の行は "chainloader +1"としている。 (4) BIOSで内蔵IDE-HDDからの起動を指定したり、USBフラッシュメモリをPCから外して起動したら、Windowsが起動する。 上記の状況で、USBフラッシュメモリをPCに取り付け、USBフラッシュメモリに書き込んだgrubからWindowsを起動するには、grubにどのように指示すればよいでしょうか。 2008年4月24日
- 1
- 2
お礼
egz様、ありがとうございます。 御助言の内容でUSBメモリのMBRに書き込まれたgrubから内蔵HDDのwindowsを起動できました。 grubのmap命令を新たに勉強できました。 Windowsは第1ドライブからしか起動しないのですね。インストールではHDDのMBRを勝手に書き換えたりするし、Windowsはなかなか扱いにくいですね。 2008年4月30日