Palm84 某所の日記

死のうは一定、しのびクマには何しよぞ...

BG-Rescue Linux をUSB-FDドライブで起動するためのめも

【追記】バージョン 0.9.1

0.9.1 では、ntfs-3g でNTFS書き込みやSerialATAサポートなどが追加されました。

内容は、バージョン0.4.1のものです。新バージョン(ntfsmountとかSerial ATAサポートとか)についてはまたいずれ。

ブート手段がFDドライブしかない時に。逆境になればなるほど燃えてしまう私のような変人Grace under pressureな人(笑)向けレポート。FDブートでネットワーク対応。

私的には手持ちのUSB-LANアダプタ(USB-ET/TX-S )対応なのでLANアダプタが故障した時とかに使えるのがnice。

概要

紹介記事

できること
  • maybe...USB-FDドライブでブート可能。
  • ramdiskで動くのでUSBデバイス差し替えOK
  • USBストレージデバイスの利用
  • NTFSからUSBメモリへ日本語名ファイルの救出(機種依存文字もOK)
  • ネットワーク利用可能
    • 一部のPCMCIA LANアダプタやUSB−LANアダプタにも対応
    • wget/ftpput/ftpgetコマンドでWEB/FTPサーバからのダウンロード(アップロード)
    • smbclientコマンドでWindowsマシンの共有ドライブとファイルのやりとり
    • NFS/TELNET/TFTPクライアント。netcat
  • gpartでパーティションテーブルの調査
  • fdiskでパーティションの作成削除
  • ms-sysコマンド

ntfscloneやntfsresizeは入ってるけどNTFSへのファイル書き込みはだめみたいやねぇ。

起動の流れ
  1. DOS起動ディスクでブートしてloadlin.exeを実行
  2. 2枚目のFDからkernel読み込み
  3. 3枚目のFDからramdiskイメージ読み込み

戻る

起動ディスク作成

配布されてるFDイメージそのままでは、kernel panicで起動できなかったので小細工してみた。

ダウンロードするもの

  • BG-Rescue Linux
    • rescuefd.zip(FreeDOS起動ディスクイメージ)とrescue-0.4.1.zipをダウンロード

FDイメージ書き込み用ツールは下記が便利かなと

1枚目(DOS起動ディスク)
  • rescuefd.zipを展開し、rescuefd.imgをFDへイメージとして書き込み
  • FD内からstart.batを削除
  • rescue-0.4.1.zipを展開し、下記ファイルをFDへコピー
    • choice.exe
    • welcome.txt
    • start.bat

FDへコピーしたstart.batを編集。パスを追記。(ごまかしだったりw)

< 省略 >
:1
loadlin B:\vmlinuz initrd=A:\initrd.img root=/dev/ram0
GOTO Ende
< 省略 >

同様に :2 から :6 にも追記。

FDの内容は以下のとおり。

choice.exe
command.com
kernel.sys
loadlin.exe
start.bat
welcome.txt
2枚目
  • rescue-0.4.1.zip内のvmlinuzをそのまま(ファイルのまま)コピー
3枚目

現時点ではrescue-0.4.1.zipinitrd.imgが含まれていないようなので、rescue-0.4.1.img(2.88MBイメージ)をダウンロード。Virtual Floppy Driveでマウントなどして(またはSuper ウルトラISOなどで展開)、initrd.imgを取り出すとかする。

  • rescue-0.4.1.zip内のinitrd.imgをそのまま(ファイルのまま)コピー

戻る

ブート

  • FreeDOSが起動したら(date/timeはそのままEnterで)startコマンド入力

start.batautoexec.batにリネームしておくと自動実行となる。

  • 解像度を数字で入力
  • Insert diskette in drive... と出たら2枚目のFDへ入れ替えてEnter
  • 同じく次は、3枚目のFDへ入れ替えてEnter
  • keymapの選択画面は jp で
  • PCMCIA(LANアダプタ)を利用するなら、そのままEnter
  • USB(2.0)を利用するなら、そのままEnter

メッセージが出て画面が止まる場合がありますが、そのままEnterする。

戻る

使用方法

  • シャットダウンは poweroff
  • キーボード配列を再選択したい場合は /etc/init.d/S10keymap

起動後はUSB-FDを抜いてしまってもおk。但し、マウント後にUSBの差し替えやFDの入替する前には必ずアンマウントすること。

  • マウント
# mkdir /mnt/floppy
# mount /dev/sda /mnt/floppy

※USBメモリなどは、sdb,sdc..、パーティションを切っている場合は、sdb1,sdc1...

  • アンマウント - マウントポイントを指定
# umount /mnt/floppy

NTFSからUSBメモリへファイルをコピー

パーティションの確認がちと面倒。cat /proc/partitons,fdisk -lなどでは通常のデバイス名が出ないのでdmesg | grep hd,dmesg | grep sdとかしてから、fdisk /dev/hda(hdb..) とか fdisk /dev/sdb(sdc..) とかで確認するとかかな。

  • NTFSパーティションのマウント
# mkdir /mnt/win
# mount -t ntfs -o ro,nls=utf8 /dev/hda1 /mnt/win
  • USBメモリ(FATフォーマット)などのマウント
# mkdir /mnt/usbkey
# mount -t vfat -o utf8,shortname=winnt /dev/sdb /mnt/usbkey
  • USBメモリなどへ My Documents をコピー
# cd /mnt/win/Documents\ and\ Settings/username
# cp -r My\ Documents /mnt/usbkey

日本語ファイル名も問題なしだった。

ネットワークの設定
  • DHCPで自動設定
# dhclient
  • LANアダプタが複数ある場合はデバイス名指定
# dhclient eth1
  • 状態確認
# ifconfig -a
手動設定

※ネットマスクが255.255.255.0の場合

# ifconfig eth0 inet 192.168.0.100
  • ゲートウェイ設定(※確認は # route
# route add default gw 192.168.0.1
  • DNSサーバ設定(※確認は # cat /etc/resolv.conf
# cat <>> /etc/resolv.conf
    
> end
ダウンロード

httpサーバからファイルをダウンロード

# wget URL
smbclient - Windowsマシンの共有へ接続

Windowsマシンへ接続するにはhostsファイルの修正が必要?

# cat < /etc/hosts 
> 127.0.0.1 localhost
> 192.168.0.100 rescue
> end
  • ローカルのディレクトリをリモートへコピー
    • # tar cf - ディレクトリ名 | smbclient //hostname/sharename "password" -U username -N -Tx -

日本語ファイル名はすべて文字化け。スペース含む場合もだめかな。

  • 対象ホストの共有一覧表示
    • # smbclient -L hostname -U username
  • ホストへ接続
    • # smbclient //hostname/sharename -U username
  • prompt - 問い合わせを表示しない
  • recurse - ディレクトリを再帰的に取得
  • !コマンド名 - ローカル上でコマンド実行
  • lcd - ローカルのディレクトリ移動
  • help - コマンド一覧表示
nfsサーバをマウント
# mkdir /mnt/nfs
# mount -t nfs -o nolock 192.168.0.2:/server/share /mnt/nfs

※日本語ファイル名についてはサーバへのコピーはできましたが文字化け。

戻る

使い道は?

USE IT AT YOUR OWN RISKですけどねー。

CDブート、USBブート、PXEネットワークブートができない、ブート手段がFDドライブしかないPC向けの話。KnoppixなどのLinux LiveCDはUSB/ネットワークでもブート可能なのでわざわざこれを選択する意味はないかと。

起動しないWindowsマシンのファイル救出

USBデバイスやネットワーク上へファイルをコピー。

ファイルのコピー手段がない時

CDドライブやLANアダプタがない(または故障)FAT32なWindows向けの話。たまにあるのがLANアダプタやUSB機器など新しいデバイスを使おと思ったら、ドライバのコピー手段がない、ってな時。USB-FDからと思ったら、そのUSB-FDもドライバが必要だったり。

ハードディスクからLiveCDなどをブート

ext3、またはFAT32パーティションが必要。BG-RescueでハードディスクにUSBデバイスなどからファイルをコピー、あるいはインターネットからダウンロード。GRUB起動ディスクでKnoppixなどをブート。

Linuxのインストール

インストール用kernelとinitrdをハードディスクにコピー、またはインターネットからダウンロード。GRUB起動ディスクでブートしてLinuxのインストール。

Windows(XP/2000)のインストール

FAT32パーティション作成してフォーマット。USBデバイスやネットワークからi386フォルダをコピー。DOS起動ディスクでブートして、winnt.exeを実行。

こんなとこかなぁ。

戻る