Ubuntu - Wine で YUMI を試したことメモ
Windows用アプリである YUMI(Your Universal Multiboot Installer)を Ubuntu上の Wineを使ってマルチブートUSBメモリーを作成しようと思いました。
YUMIのサイトに Ubuntu 16.04で作成する手順 が掲載されていたのでその手順に従い作成したのですが結果当方の環境では USBメモリーから起動することは出来ませんでした。
その詳細と原因はこちらの Ubuntu Wine(ワイン)の YUMI で作成 に掲載しています。
このページは USBメモリーからマルチブートツールアプリを起動すべく試したことのメモを掲載しています。(2018/2)
試したバージョン | YUMI-2.0.5.0.exe , YUMI-2.0.5.2.exe , YUMI-2.0.5.3.exe
作業環境
- パーティションテーブル | msdos
- Legacy BIOS + MBR(マスターブートレコード)
- PC | 自作機 スリムタワー型PC
- OS | Ubuntu 16.04LTS(64-bit)
- USBメモリー | SanDisk Cruzer Glide™ 3.0 16GB
- VirtualBox , Plop Boot Manager | スクリーンショット撮影用
- Ubuntu 端末上のUSBメモリーは /dev/sdc
Wineの設定
- Wine | 32-bit
- OS | Windows 7
Windows 7 Professional 64-bitのコントロールパネル-プログラムと機能に表示されるマイクロソフト関連のプログラム
- MS.NET 4.5
- MSXML Core Services 4.0
- Visual C++ 2005
- Visual C++ 2013
を Winetricksからインストールした。(今回の件に関係あるのか不明)
SysLinux手動インストール
Ubuntu - Wineで YUMIを実行しても SysLinuxのブートローダーファイルとライブラリファイルが作成されません。
そこで USBメモリーに multibootディレクトリを作成し、そこに SysLinuxを手動でインストールします。端末から
$ sudo syslinux -d multiboot /dev/sdc
を実行すると指定したディレクトリに ldlinux.sys と ldlinux.c32 が作成されます。この状態で YUMIを実行すると以下のエラーメッセージが表示され先に進めませんでした。
** yumi 2.0.5.2 setup error ** This yumi revision users a newer syslinux version that is not compatible with earlier revisions. このyumiリビジョンは、以前のリビジョンと互換性のない新しいsyslinuxバージョンです。 Please ensure yuor usb drive doesn't contain earlier revision installs. お使いのUSBドライブに以前のリビジョンのインストールが含まれていないことを確認してください。
Ubuntu 16.04LTSの SysLinuxのバージョンは 6.03で YUMIのバージョンと同じですがリビジョンが違うようです。
USBメモリーのMBRを初期化
文字通り MBR(マスターブートレコード)を初期化(0で埋める)した後、YUMIを使ってみました。
先頭446バイトを初期化してみる
MBRの 446バイトまでを初期化し Syslinuxのブートローダーをインストールします。。Ubuntu 16.04LTSの端末から
$ dd conv=notrunc bs=446 count=1 if=/usr/lib/SYSLINUX/mbr.bin of=/dev/sdc
を実行します。このコマンドラインを訳すと
“USBメモリーの先頭1ブロック(デフォルト512バイト)の440バイトを NULL(0)埋めする。そして Syslinuxの mbr.binを MBRにコピーする”
となります。そしてこの状態から
- Wineから YUMI-2.0.5.0.exeを実行
- 前セクションのコマンドで ldlinux.sysと ldlinux.c32を作成
- GPartedで /dev/sdc1パーティションに bootフラグを設定する
を行ったのですがやはり起動できませんでした。
参考 | ArchWiki Syslinux
次の画像は上記コマンド実行と bootフラグ設定後の先頭512バイトをダンプしたスクリーンショットです。
水色の枠で囲った部分がパーティションテーブルです。この中で 80がブートフラグ、0cが ファイルシステムFAT32,LBAを示します。
赤枠の 55 aa はブート署名でこれが 00 00 となっているデバイスに OSはインストール出来ません。
先頭512バイトを初期化してみる
MBRの 512バイトを初期化します端末から
$ sudo dd if=/dev/zero of=/dev/sdc bs=512 count=1
を実行します。続けて次のコマンドで初期化されたことを確認します
$ sudo hexdump -C -n 512 /dev/sdc
確認できたところで GPartedで
- パーティション(msdos)を作成
- フォーマット(FAT32)
- bootフラグを設定
を行い Wineから YUMI-2.0.5.0.exeを実行し、MBRを見てみるとブートローダー部は 0のままでした。もちろん起動しません。
雑感
やはり YUMIは Windowsで使うべきものですね。
参考まで
下の画像は USBメモリーの先頭 446バイト(fig1)と 512バイト(fig2)を初期化した時のスクリーンショットです。
2つの違いは fig1はパーティションテーブルが残り、fig2は完全初期化です。後者をデバイス全体で行うことを「0フィル」または「物理フォーマット」すると呼んでいます。いわゆる完全削除というやつです。
HDDであれ SSDであれブートセクタを初期化するとこのような状態になります。