2007.11.5 作成
2010.01.31 BIOSの対応とパーティション形式 を追記
2011.06.02 SYSLINUXのインストール を改訂
2011.06.09 isohybrid を追記
最終更新日 2012.3.10
全然まとまってませんが、Linux素人の覚書。
- 参考
- 拙作めも
-
便利ツールいろいろ。
SYSLINUXでマルチブートの基本設定など。
SYSLINUX から GRUB for DOS をチェインロードしてごにょごにょ。
BIOSで認識なれどブートせず!の際はパーティションの変更が必要かもしれない。
■ USBメモリでのブート対応確認 3
USBメモリからのブートに対応しているかどうかは、実際に試してみないとわからないことも多いです。
ブート可能なUSBメモリを挿した状態でBIOSを起動して、bootの選択画面に「USB xxx
」「Generic USB なんとか
」「Removable xxx
」などの項目が現れるかどうか確認します。対応していても挿していない場合は現れないことが多いようです。USB 2.0 非対応PCでは多分ほぼ非対応。対応の目安としては2002年以降あたりかな?
【追記】最近のBIOSでは種類名ではなく製品名が表示されることが多い模様です。
- 電源オン時に、F(1 - 12) キーなどを押すとリストに表示される場合がある
- 2台目(或いは1台目)のHDとして認識される場合がある(※ 第2HDとして認識されている場合は、HDの優先順序を入れ替える必要があるかも)
- BIOSのブートデバイスのリストに表示されないが、リストの内容を変更するのにEnterキーなどを押すと変更可能リストに表示される場合がある
- HDのリストを変更しようとすると表示される場合がある
- 【Boot other device】などの設定を有効にすると表示される場合がある(※ 初期設定では、内蔵HD,CD,FD,LAN 以外のUSBデバイスなどが無効になってることがあります)
- 最近のPCでは、BIOSに【 USB Mass Storage Settings 】とか【USB ナントカ】などの設定項目があったり。
- 【Emulation Type】などの設定項目で、HD or FD を切り替えできたり
- 容量の応じて、またはパーティションの有無で自動切替したり
製品名だったり、 Generic USB xxx、USB HDD、USB ZIP、USB LS120、USB RMD-FDD、USB Flash、など機種によって認識名は様々。(※ 2台目のHDドライブとして認識される場合もあるようです。)
※または、電源投入後にF(F1-F12)キーを押して選択。
【追記】[USB Legacy Support]を有効にする必要があるかも?
詳しくは下記サイトの情報を参考に。
USB-FDのみ対応であったり、特定のUSB-CDのみ可能だったり対応は色々。
※ 【USB ZIP】対応の場合、mkdiskimage
の実行でブート可能になる場合もあるようです。
- 注意点いろいろ
-
上記のページは、DOSの場合なのでLinuxでは問題にならない場合もあるのですが、BIOSの対応の違いなど書いてます。
- USBを挿したまま再起動するとだめだったり、抜き挿しのタイミングによって認識しなかったりすることも。挿してから電源オン、あるいは電源オンしてから挿すとか、色々試してみるべきかも?
- フラッシュメモリ用カードリーダ(及びアダプタ)などは、結構相性問題や対応メモリサイズなどに制限があったりする。SDメモリはOKでもmicroSDはだめとか。
Can't find KNOPPIX filesystem sorry.
Dropping you to (very limited) shell.上記の様なメッセージが出て、USBメモリ内のKnoppixイメージがマウントできない場合に、kernel,initrd読み込み後USBランプが消えた直後にUSBポートを挿し直すとマウント可能になることがあります。
Allowing slow USB-devices some more time to register...ok
このメッセージが出れば多分OK。
■ 作成ツール / スクリプト 4
- 拙作めも :
- UNetbootin - Homepage and Downloads(※ Windows版、Linux 版、Mac版もあり)
- LinuxLive USB Creator (LiLi)(※ Windows版)
- LiveUSB Install | Linux on a stick!(※ Windows版、Linux 版もあり)
- Tuxboot - Clonezilla live, DRBL live, GParted live, Tux2live(※ Windows版、Linux 版もあり)
- SystemRescueCd USB installer for Windows (※ Windows版 SystemRescueCd LiveUSB 作成ツール)
- マルチブート LiveUSB 作成
-
- YUMI -- Multiboot USB Creator(※ Windows版)
- XBOOT(※ Windows版)
- 下記はちょっと古い情報...
-
- Knoppix 5.1.1 - mkbootdev
- slax-ja
- Windows版 - make_disk.bat(※ バージョン 5.x)
- Windows版 - MySlax Creator
うまく行かないこともあるので、その場合は手動作成で。
■ ブートの流れ 5
Linuxカーネルがロードされるまで。ブートローダにSYSLINUXを使う場合です。
- BIOSがブートデバイスを選択
- USBメモリのMBR
- ブートローダ(*1)読み込み
- パーティションテーブルを参照
- アクティブパーティションへ
- アクティブパーティション(bootフラッグ付)のブートセクタ
- ブートローダ(*2)読み込み
- ブートローダ(*2)が ldlinux.sysをロード
- ldlinux.sys が syslinux.cfg の設定に基づきカーネルなどのファイルをロード
- ※パーティションを切っていない場合はMBRはないので【2】はなし
- *1 - いわゆる「ブートストラップローダ」
- *2 - いわゆる「IPL」(イニシャル・プログラム・ローダ)
ブートストラップについては、DOSやWindowsのものでもほぼブート可能ですが、IPLについてはsyslinux専用のもの、つまり ldlinux.sys をロードする為の専用IPLとなります。Windows上でフォーマットするとWindows用のIPLがブートセクタに書き込まれます(XPだとNT-IPL)ので、その後でsyslinuxを実行します。
■ BIOSの対応とパーティション形式 6
最近のPCでは臨機応変な対応が可能になってるので、あまり気にする必要はないと思われます。しかしながら、2002年頃のUSBメモリブート初期型(って言っていいのかな?)BIOSでは、USBメモリは【(大容量)FD扱い】固定なんてのも多かったので、該当しそうな場合はチェックしてみるべきかも。
要は、下記2点の組み合わせによりブート可否の結果が変わることもあるってことで...
- BIOSの対応
- HD扱い固定
- FD扱い固定
- 自動切換
- 手動切換
- フラッシュメモリのパーティションは?
- MBRあり - HD形式
- Zip形式(パーティションの第4エントリを使用)なんてのもあるらしい?
- MBRなし - (大容量)FD形式
- MBRあり - HD形式
最近のフラッシュメモリでは、パーティションが切られていてMBRがあるHD形式の状態のものが殆どだと思いますが、以前はMBRのない(パーティションの切られていない)、(大容量)FD形式のものもありました。
- HD扱い(固定)でのブート
-
- USBメモリがFD形式だと、MBRがないのでブートできない
- FD扱い(固定)でのブート
-
- USBメモリがHD形式でもブートできるが、MBRはロードしないのでPBRにブートローダーがインストールされていないとブートできない
- FAT32フォーマットではブートしても、「ファイルがない」エラーが出ることがある(FAT16ならOK)
- 第2パーティションからブートできない
- パーティションタイプが LBA だとブートできないことがる( CHS ならOK)
【追記】FAT16 の最大パーティションサイズは 2GB。
※ 尚、USB HD のブートに対応していても、USBフラッシュメモリはFD扱い固定の場合もあったので注意(と言っても、2002年製のかなり“古い”BIOSですが...)
- HD扱い・FD扱いのどちらでもブート可能にするには
-
それがベストな選択がどうかは微妙ですが...
- パーティションは切っておく
- 第1パーティションをアクティブに
- 第1パーティション(のPBR)へブートローダーをインストール
- MBRへは、SYSLINUXの mbr.bin のようなシンプルなブートストラップ(※ アクティブ・パーティションのPBRをロードするのみ)を書き込む
【2】【3】【4】については、Windows 上で
syslinux.exe -ma <USBドライブ文字>:
することと同じです。
■ パーティションとフォーマット 7
- あくまであくまで私見ですが...
-
※購入時の状態を残したい場合など、DDforWindowsなどで全体のイメージファイルをバックアップしておきませう。
USBメモリ(SDメモリ + カードリーダなども含め)を確実にブート対応にするには、Linuxのfdiskでパーティションを切り直した方がいいかなと思ってます。
※ 下記は 8 GB(
7.847.875 GiB) 以下の場合ですが...- パーティションテーブルは一旦消す
- シリンダ数は1024以下に設定される(※ 7.875 GiB 以下の場合)
- パーティションタイプはFAT32なら
B
、FAT16なら6
に設定(※ 7.875 GiB 以下の場合)
※但し、SDメモリなど携帯電話やデジタルカメラなどで使えなくなるかもしれません。また、別の機器でフォーマットしちゃうとブート不可になってしまうかもしれません。
購入時にパーティションが切られているものもありますが(切られていると言っても大抵は1つだけなので「MBRがある」といった区別の方が正確かも)、切られていないもの(FDなどと同じでMBRがない状態)もあります。
※ Buffalo RUF2-S 512MB では購入時の状態で、MBRあり、フォーマットは FAT16 LBA (Type = 0E, C/H/S = 1984/16/32, アクティブ) となってました。syslinux.exe -ma
の実行のみでSYSLINUXはブートできました。
BIOS上で ZIP や 所謂スーパーフロッピー(USB LS120, USB RMD-FDD などの“大容量”FD) などで認識されている場合などパーティションが切られていない状態でもブートできることもありますが、切っておいた方が確実だと思われます。
パーティションが切られている場合は、対象パーティションがアクティブに設定(bootフラグを付ける)されていて、MBRにブートストラップを書き込んでおく必要がありますあるはず?です(※BIOSの対応がスーパーフロッピー扱いの場合はなしでもいいのかも)。購入時点で書き込まれていたりもする様です。また、DOSのFDISKを使ってパーティションを作成した場合も自動で書き込まれるようです。
私のPCのうち、BIOSで「USB LS120」で認識されるものでは、MBRの先頭446バイトを0で埋めてブートストラップのない状態でもSYSLINUX(MS-DOSとFreeDOSではAドライブとして起動)はブートします。FAT32フォーマットではブートしません。
なので、MBRのブートストラップに関してはBIOSの対応(HD扱いなのか所謂スーパーフロッピー扱いなのか)次第なのかもしれませんけど...
USB-HDでのブートに対応していない場合 USBメモリが USB HD としてではなく大容量FD扱い(USB LS120 など)となる場合など、FAT32フォーマットではブートできないことがあります。その際はFAT(16)フォーマット(パーティションサイズは 2GB まで)で試してみませう。
- USBメモリのパーティションを作成するには...
-
Linuxの
fdisk
コマンド、またはGUI操作なら GParted とか。ブート対象パーティションのアクティブ設定(boot フラグを付ける)を忘れないようにしませう。
尚、Windowsのエクスプローラ上では第1パーティションしか見えないのでご注意(※ 正確には「パーティション・テーブルの第1エントリ」かな)。
- パーティションを一から切り直すには...
-
※念のために、DDforWindowsなどで全体のイメージファイルをバックアップしておきませう。
パーティションを作り直すだけだといわゆる
C/H/S
設定は変わらない場合が多いので、一旦パーティションテーブルを含めMBRなど全部消してしまわないといけないのかもしれません。下記はあくまでPalm84流(何)ですけど...あっと、事前に念のため、全体のバックアップイメージの作成しときませう(※Windowsなら DDforWindows とかが便利)。
/dev/sdx
について --- まちがってHDに向けてやらないように注意!- MBRだけでなく第1パーティションの先頭あたりまで消しちゃえ!
$ dd if=/dev/zero of=/dev/sdx bs=512 count=64
- そして、普通に(rootで)fdisk 実行
# fdisk /dev/sdx
【2013.8.24 追記】取扱注意なツールとなりますが、RMPrepUSB や BOOTICE で色んな形式のフォーマットが可能です。または、オプション指定で fdisk 実行するなど。
■ ファイルのコピー 8
Windows上で直接isoイメージを展開(抽出)するには 7-Zip や Universal Extractor などが便利です(※展開時の[BOOT]ディレクトリはブートセクタなので基本的に不要です)。
仮想CDソフトやWinRARなどでは、ファイル名がすべて大文字の8.3形式となってしまうことがあるため上記をおすすめします。
基本的にはCDisoイメージ内のファイルを同じ状態でUSBメモリへコピーすればいいと思います。
SLAXではオプションで任意の場所を指定可能でした(例:from=/dev/hda5/MySlax
)。
この後、syslinux.cfg ファイルについて確認します。
■ syslinux.cfgの設定
まず、CD内にUSBメモリブート用の syslinux.cfg がないか確認します。CDブートとは違うオプション(パラメータ)の指定が必要になることがあるので、ある場合はそのファイルを使用します。
syslinux.cfg がない場合は isolinux.cfg
を syslinux.cfg
にリネームして使用します。
- ※Windowsで SYSLINUX 最新版を使う時で syslinux.cfg がない場合は
isolinux.cfg
をsyslinux.cfg
にリネーム- ディレクトリ名
/boot/isolinux/
などを/boot/syslinux
にリネーム
- ※LiveCDなどの古いバージョンのSYSLINUXを使う場合は
- kernel など
isolinux
ディレクトリ内のファイルすべてをルート(/
) に移動 isolinux.cfg
をsyslinux.cfg
にリネーム
- kernel など
- 保存場所
-
※バージョン3.35以降。
Starting with version 3.35, the configuration file can also be in either the /boot/syslinux or /syslinux directories (searched in that order.) If that is the case, then all filenames are assumed to be relative to that same directory, unless preceded with a slash or backslash.
下記の順序で検索されるとあります。優先順序の様です。
/boot/syslinux
/syslinux
/
/
に作っても/boot/syslinux
にもあれば、優先されてしまうので注意。SYSLINUX のバージョンに注意。LiveCDに含まれるものは3.31など古いものが多い。旧バージョンを使う場合はルート(
/
) に置くのがよいかと。 - ファイルの指定
-
kernel、及び initrd が syslinux.cfg と同じディレクトリにない場合はファイルのパスを指定する必要があります(同じディレクトリ内にあるならファイル名のみでOK)。(マルチブートする場合を除き)同じディレクトリにある方が楽かと。
一例ですが..
/
| ldlinux.sys | xxx +---boot | | xxx | \---syslinux | syslinux.cfg | vmlinuz | initrd.gz- 相対パス(※同じディレクトリ)
KERNEL vmlinuz APPEND initrd=initrd.gz パラメータ1 パラメータ2
- 【
/
】ルートからの絶対パス
KERNEL
/boot/syslinux/
vmlinuz APPEND initrd=/boot/syslinux/
initrd.gz パラメータ1 パラメータ2
- その他・便利な追加機能など
■ オプション・パラメータ調整
デバイスの対応次第ですが、デフォルト設定ではうまくブートできないこともあります。
syslinux.cfgのデフォルト以外のlabelをブート時に指定したり、CD内の説明ファイルを参照してオプション(パラメータ、チードコード)を調整。
■ オプションを編集
※通常は編集する必要はありません。
Linuxの改行コードはLF(Windows標準はCR+LF)なのでWindowsのメモ帳で開くと表示がおかしくなります。LF対応のテキストエディタ(またはワードパッドでも)を使います。
ファイル名は8文字以内、または8.3形式で。最近のバージョンでは文字数制限はほぼないです。
default knoppix display boot.msg prompt 1 F1 boot.msg F2 help.txt F3 option.txt label knoppix kernel linux append ramdisk_size=100000 init=/etc/init lang=ja apm=power-off vga=791 initrd=minirt.gz nomce highres=off loglevel=0 libata.atapi_enabled=1 quiet SELINUX_INIT=NO nmi_watchdog=0 BOOT_IMAGE=knoppix label expert kernel linux append ramdisk_size=100000 init=/etc/init lang=ja apm=power-off vga=791 initrd=minirt.gz nomce highres=off nmi_watchdog=0 BOOT_IMAGE=expert --- 略 ---
default
- デフォルトの label を指定display
- ブート画面で表示するファイルを指定prompt 1
- bootプロンプトを表示。0にするとデフォルトで自動起動。timeout 100
- 10秒後に自動起動
label 名やオプション指定などを書いたテキストファイルを作って、display menu.txt
などとして表示させるのもいいかも。
■ SYSLINUXのインストール 9
- GRUBなど他のブートローダは...
-
調べてみるとUSBメモリのパーティションの状態はHDと比べ一定とはいえない様です。MBRと第1パーティションの間の空き領域がないものがありました。GRUBはこの空き領域への書き込みが必要なのでMBRへインストールできないことがあります。SYSLINUXでは、MBR以降の空き領域へは書き込みしません。
あっと、Linux の fdisk で ヘッド数とセクタ数を指定してパーティションを切り直せば変わるかもしれません...
- 【追記】SYSLINUX は一応ブートしている様だがメニューなどが出ない場合は...
-
※ 元のバージョンと同じ SYSLINUX をインストールする方が楽かも。
実行したSYSLINUXファイル(
syslinux.exe
とか) と元の Linux に含まれてる SYSLINUX のメニュー用ファイルvesamenu.c32
などとのバージョン不整合かもしれないです。下記ファイルが存在する場合はダウンロードした SYSLINUX の最新バージョンに置換してみるべし。- vesamenu.c32 (
\com32\menu\vesamenu.c32
) - menu.c32 (
\com32\menu\menu.c32
) - chain.c32 (
\com32\modules\chain.c32
) - reboot.c32 (
\com32\modules\reboot.c32
) - memdisk (
\memdisk\memdisk
) - poweroff.com (
\modules\poweroff.com
)
- vesamenu.c32 (
- SYSLINUX
-
- ダウンロード(Windows用はzip版、gz版も中身いっしょですが...)
Windows 上で実行
- ダウンロードしたzipファイルを展開
\win32
ディレクトリにある syslinux.exe を実行
※ Vista/7ではコマンド プロンプトを「管理者として実行」すること!
syslinux.exe をUSBメモリのルートにコピーして実行するのが簡単かと。
- バージョン 4.04 (USBメモリが
X:
ドライブ)の例
C:\Documents and Settings\yassy>x: X:\>findstr SYSLINUX syslinux.exe SYSLINUX 4.04 SYSLINUX 4.04 2011-04-18 No DEFAULT or UI configuration directive found! X:\>syslinux Usage: syslinux [options] <drive>: [bootsecfile] --directory -d Directory for installation target --install -i Install over the current bootsector --update -U Update a previous installation --zip -z Force zipdrive geometry (-H 64 -S 32) --sectors=# -S Force the number of sectors per track --heads=# -H Force number of heads --stupid -s Slow, safe and stupid mode --raid -r Fall back to the next device on boot failure --once=... -o Execute a command once upon boot --clear-once -O Clear the boot-once command --reset-adv Reset auxilliary data --menu-save= -M Set the label to select as default on the next boot --mbr -m Install an MBR --active -a Mark partition as active --force -f Ignore precautions
下記はUSBメモリのドライブレターが仮に【X:
】とした場合の例です。ドライブレターを間違うと Windows が起動しなくなる場合があるのでくれぐれもご注意(※ --force
オプション付けない限り内蔵HD、USB HDへはインストールできない筈ですけど...)。
※ インストール先ドライブのフォーマットは FAT32 or FAT16
- SYSLINUXの IPL と ldlinux.sys 書き込み(※ PBRへインストール)
syslinux.exe X:
または、
syslinux.exe --install X:
- SYSLINUXのMBRブートストラップ、IPLとldlinux.sys書き込み
syslinux.exe -ma X:
または、
syslinux.exe --install --active --mbr X:
【m】がMBRへブートストラップ書き込み
【a】はパーティションをアクティブに設定
尚、パーティションを切っていない場合(FD扱いでのブート)はブートストラップの書き込みは不要ですがしておいた方が確実だと思われます。(元々書き込み済みの場合もあるかも)
- ldlinux.sys を書き込むディレクトリを指定(例 : \syslinux へ)
syslinux.exe --install --active --mbr --directory /syslinux X:
- めも
-
- SYSLINUX ブートセクタのファイル化
-
syslinux.exe --install X: syslinux.bin
512バイトのファイルが作成されます(USBメモリへは書き込みされない)。ルートに置けば GRUB for DOS からチェインロードが可能です。
title * chainload SYSLINUX Menu find --ser-root /syslinux.bin chainloader /syslinux.bin
Linux 上で実行
※ Linux上ではブートストラップの書き込みがうまく行かないことがあります。Windows上で syslinux.exe -ma
を実行した方が確実かも。
Linux に含まれる SYSLINUX のパッケージはバージョンが少し古めのことが多いので最新版のダウンロードをおすすめします。
- おおまか手順
-
- インストール先パーティションのフォーマットは FAT32 or FAT16
- インストール先パーティションをアクティブ設定
- インストール先パーティションへ SYSLINUX をインストール
- dd コマンドでMBRのブートストラップ部分をクリア
- dd コマンドで SYSLINUX の mbr.bin(※ ブートストラップ)を MBRへ 書き込み
- USBデバイス名を確認...
-
dmesg
やfdisk
コマンドとかで容量から判断したらいいかな。【注意】通常は内蔵の第1HDが sda ですが、USB HDが sda、内蔵HDDが sdb となってたこともあるんでくれぐれも間違わない様にご注意!
root@sysresccd /root % dmesg | grep blocks [ 7.570224] sd 0:0:0:0: [sda] 62914560 512-byte logical blocks: (32.2 GB/30.0 GiB) [ 14.153323] sd 3:0:0:0: [sdc] 3932160 512-byte logical blocks: (2.01 GB/1.87 GiB) [ 14.156156] sd 2:0:0:0: [sdb] 39070080 512-byte logical blocks: (20.0 GB/18.6 GiB)
yassy@kubuntu:~$ sudo fdisk -l | grep /dev ディスク /dev/sda: 32.2 GB, 32212254720 バイト /dev/sda1 * 1 2433 19543041 7 HPFS/NTFS /dev/sda2 2434 3916 11912197+ 5 拡張領域 /dev/sda5 2434 3916 11912166 c W95 FAT32 (LBA) ディスク /dev/sdb: 20.0 GB, 20003880960 バイト /dev/sdb1 * 1 1386 11133013+ c W95 FAT32 (LBA) /dev/sdb2 1387 2301 7348224 83 Linux /dev/sdb3 2302 2432 1052257+ 82 Linux スワップ / Solaris ディスク /dev/sdc: 2013 MB, 2013265920 バイト /dev/sdc1 * 1 650 1249269 6 FAT16 /dev/sdc2 651 1022 714984 6 FAT16
下記はUSBメモリの対象パーティションが /dev/sdz1
の場合です。事前に確認。
- パーティション
sdz1
をアクティブ(bootフラグ)に
# parted /dev/sdz set 1 boot on # parted /dev/sdz p Model: BUFFALO ClipDrive (scsi) Disk /dev/sdz: 131MB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 25.6kB 131MB 131MB primary fat16 boot
- SYSLINUXのIPLとldlinux.sys書き込み(※ PBRへインストール)
# syslinux --install /dev/sdz1
※ 新規書き込みでは -i
( --install
)オ プションが必須となった模様。
- MBRのブートストラップ部分を念の為に一旦クリア(0書き込み)
# dd if=/dev/zero of=/dev/sdz bs=440 count=1
※【注意】 of=
での書き込み対象、及び bs=440
(bs=446
でもいいかな) を間違わないこと!
- SYSLINUXのMBRブートストラップ書き込み
- SYSLINUXファイルに含まれる、
mbr/mbr.bin
をカレントディレクトリに準備して
- SYSLINUXファイルに含まれる、
# dd if=mbr.bin of=/dev/sdz bs=440 count=1
※【注意】 of=
での書き込み対象を間違わないこと!
- 一例
-
4.04 の tar.gz 版をダウンロード、インストール先が
/dev/sdz1
の場合です。Linux LiveCD などではUSBメモリが自動マウントされていることがあります。マウントされていてもSYSLINUXのインストールはできる様ですがアンマウントした方が多分安全かと。
root@PartedMagic:~# tar zxvf syslinux-4.04.tar.gz root@PartedMagic:~# cd syslinux-4.04/linux/ root@PartedMagic:~/syslinux-4.04/linux# syslinux Usage: syslinux [options] device --offset -t Offset of the file system on the device --directory -d Directory for installation target --install -i Install over the current bootsector --update -U Update a previous installation --zip -z Force zipdrive geometry (-H 64 -S 32) --sectors=# -S Force the number of sectors per track --heads=# -H Force number of heads --stupid -s Slow, safe and stupid mode --raid -r Fall back to the next device on boot failure --once=... Execute a command once upon boot --clear-once -O Clear the boot-once command --reset-adv Reset auxilliary data --menu-save= -M Set the label to select as default on the next boot --force -f Ignore precautions
- SYSLINUX のインストール
root@PartedMagic:~/syslinux-4.04/linux# syslinux -i /dev/sdz1
実行できない場合は実行権限の確認 (
chmod +x
)、./syslinux
で実行- MBRブートストラップをクリア
root@PartedMagic:~/syslinux-4.04/linux# dd if=/dev/zero of=/dev/sdz bs=440 count=1
- MBRブートストラップ書き込み
root@PartedMagic:~/syslinux-4.04/linux# cd ../mbr root@PartedMagic:~/syslinux-4.04/mbr# ls Makefile altmbr_f.bin gptmbr_f.bin isohdppx.S mbr.bin adjust.h checksize.pl* isohdpfx.S isohdppx.bin mbr.ld altmbr.S gptmbr.S isohdpfx.bin isohdppx_c.bin mbr_c.bin altmbr.bin gptmbr.bin isohdpfx_c.bin isohdppx_f.bin mbr_f.bin altmbr_c.bin gptmbr_c.bin isohdpfx_f.bin mbr.S oldmbr.asm root@PartedMagic:~/syslinux-4.04/mbr# dd if=mbr.bin of=/dev/sdz bs=440 count=1 1+0 records out 440 bytes (440 B) copied, 0.0255182 s, 17.2 kB/s
- ms-sys が入ってるなら
-
ms-sys はKnoppix、SystemRescueCd、Parted Magic、BG-Rescue Linux(FD版もあり)などのLiveCDに入ってます。
# syslinux -i /dev/sdz1 # ms-sys -z /dev/sdz # ms-sys -s /dev/sdz
-z
は一旦MBRの先頭446バイトをクリア、-s
はSYSLINUXブートストラップ書き込み
- めも
-
- Linux LiveCD などでのバージョン確認
-
一例ですが。
root@PartedMagic:~# whereis syslinux syslinux: /usr/bin/syslinux /usr/X11R6/bin/syslinux /usr/X11/bin/syslinux /usr/share/syslinux root@PartedMagic:~# strings /usr/bin/syslinux | grep SYSLINUX SYSLINUX SYSLINUX SYSLINUX 4.04 SYSLINUX 4.04 2011-04-18 MODE_SYSLINUX MODE_SYSLINUX_DOSWIN
- install-mbr コマンドがあるなら
-
mbr パッケージに含まれる
install-mbr
コマンドでも ブートストラップ書き込みが可能です。# dd if=/dev/zero of=/dev/sdz bs=446 count=1 # install-mbr /dev/sdz # syslinux -i /dev/sdz1
- パーティションを一から切りなおす
-
※念のために、DDforWindowsなどで全体のイメージファイルをバックアップしておきませう。
意味わからない人はやらない方がいいかも。間違うとエライことになるので。USBメモリが
/dev/sdz
の場合です。- パーティションテーブルを含めMBRから第1パーティションの先頭セクタあたり?までをクリア(0書き込み)
# dd if=/dev/zero of=/dev/sdz bs=512 count=64
※install-mbrコマンドの実行が必要な場合もあるかな?mbr パッケージは Knoppix 5.x、SystemRescueCd、INSERT などのLiveCDにも入ってます。
fdiskやGPartedなどでパーティション作成(boot指定も)、FAT(16 or 32)でフォーマット後にSYSLINUXのインストール
■ isohybrid
まだあんまり多くないようですが、こんなのもあります。
isoイメージがUSBメモリ用などとの兼用になってるという... イメージ書き込みツールでisoをUSBメモリへ一発書き込みするだけでブート可能なUSBメモリが出来上がるのです。
- Grub4dos "isohybrided" - reboot.pro
- Ubuntu Manpage: isohybrid - Postprocess ISO images for hybrid mode
現状で私が知ってるのは下記だけだったりしますが。
- Vine Linux インストール用 iso
- Debian GNU/Linux インストール用 iso
- Parted Magic
- Super Grub2 Disk
ただ、これは一時使用には簡単で便利ですがそのままだと短所もあったり。
- Windows 上でUSBメモリが使えないとか
- ファイルシステムがiso9660だったりとか
- 拙作めも :