2011-10-23 14:14:34 +0000 2011-10-23 14:14:34 +0000
52
52

GRUBを使ってUSBからブート

私の友人のラップトップは、交通事故にあった (彼は元気です!). しかし、そのラップトップは非常に古いもので、Acer Aspire 1520で、CD-ROMドライブは壊れていて、フロッピードライブはありません。

私は彼にUSBブートを作成しましたが、私はそれを見てみて、彼のBIOSはUSBからブートすることができないことがわかりました。唯一持っているのはGRUBコンソールなのですが、彼はXPをインストールして(USBで)ムービーだけに使いたいと意気込んでいます。

GRUBコンソールを使ってUSBにアクセスしてwindowsのインストールを開始することは可能でしょうか?難しいですが、この方法か、LAN経由でインストールしようとするか、どちらかだと思いますが、実現できないと思います。

回答 (6)

45
45
45
2014-09-13 03:30:00 +0000

以下に、動作する可能性のある grub コマンドの簡単な例を示します。

grub2

grub

(<deviceName>,<partitionIndex>)

2010年以降のインストールの場合がほとんどです。

set root=(hd1,1)
chainloader +1
boot

2005-2010年の期間については、あなたの推測が正しいと思いますが、間違ったバージョンのコマンドを使用した場合、最初のコマンドでは無害な構文エラーが発生するだけです。

正しいルートの選択

起動時に、grub はデバイスを探索し、それらに番号を割り当てます。パーティショニングされているすべてのデバイス(ハードディスクやフラッシュドライブ)にも番号が割り当てられます。フォーマットは grub2 です。hd0ではパーティションインデックスが変更されたので、上の2つの例では、異なるルートを使用しているように見えますが、同じ効果が得られます。

最初のデバイス (hd) は、Grub から読み込まれたデバイスのいずれかです。その後は、通常、すべての内部デバイスが外部デバイスの前に来ると考えることができます。これらのデバイスはほとんどの場合、0x6&と数字の形をしています。

カンマの後はパーティションインデックスです。ハードディスクとサムドライブはほとんどの場合、パーティションが設定されているので、正しい(可能性の高い)パーティションを選択しなければなりません。CD-ROM は通常、パーティションが設定されていません。

その他のドキュメント。 http://www.gnu.org/software/grub/manual/htmlhttp://www.gnu.org/software/grub/manual/html_node/Device-syntax.html

ルートパーティションを選択するとき、Tabキーを使ってデバイス名とパーティションインデックスを調べることができます。括弧を開いてTabキーを押し始めるとリストが表示されます。

14
14
14
2011-10-24 16:34:02 +0000

new123456さんのコメントを詳しく説明すると

USBデバイスは大容量ストレージデバイスとして検出され、ハードドライブと同じように扱われるはずです。そこで、grubでroot (hdと入力して(Enterはまだ押さないでください)、タブを1回か2回押して、Grubがどのようなハードドライブを見ることができるかを確認してみてください。USB デバイスが認識されていれば、おそらく hd1 になるでしょう。パーティション番号は指定しないでください。つまり、この行は root (hd1) となります。その後、次のように入力します。

chainloader +1
boot

それでもダメなら、root (hd1)root (hd1,0) に変更してもう一度やってみてください。

何らかの理由で Grub が USB ドライブを見ることができない場合は、USB CDROM を接続して起動してみてください。

8
8
8
2014-09-21 20:04:18 +0000

chainloader +1は、BIOSがUSBキーからの起動を得意としていない場合には動作しないかもしれません(それが、とにかくGrubを使いたかった理由です)。

この場合、 https://help.ubuntu.com/community/Grub2/ISOBoot には、少なくともUbuntuのために動作するいくつかの深い魔法があります。重要なのは、vmlinuzのファイルを識別するgrubコマンドにiso-scan/filenameの引数を渡すことです。どういうわけか、それはブートファイルシステム全体がISOファイルに詰まっていることを理解するのに役立ちます。これがどのように動作するのかはわかりませんが、動作しています。以下は私が使用した(おおよその)Grub 2コマンドです。

loopback loop (fd0,msdos1)/path/to/iso/file
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/path/to/iso/file noprompt noeject
initrd (loop)/casper/initrd.lz
boot

/path/to/iso/file は USB キーの ISO ファイルへのパスです。(fd0,msdos1)はUSBキーを識別します。タブ補完は loopback 行では非常に役立ちますが、vmlinuz への引数には役に立ちません。

2
2
2
2015-05-08 14:44:49 +0000

これはお友達のケースではあまり役に立たないと思いますが(私が知らない方法でデバイスに plop をインストールする方法がない限り – たぶん usb cd-rom や usb フロッピードライブでしょうか?)、これは素晴らしい小さなアプリケーションで、古いマシンの BIOS が許可していないときに、いくつかの古いマシンを usb から起動させるのに役立ちました。 Plop Boot Manager

1
1
1
2020-02-13 00:41:30 +0000

EkevooかJonathanの投稿にコメントとして残そうと思っていたのですが、許可されていないので、これに遭遇する可能性のある人のために、私のユースケースと解決策を紹介します。

USBにはGPart Live CDがインストールされていましたが、以前は動作していたにも関わらず、BIOSが何らかの理由で起動しませんでした(前回はwindows経由でCDをインストールしましたが、今回はUbuntu経由でインストールしました)。Grubで以下のコマンドを実行したところ、

set root=(hd0)

これはデバイスによって異なるかもしれませんが、必要なのかどうかはわかりません。

chainloader (hd0)/EFI/BOOT/grubx64.efi
boot

と実行してみた。タブで探してみてください。

0x1&

と実行してみたら、これだけで動作しました。

0
0
0
2014-06-27 01:17:34 +0000

バイオスがそれ自体を許可していない場合、grubではusbから起動することはできません。私は以前、win7セットアップディスクの内容が入ったハードディスクにリカバリーパーティションのようなものをセットアップして、grubをインストールし、それを使ってwin7セットアップパーティションを起動して残りのハードディスクにインストールしたことがあります。

関連する質問

6
10
5
37
11