Palm84 某所の日記

有為のクマにかくれり~

grub4dos usb2.0 driver

Easy2Boot に入ってたので知りました。まだまだテスト版風味ですが試してみましたよ...

これって何

USBブート非対応PCにて grub4dos 上でUSBデバイスを認識可能にします。

つまり、USBブート非対応PCにてUSBブートが可能になります。下記は README_GRUB4DOS.txt より引用。

GRLDR includes usb2.0 drive.

The USB 2.0 driver supports: PCI Device Class 0c/03/20,
namely EHCI (Enhanced Host Controller Interface) devices.

The USB 2.0 driver supports: USB (Universal Serial Bus) Class 08 (Mass Storage devices),
SubClass 06, Protocol 50, that is USB Thumbdrive or Portable External Hard Drives.

Support USB-FDD, USB-HDD, USB-cdrom mode.

In the menu or the command line to load usb2.0 driver: usb --init
Optional parameters: usb --delay=P
P is controlled transmission delay index. 0=General; 1=2*General; 2=4*General; 3=8*General

PLoP Boot Manager との違い

長所は...

  • PLoP と違い書き込み可能なので partnew コマンドが使える
  • USB CD にも一応対応(※ かなり不確実でしたが...)
  • grub4dos 上で認識するのでUSBメモリ内のファイルを直接指定してロードできたりする

短所...

  • Easy2Boot をチェインすると危険!
  • まだまだ不安定かな
  • GRUBコマンドに慣れてないと何がなんだか

usb --init コマンド

Windows 標準MBRブートストラップ NT-IPL ntldr grub4dos 0.4.6a でブートしてます。

Easy2Boot v1.60D に付属の 0.4.6a-2014-11-10 (grldr_046) にて確認。

基本はこんなかんじかな

grub> usb --init
... Scaning USB devices ...
Found 1 USB devices. Device Num: 0x81
grub> rootnoverify (hd1)
grub> chainloader +1
grub> boot

【注】内蔵HDが1台のみの例です。

  • PBR をチェインロード
grub> rootnoverify (hd1,0)
grub> chainloader +1
grub> boot

grub4dos をチェインロードすると 内蔵HD上の menu.lst が表示されてしまったりするので、hd番号の入替してみるとか...

grub> map () (hd1)
grub> map (hd1) ()
grub> map --rehook
grub> rootnoverify (hd0)
grub> chainloader +1
grub> boot

または、menu.lst だけ切替とか。

grub> rootnoverify (hd1,0)
grub> configfile /menu.lst
  • GRUB2 を直接ロード
grub> rootnoverify (hd1,0)
kernel /boot/grub/core.img
grub> boot
  • ファイルを検索して指定する
grub> find --set-root /etc/debian_version
grub> chainloader +1
grub> boot
Easy2Boot は危険

grub4dos から Easy2Boot で作成したUSBメモリをチェインロードするのは危険みたいです。エラーが出ますが無視して続行すると、内蔵HDの「パーティションテーブル sda4 を消しますか?」なんて画面が出ました。わからずに実行しちゃったりすると…がくぶる。

USB CD ドライブのブート

あんまり確実ではないようですが、できればラッキーということで。(´・ω・`)

dynabook SS1610 11L/2 で確認。(※ メーカー指定ドライブではブート可なので全く非対応というわけではないですけど...)

上記の 0.4.6a-2014-11-10 では 0x81 で検出したがブート不可でした。下記は 0.4.6a-2014-01-17 での確認です。

CD-R ではほぼ成功しました。CD-RW や DVD-RW では成功してません。orz

grub> usb --init
... Scaning USB devices ...
Found 1 USB devices. Device Num: 0xff
grub> chainloader (0xff)

Load segment: 0x0       System Type :0x0       Sector Count: 0x4
Load RBA: 0x300 Boot Type: 0 = No Emulation
grub> boot

どないだすか?

ほなまたね。