【私的】USBブート非対応PC用起動フロッピーを作るの巻

2021.4.1 移転しました...
  • このページの旧URLは
    • http://www10.plala.or.jp/palm84/fdboot_liveusb.html

はてなブックマーク

2008.4.6 作成
2008.4.12 設定ファイルとかちょこまか更新
2008.4.13 config.sysとautoexec.batをちょっと訂正 2009.7.2 ドライバ設定等 config.sys やバッチファイルを修正。【合体編】と共通仕様に変更しました(更新が楽になるようにと...)。
2009.7.4 備考注意点関連リンクを整理しました。

ご案内してみたり...
  1. その1 === DOS用USBドライバでUSBデバイスを直接認識
    • 今ここ
  2. その2 === 分割ファイルをコピーした複数枚FDからブート
  3. 合体編 === 【その1】と【その2】を合体
  4. GRUB編 === 【合体編】をFDイメージへ、PLoP Boot Managerを追加

内容が重複しまくっとります。恐れ入り奉りまする。Palm84的【設定ファイル詰め合わせ】については甚だ不完全なのでコロコロ修正すると思います。

2009.7 色々イジリ更新しました。古い版は下記にて。

2008.8.17追記

こんなのありましたー。

上記のページのやつが使えるなら(※USB CDは非対応)、このページに書いてるやつはいらないですね...。orz

下記ページの続きということで。

とりあえず下記のものについて設定を書いてみた。

チェックはしてますけど多少間違いあるかも?ご容赦をば。

あくまでFDしかブート手段がない、あるいはHD上にファイルをコピーできない状態でのお話。ネットワークブート可能ならサーバ上からカーネルをロード、HDへファイルのコピーが可能なら、GRUB(for DOS、またはNTFSパッチなど)起動ディスクでHD(NTFSでもおk!)上のファイルをロードしてブートできますし。

これって何?

USBメモリ、USB CDブートに対応していないPCにて、DOS起動FDからブートして、Linuxローダー(linld.com, loadlin.exe) からUSBデバイス上のカーネルを読み込んでLinux LiveCDをブートさせようというものなのでありんす。

起動の流れはこんなかんじ...

  1. USBドライバを組み込んだFreeDOS起動ディスクでブート
  2. USBデバイスを認識、ドライブレター割り当て
  3. Linuxカーネル(C:\knoppix\linux などを順に)を検索して、見つかったらそのディレクトリへ移動
  4. LINLD.COM(loadlin.exe)でカーネルとinitrd(初期RAMディスクイメージ)をロード
  5. (ミニ)Linuxが起動しUSBデバイスを検出して認識
  6. Linuxルートイメージをサーチしてマウント
参考

ってか、ウチのはWakePUPのやり方のパクリ模倣だったりしませんか?...

相性ありまくりな気がするので芳しくない結果が出ることも少なくはないのですが、私にはとっても必要なものだったりします(古いパソコンばっかり触ってるので...)。

尚、USBカードリーダなど、Winodows上やLinuxで使えてもDOSでは認識できないこともあるので完全ではないということでご注意。FDの枚数が増えて面倒ですが下記の方法が確実だったりしますでなん。

GRUB for DOS

必須ではないですけど、多機能でかなり便利なブートローダーです。追加しとくのもいいかと。grub.exeはFreeDOSから起動できます。

  • BG-Rescue Linux 0.9.1 はFD2枚入替だけで起動
  • INSERT+ 1.2.18 はFD2枚入替 + USBデバイスでも起動
  • Memtestとか
  • ネットワークブート用起動ディスクとして

ダウンロードしておくもの

FDへ直接書き込む
イメージからファイルを取り出し
FDイメージからファイルを取り出すには(イメージをファイルに展開)

下記の Universal Extractor が便利かも。 UniExtract Binary Archive はインストール不要で使えます(日本語表示も可)。

※注意:対象ファイルのパスに‘デスクトップ’など日本語が含まれるとエラーになるみたいです。

FDに一旦書き込むか、展開する、仮想ドライブでマウントするなどしてファイルを取り出しておく

  • xcopy.exe, edit.exe, keyb.exe, keyboard.sys, keybrd2.sys
    • balder10.img(FDイメージなのでFDに書き込むか展開する)
ファイルのダウンロード
Palm84的設定ファイル詰め合わせ

あくまでPalm84的なので内容の保証は全くありません。(汗)

とりあえず、ドライバの設定はPanasonicとNOVACのものを書いてあります。

展開してそのままFDへコピーするだけー

config_files ディレクトリは見本ファイルなので不要です。

GRUB for DOS 関連

必須ではないけど GRUB for DOS も入れるなら下記を追加しませう。

0.4.3.zip(または 0.4.4.zip)をダウンロード(0.4.3の方がサイズが小さいです)。必要なのは grub.exe のみ。

ネットワークブート用カーネル
  • Choose NIC/ROM type
    • gpxe:all-drivers を選択
  • Choose ROM output format
    • LILO/GRUB/SYSLINUX loadable Linux kernel format (.lkrn) を選択
    • [Get ROM] をポチっと
  • gpxe-git-gpxe.lkrngpxe_all.krn にリネーム
Memtest86+ (memtest86+-2.01.bin)

(※最新版の方がいいと思いますけど、旧版はサイズが若干小さいので)【Pre-Compiled Bootable Binary】をダウンロードして展開。ファイル名を memtest にリネーム。。

BG-Rescue Linux 0.9.1

これは(USBブートもメニューに入れてますけど)USBデバイスなしで、FD +2枚でも起動できます。GRUBから起動させます。(vmlinuzinitrd.imgをそれぞれFDにコピーしておく)

FreeDOS起動ディスク

  1. ディスク作成
  2. USBドライバの組み込み
  3. choice.exeでメニュー表示
  4. 起動の流れ

ディスク作成

  1. fdboot.imgRawWrite for WindowsなどでFDへ書き込み、fdconfig.sysを削除
  2. FreeDOSのドライバ・コマンド類をコピー

【2】の段階でとりあえず下記の構成にする

A:\
|   command.com
|   kernel.sys
|   
+---driver
|       devload.com
|       himem.exe
|       keyb.exe
|       keyboard.sys
|       keybrd2.sys
|       shsucdx.com
|   
\---freedos
        choice.exe
        edit.exe
        LINLD.COM
        xcopy.exe

あと必要なのは設定ファイルとUSBドライバ

  1. 設定ファイルを作成(またはPalm84的詰め合わせをコピー)
  2. USBドライバを A:\driver ディレクトリにコピー
GRUB for DOS も入れるなら...
  • grub.exe をルートへ
  • gpxe-git-gpxe.lkrngpxe_all.krn にリネームしてルートへ
  • memtest をルートへ

A:\menu.lstA:\grub ディレクトリ内のファイルがあるか確認。

USBドライバの組み込み

DOS用USBドライバの入手については、暗黙の了解的自己責任(何)ということで。

入手が困難だったり、ライセンス的に微妙だったり、相性がかなりある様なのでフロッピーやUSBメモリが壊れたりすることが無いともいえないので、あくまで at your own risk となりますけども。

設定例 (config.sys, autoexec.bat)

ファイルはA:\driver\(NOVACドライバは A:\driver\novac\)にコピー

Iomega製ドライバ(Norton Ghost 2003に付属)の例
  • config.sys (USB 2.0)
DEVICE=A:\driver\aspiehci.sys /int /all
  • config.sys (USB 1.1)
DEVICE=A:\driver\aspiuhci.sys /int /all
DEVICE=A:\driver\aspiohci.sys /int /all
  • autoexec.bat
A:\driver\guest.exe
Iomega ASPI 用 + NOVAC のディスクドライバの例

NOVAC ドライバは、NOVACのHDケースに付属。

  • config.sys (USB 2.0)
DEVICE=A:\driver\aspiehci.sys /int /all
DEVICE=A:\driver\novac\DI1000DD.SYS
  • config.sys (USB 1.1)
DEVICE=A:\driver\aspiuhci.sys /int /all
DEVICE=A:\driver\aspiohci.sys /int /all
DEVICE=A:\driver\novac\DI1000DD.SYS
Panasonic ASPI 用 + NOVAC の ASPI 用,ディスクドライバの例

Panasonic の USBASPI.SYS は下記の USB CD 用と同じもの。USB両対応。

  • config.sys (USB 2.0)
DEVICE=A:\driver\USBASPI.SYS /E            --- Panasonic
DEVICE=A:\driver\novac\DI1000DD.SYS
  • config.sys (USB 1.1)
DEVICE=A:\driver\novac\USBASPI.SYS --- NOVAC
DEVICE=A:\driver\novac\DI1000DD.SYS
USB CDドライブの設定例

Panasonic製光学ドライブ用です。

  • config.sys (USB 2.0)
DEVICE=A:\driver\USBASPI.SYS /E
DEVICE=A:\driver\USBCD.SYS /D:USBCD001
  • config.sys (USB 1.1)
DEVICE=A:\driver\USBASPI.SYS
DEVICE=A:\driver\USBCD.SYS /D:USBCD001
  • autoexec.bat
A:\driver\shsucdx /D:USBCD001
!switches=/f /n
menucolor=0,3
menudefault=1
menu
menu  ===========================================
menu      FreeDOS USB support -- LiveUSB boot
menu  ===========================================
menu
menu     1 - USB-Flash - 2.0 EHCI
menu     2 - USB-Flash - 1.1
menu     3 - USB-CD    - 2.0 EHCI
menu     4 - USB-CD    - 1.1 
menu     5 - USB-Flash - 2.0 EHCI + RAMFD.SYS
menu     6 - USB-Flash - 1.1      + RAMFD.SYS
menu     7 - USB-CD    - 2.0 EHCI + RAMFD.SYS
menu     8 - USB-CD    - 1.1      + RAMFD.SYS
menu     9 - == GRUB for DOS  or  FreeDOS  ==
menu
menu  ===========================================
menu

9?shell=command.com command.com /P
12345678?DEVICE=a:\driver\himem.exe
5678?DEVICE=A:\driver\RAMFD.SYS

REM ################################################################
REM === USB Flash === Panasonic + novac ===
REM ################################################################
REM ===== Panasonic USB ASPI driver ( USB 2.0 EHCI only )
1?DEVICE=A:\driver\USBASPI.SYS /E
5?DEVICE=A:\driver\USBASPI.SYS /W /E
REM ===== Novac USB storage driver  (USB-Flash 2.0)
15?DEVICE=A:\driver\novac\DI1000DD.SYS
REM #####################################
REM ===== Novac USB ASPI driver ( USB 1.1 only )
2?DEVICE=A:\driver\novac\USBASPI.SYS
6?DEVICE=A:\driver\novac\USBASPI.SYS /W
REM ===== Novac USB storage driver  (USB-Flash 1.1)
26?DEVICE=A:\driver\novac\DI1000DD.SYS
REM ################################################################

REM ################################################################
REM === USB CD ===
REM ################################################################
REM ===== Panasonic USB ASPI driver ( USB 2.0 EHCI only )
3?DEVICE=A:\driver\USBASPI.SYS /E
7?DEVICE=A:\driver\USBASPI.SYS /W /E
REM ===== Panasonic USB ASPI driver ( USB-CD driver     )
37?DEVICE=A:\driver\USBCD.SYS /D:USBCD001
REM #####################################
REM ===== Panasonic driver          ( USB 1.1 only      )
4?DEVICE=A:\driver\USBASPI.SYS
8?DEVICE=A:\driver\USBASPI.SYS /W
REM ===== Panasonic USB ASPI driver ( USB-CD driver     )
48?DEVICE=A:\driver\USBCD.SYS /D:USBCD001
REM ################################################################
12345678?DOSDATA=UMB
12345678?DOS=HIGH,UMB
!FILES=20
!BUFFERS=20
!LASTDRIVE=Z
@ECHO OFF
if %CONFIG% == 9 goto FREEDOS
set path=a:\bin_usb;a:\freedos

if %CONFIG% == 1 goto usbfm
if %CONFIG% == 2 goto usbfm
if %CONFIG% == 5 goto usbfm
if %CONFIG% == 6 goto usbfm

if %CONFIG% == 3 goto usbcd
if %CONFIG% == 4 goto usbcd
if %CONFIG% == 7 goto usbcd
if %CONFIG% == 8 goto usbcd

REM ################################################################
REM === USB Flash === Panasonic + novac ===
REM ################################################################
:usbfm
pause
echo.
goto menu
REM ################################################################

REM ################################################################
REM === USB CD
REM ################################################################
:usbcd
a:\driver\shsucdx /D:USBCD001
echo.
pause
goto menu
REM ################################################################

:menu
a:\driver\keyb jp
start.bat
goto END

:FREEDOS
REM ########################      FREEDOS        #########################
cls
echo          ============================================================
echo          ================  FreeDOS  boot options ====================
echo          ============================================================
echo.
echo          ====     1.  GRUB for DOS  -- grub.exe                  ====
echo.
echo          ====     2.  FreeDOS       -- load HIMEM,KEYB           ====
echo.
echo          ====     3.  FreeDOS       -- clean boot                ====
echo.
echo          ============================================================
echo.
a:\freedos\choice.exe /C:1234X Type Number:

if ERRORLEVEL 4 GOTO END
if ERRORLEVEL 3 GOTO END
if ERRORLEVEL 2 GOTO HIMEM
if ERRORLEVEL 1 GOTO GRUB

:HIMEM
a:\driver\devload.com a:\driver\himem.exe
set path=a:\bin_usb;a:\freedos
a:\driver\keyb jp
goto END

:GRUB
a:\grub.exe
goto END

:END

choice.exeでメニュー表示

こんなんでいいかな。

@echo off
if not "%ramdrv%"=="" GOTO usbfd
if "%ramdrv%"=="" set menudir=a:
cls
type %menudir%\menu_usb.txt
choice /C:123456789X boot:
IF ERRORLEVEL=10 goto END
goto %ERRORLEVEL%

:1
knoppix3.bat

:2
knoppix.bat

:3
slax.bat

:4
sysres.bat

:5
berry.bat

:6
puppy.bat

:7
insert.bat

:8
bgrescue.bat

:9
if not exist a:\grub.exe goto nogrub
a:
a:\grub.exe
goto END

:nogrub
echo.
echo A:\GRUB.EXE not found !!! 
echo Insert boot floppy in drive A: ... and press a key
pause >nul
goto 9

:usbfd
%ramdrv%\reload.bat
goto END

:END
cls
      ================================================================
                          Linux LiveCD Boot Menu
      ================================================================

                     Type one of the following numbers:

               1 :     Knoppix 5.3.1 CD - SSK
               2 :     Knoppix 5.1.1 CD - LCR
               3 :     SLAX Live CD 5.1.8.1-3
               4 :     SystemRescueCd 1.0.4
               5 :     Berry Linux 0.90
               6 :     Puppy Linux 4.xx JP
               7 :     INSERT+ 1.2.18
               8 :     BG-Rescue Linux 0.9.1 from USB
               9 :     GRUB for DOS

@echo off
cls
set knpdrv=
set knpdir=
echo search KNOPPIX filesystem...
echo.
for %%x in ( C D E F G H I J ) do if exist %%x:\knoppix\knoppix set knpdrv=%%x:
for %%x in ( C D E F G H I J ) do if exist %%x:\knoppix3\knoppix set knpdrv=%%x:
if "%knpdrv%"=="" goto nofiles
echo KNOPPIX filesystem fonud
echo.
echo search KNOPPIX kernel...
echo.
for %%x in ( C D E F G H I J ) do if exist %%x:\boot\isolinux\linux set knpdir=%%x:\boot\isolinux
for %%x in ( C D E F G H I J ) do if exist %%x:\boot\syslinux\linux set knpdir=%%x:\boot\syslinux
for %%x in ( C D E F G H I J ) do if exist %%x:\linux set knpdir=%%x:
for %%x in ( C D E F G H I J ) do if exist %%x:\knoppix\linux set knpdir=%%x:\knoppix
for %%x in ( C D E F G H I J ) do if exist %%x:\knoppix3\linux set knpdir=%%x:\knoppix3
if "%knpdir%"=="" goto nokernel
echo KNOPPIX kernel fonud
cdd %knpdir%\
if exist %knpdrv%\knoppix\knoppix set param1=
if exist %knpdrv%\knoppix3\knoppix set param1=knoppix_dir=knoppix3 knoppix_name=KNOPPIX
cls
if "%ramdrv%"=="" set menudir=a:\knop53
if not "%ramdrv%"=="" set menudir=%ramdrv%\knop53
type %menudir%\menu.txt
choice /C:12345678X boot:
IF ERRORLEVEL=9 GOTO END
GOTO %ERRORLEVEL%

:1
set opt=default
set vga=791
if not "%param1%"=="" GOTO TEMP
GOTO LINLD

:2
set opt=vesa
set vga=normal
if not "%param1%"=="" GOTO TEMP
GOTO LINLD

:3
set opt=text
set vga=normal
if not "%param1%"=="" GOTO TEMP
GOTO LINLD

:4
set opt=fb800
set vga=788
if not "%param1%"=="" GOTO TEMP
GOTO LINLD

:5
set opt=fb1024
set vga=791
if not "%param1%"=="" GOTO TEMP
GOTO LINLD

:6
set opt=fb1280
set vga=794
if not "%param1%"=="" GOTO TEMP
GOTO LINLD

:7
set opt=failsafe
set vga=normal
if not "%param1%"=="" GOTO TEMP
GOTO LINLD

:8
set opt=test
set vga=normal
if not "%param1%"=="" GOTO TEMP
GOTO LINLD

:LINLD
linld image=linux initrd=minirt.gz vga=%vga% cl=@%menudir%\%opt%.txt
GOTO END

:TEMP
copy %menudir%\%opt%.txt %menudir%\temp.txt
echo   %param1%>>%menudir%\temp.txt
linld image=linux initrd=minirt.gz vga=%vga% cl=@%menudir%\temp.txt
GOTO END

:nofiles
echo.
echo Can't find KNOPPIX filesystem
pause
GOTO END

:nokernel
echo.
echo Can't find KNOPPIX kernel
pause
GOTO END

:END
start.bat
     ===================================================================
                    Knoppix Live CD SSK 5.3.1 Boot Menu
     ===================================================================

                     Type one of the following numbers:

               1 :     default
               2 :     vesa
               3 :     text mode
               4 :     fb 800x600
               5 :     fb 1024x768
               6 :     fb 1280x1024
               7 :     failsafe
               8 :     test (desktop=fluxbox)
               X :      * cancel * 

起動の流れ

  1. config.sys で USBドライバ を選択
  2. autoexec.bat
    1. set path=a:\bin_usb;a:\freedos
    2. CD/フラッシュメモリの振り分け
    3. A:\bin_usb\start.bat 実行
  3. start.bat
    1. A:\menu_usb.txt 表示
    2. A:\freedos\choice.exe 実行
    3. OS別batファイル実行
  4. A:\bin_usb\knoppix3.bat(など)
    1. Knoppixイメージの検索
    2. Knoppixカーネルの検索
    3. (\knop53)menu.txt 表示
    4. choice.exe 実行
    5. 設定ファイルを読み込み、LINLD 実行

スクリーンショット

メニューで分けなくてもいいような気がしますが、この方が確実だという気もするするなので。

ブートメニュー

RAMFD.SYS の読み込み後

RAMFD.SYS を選択した場合は、読み込み後にこんな表示が出るはずです。

===============================================
===  Connect the target device to USB port. ===
===  Press [ENTER} to continue.             ===
===============================================

ここで USB FD は外せます。(※外さない方がいい事もあったのでチト微妙ですが...)

USBデバイスが正常に認識されると、ドライブレターが表示されます(※これはIomegaドライバの例)。この場合はDドライブ。何かキーを押すと続行。

ドライブレター表示

LiveCDブートメニュ

数字入力でKnoppixがブート。【x】を打つとキャンセル。再度メニューを表示するには【start】(knoopix3,knoppix,slax ... とか)と打つべし。

KNOPPIX 5.3.1 ブートメニュー

KNOPPIXが起動してます

ここまで起動したら、後はLinuxがUSBデバイスのルートイメージを検出できるかどうかとなります。この後止まってしまう場合は、このメッセージが出た時にUSBデバイスを挿し直しすると認識されることもあります。

GRUB for DOS の起動画面

FreeDOSから grub.exe を実行させます。

FreeDOS選択メニュー

GRUBの起動画面

BG-Rescue Linuxのメニュー

BG-Rescue Linux 0.9.1 はFD2枚入替のみで、INSERT+ 1.2.18 はFD2枚入替 + USBデバイスで起動できます。

「FDを入れて!」のメッセージ画面

ネットワークブートの画面。

ネットワークブート画面

Memtest86+ の画面。

Memtest86+画面

ファイル一覧

USBドライバは、Panasonic + NOVAC の例。

A:.
|   autoexec.bat
|   command.com
|   config.sys
|   gpxe_all.krn
|   grub.exe
|   kernel.sys
|   memtest
|   menu.lst
|   menu_usb.txt
|   reload.bat
|
+---berry90
|       default.txt
|       default2.txt
|       dynabook.txt
|       expert.txt
|       menu.txt
|       safe.txt
|       vaio.txt
|       vesa.txt
|       vesa2.txt
|
+---bgrescue
|       menu.txt
|       menu_usb.txt
|
+---bin_usb
|       berry.bat
|       bgrescue.bat
|       insert.bat
|       knoppix.bat
|       knoppix3.bat
|       other.bat
|       puppy.bat
|       slax.bat
|       start.bat
|       sysres.bat
|
+---config_files
|   |   all-autoexec.bat
|   |   all-config.sys
|   |   all-reload.bat
|   |   Change_Driver.bat
|   |
|   +---Io-novac
|   |       autoexec.bat
|   |       config.sys
|   |       reload.bat
|   |
|   +---Iomega_only
|   |       autoexec.bat
|   |       config.sys
|   |       reload.bat
|   |
|   \---Pana-novac
|           autoexec.bat
|           config.sys
|           reload.bat
|
+---driver
|   |   devload.com
|   |   himem.exe
|   |   keyb.exe
|   |   keyboard.sys
|   |   keybrd2.sys
|   |   RAMFD.SYS
|   |   shsucdx.com
|   |   Usbaspi.sys
|   |   USBCD.SYS
|   |
|   \---novac
|           di1000dd.sys
|           USBASPI.SYS
|
+---freedos
|       choice.exe
|       edit.exe
|       LINLD.COM
|       xcopy.exe
|
+---get_iso
|       download.txt
|
+---grub
|       berry.conf
|       bgrescue.conf
|       insert.conf
|       insertfd.conf
|       knoppix.conf
|       knoppix3.conf
|       puppy.conf
|       slax.conf
|       sysres.conf
|
+---inse12
|       default.txt
|       expert.txt
|       failsafe.txt
|       fb1024.txt
|       fb1280.txt
|       fb800.txt
|       menu.txt
|       menu_usb.txt
|       text.txt
|       vesa.txt
|
+---knop5
|       default.txt
|       failsafe.txt
|       fb1024.txt
|       fb1280.txt
|       fb800.txt
|       menu.txt
|       test.txt
|       text.txt
|       vesa.txt
|
+---knop53
|       default.txt
|       failsafe.txt
|       fb1024.txt
|       fb1280.txt
|       fb800.txt
|       menu.txt
|       test.txt
|       text.txt
|       vesa.txt
|
+---puppy400
|       menu.txt
|
+---slax5
|       default.txt
|       menu.txt
|       safe.txt
|       vesa.txt
|       xconf.txt
|
\---sysres1
        menu.txt

Linuxローダ

LINLD.COMの方が新しいので確実だと思われますが、なぜかloadlin.exeでしかLinuxがブートしないことがあったので両方入れることにしました

LINLD.COM

LINLD [image=<file>] [initrd=<file>] [vga=vgamode] [cl=<kernel cmdline>]
vgamode: ask,extended,normal or dec/oct/hex number
Defaults:
        image=bzImage
        initrd=(nothing)
        cl=auto
        vga=0
Use quotes: "cl=..." if you need spaces in cmdline
Use cl=@filename to take cmdline from file
README.txt
linld image=ファイル名 initrd=ファイル名 vga=サイズ "cl= パラメータ1 パラメータ2..."
linld image=ファイル名 initrd=ファイル名 vga=サイズ cl=@ファイル名

ファイルはスペース区切りで書いたらいい模様。

ramdisk_size=100000 init=/etc/init lang=ja-utf8 im=scim apm=power-off nomce loglevel=0 quiet BOOT_IMAGE=knoppix

loadlin.exe

今回は不要ですが、参考のために...

基本的に2.6系カーネルには対応していない様なのですが、なぜかこちらでしかブートできないこともありましたとさ。

loadlin カーネルファイル名 initrd=ファイル名 パラメータ1 パラメータ2..."
loadlin @ファイル名

ファイルは改行区切りで書く。

linux
ramdisk_size=100000
init=/etc/init
lang=ja-utf8
im=scim
apm=power-off
vga=791
initrd=minirt.gz
nomce
loglevel=0
quiet
BOOT_IMAGE=knoppix

別の Linux を起動

OS選択メニュー画面は【x】でキャンセルして、コマンドラインからother.bat を実行します。

  1. ドライブレターを入力
  2. カーネルなどのあるディレクトリ名を入力
  3. カーネルとinitrdを「ありがちな」名前で検索
  4. options.txtの場所を指定する
  5. 追加のパラメータがあれば入力する

オプション(パラメータ)の指定が必要な場合は、シコシコ入力するか、options.txt をFDなどに作成しておきます。

指定方法や画面など下記ページの「from 【DOS_USB Driver】」の方とおんなじです。

備考

LiveCDのファイルを変更している場合

サブディレクトリにまとめてるとか、マルチブートの為ディレクトリ名を変えてるとか。下記はデフォルト以外の検索対象。

  • KNOPPIX 5.3.1
    • knoppix3\KNOPPIX
  • SLAX 5.1.8.1-3
    • slax\livecd.sgn
    • myslax\livecd.sgn
    • slax5\livecd.sgn
  • SystemRescueCd 1.0.4
    • sysres10\sysrcd.dat
  • Berry Linux 0.90
    • berry90\BERRY
  • Puppy Linux 4.1.2.1
    • 元々サブディレクトリも検索してくれるらしい?(/puppyなんとかな名前にしとけばいいのかな?)

【注意】この場合、Aドライブにオプションを追記した temp.txt を書き込みます。KNOPPIX5.3.1なら コピーされたオプションファイル A:\knop53\temp.txtknoppix_dir=knoppix3 を追記します。

RAMFD.SYS使用時はAドライブは書き込み不可となるので事前に オプションを追記したtemp.txt をFDへ作成する必要があります。書き込みエラーとなった場合でも temp.txt があればそのまま使用されます。ややこしいかなぁ。。

合体編】の【DOS+RAMドライブ】から reload.bat を実行の方がいいかなぁ。

注意点

通常ブートに比べると同じPCでもトラブルが出る可能性が若干高いみたいな...通常のCDブートで問題ないのにこれを使ったUSBメモリブートだとだめなことも。

確実性(?)で言えば、【その2】編の方がよいと思います。

私のdynabookクンではこれを使った USB CD のKNOPPIX 5.3.1CD は問題ないのに、USBメモリだとKDE(デスクトップ環境)が現れなかったりします(fluxboxなら起動可能なのでいいんですけど...)。

故障デバイスがあると...

(一概に断言はできませんが)故障あるいは不良デバイスがあるとBIOSで無効にしないと初期化中に止まってしまうことがあります。

なるべく新しいフロッピーで

古いものでは読み込みでエラーが出たり、エラー発生後にファイルが壊れたりすることも。

フロッピーを確認しませう!

いぁ、新品でもおかしい時ありますから。

Windows上では不良セクタがあっても使えてしまったりしますから、 format コマンド打つべし。

format a:
    1,457,664 バイト : 全ディスク領域
        1,024 バイト : 不良セクタ
    1,456,640 バイト : 使用可能ディスク領域

不良セクタがないか、「パオーパオーン」な雄叫び(笑)が1,2回じゃなく数十回も発生しないかとか確認しませう。

Linux LiveCD側の注意点?
「Linux起動後に」USBデバイスが認識されない

いわゆる「シェルに落ちる〜」ってやつですね。「/KNOPPIX/KNOPPIX が見つからないYO!」です。

ブートメニュー

Linux起動後の初期化中にUSBデバイスが認識されない場合は、 Linux起動直後、または「Checkin for USB...」などのメッセージが表示されている時にUSBポートを挿し直すと認識されることがあります。

USB CDだとあんまり問題ないのになぁ。(あくまでウチでは)

シャットダウン
  • SLAXでは、acpi=off を指定してるので自動で電源は切れない。「Power Down」などのメッセージで止まったら電源ボタンを押す
  • SystemRescueCdでもそうかも。
  • 他のLinuxでも acpi=offnoacpi “とか”を指定しないと起動できないことがあるかも。
USB FDドライブ

USB FDドライブでブートする際は、カーネルとinitrdロード後にUSBポートを抜いてしまった方がいいかも。デバイスの検出で時間がかかるので。

USBドライバ使用時の問題?
相性ありまくりかな?

私は主にSDカードリーダー(2種)で認識確認してますが、組み合わせによって結果が色々です。内蔵FDドライブではだめなもんはだめではっきりしてますが、USB FDドライブだとちょっとした異常で結果が変わります。新品のFDで一からきっちり作るべきかもしれません。

USB FDでブートする

USB FDからブートする場合は、RAMFD.SYSの読み込みが必要かも。また、RAMFD.SYSの読み込み直後にFDのUSBポートを抜くか、同じポートにUSBメモリ・USB CDを挿し換えするのが確実かも

USBマウスなども外しておいた方がいいかもしれません。

【追記】一概に言えないのかな...

なぜか私のdynabookクンは、USBメモリだとKNOPPIXのKDE(デスクトップ環境)が出て来てくれなかったりしたのですが(USB CDは無問題)、RAMFD.SYSを読み込み後USB FD繋いだままだと問題なく起動してしまいました(FD内の検索にちょっと時間かかるけど)。別のPCでは外さないとダメだったりしましたが...

そのままブートできても、カーネルとinitrdロード後にUSBポートを抜いてしまった方がいいかも。デバイスの検出で時間がかかるので。

RAMFD.SYSロード時の注意点

(仮想)Aドライブは書き込み不可(実ドライブは非認識)となります。USBデバイス側のLinuxのディレクトリを変更してる場合などAドライブへの書き込みが必要なので、事前にFD内のディレクトリにブートオプションファイル【temp.txt】(A:\knoppix3\temp.txt とか)を作成しておく必要があります。

USBキーボード

USBドライバのロード後にUSBキーボードなどが使えなくなることがあります。この場合は config.sys や autoexec.bat を自動起動するように編集する必要があるかも。

フリーのUSBキーボードドライバ(かな?)を見つけたので後日試してみたいと思います。(自宅にUSBキーボードないのです...)

パーティションが複数だと?

メチャ悩み中...

OSを選択すると、まずルートイメージを検索する設定にしています。KNOPPIX5.3.1 ならこんなかんじ。

  1. CからJドライブまで KNOPPIX\KNOPPIX or knoppix3\KNOPPIX を検索、見つからなければエラー表示
  2. CからJドライブまでカーネル(boot\isolinux\linux など)を検索してディレクトリを変数にセット、見つからなければエラー表示
  3. 【1】のドライブで、knoppix3\KNOPPIX があれば追加パラメータを変数にセット

Linux LiveCD の多くは、カーネルと initrd をロードすれば後はルートイメージを自分で探してくれるので本来不要なのですが、私めはマルチブートでサブディレクトリに分けたり、HD上にもコピーしてあったりするので事前にこれしないと面倒なのであります。Linux起動前にパラーメータを渡しとかなならん!のです。

でも、

  • guest.exe(Iomega) は第1パーティションしか認識しない(模様)のでDOSから第2パーティションが見えなくてorz。カーネルだけ第1においてもこれだとだめだYO!
  • HD上にもあっても、USBは最終ドライブになるから関係ない?

その2】編のこの画面の様に手動選択した方がよいのではなかろうか?と。(※放置すればデフォルト状態での起動)

なんやっとるやらようわからんようになってもうた、です。ハゲシク「年」を感じてしまう今日この頃。(余談風味)

reload.bat

あんまし期待できませんが、DOS起動時に認識されなくてもこの reload.bat の実行で認識される場合も結構ありました。1回でだめでも2回目おkとか。

FreeDOS起動後にデバイスドライバのロードが可能な devload.com を使いUSBドライバを読み込みます。

OS選択メニュー画面は【x】でキャンセルして、コマンドラインから reload.bat を実行

reload.bat実行画面1

USB FD ドライブは外した方が安全だと思いますので警告画面など出してみたり。(もちろんRAMFD.SYSをロードしてないとだめですが...)

reload.bat実行画面2

ドライブレターが、キター!(※これはIomegaドライバの例)

reload.bat実行画面3

この後OS選択メニュー画面が出ます。

reload.bat実行画面3

逆にさらにおかしくなることもあるかもしれないのでご注意。

BG-Rescue Linux

後で使い道なんかを書く予定ですが...テキトウですが書いてみました。

※GRUBのメニューからだと、USBデバイスは不要。FD +2枚のみでも起動できます(vmlinuzinitrd.imgをそれぞれFDにコピーしておく)。NTFS書き込みも可能なので、FDブートネットワーク(インターネットからダウンロードもおk)から、またはUSBデバイスからLiveCDイメージをHDにコピー、GRUB起動ディスクなどからLiveCDをブートさせることができます。

関連リンク

Linux LiveCD
FreeDOS
LINLD.COM
GRUB for DOS
Written by yassy