USBフラッシュメモリからopenSUSEをインストールする

 こういうコンテンツを書いていると、何度もOSをインストールすることになり、インストールも非常に長い時間かかります。
 仮想化環境も併用してますが、やはりハードウェアでないと出来ないことも多いです。
 何度もインストールを繰り返していると、煩わしくなり時間を短縮したいと思うようになります。
 なのでUSBメモリを使用してインストールの短縮化を試みます。

 インストールで一番時間がかかっているのはCD/DVDからのファイルのコピー/インストールですが、そもそもCD/DVDというのは読み出しが早いメディアというわけではありません。
 それならもっと読み出しが早いメディアを選択すればインストール時間が短縮できるなじゃないかということで、USB外付けストレージを選択しました。
 外付けHDDでもいいのですが、コンテンツの見栄えを考えてUSBフラッシュメモリにしてみました。

 使用したUSBメモリ
 トランセンド JetFlashV33/8GB [速度] 読み出し15MB/s 書き込み7MB/s

 一番簡単な方法はUSBメモリにインストールDVDの中身を全てコピーしてしまうことです。
 そしてDVDインストール時に、F4を押してインストールソースに「ハードディスク」を選択します。
 

 USBメディアを指定します。
 

 これだけで動作します。

 普通にインストールを進めていき、ファイルのコピーのところまで進むと。
 お、確かに早いです。
 DVDではデフォルト設定のインストールで1時間半くらいかかっていましたが、USBメモリになるとざっと25分くらいです。やきもきしていた読み込み中ファイル表示が目まぐるしく変わり、進捗を表すプログレスバーも目に見えて減っていきます。
 なかなか良いですね。
 試したところ、外付けUSBハードディスクよりも、USBフラッシュメモリのほうが速いように感じます。インストール時間に大差はないのですが。

 なお、インストールDVDのisoイメージもマウントできます。
 フラッシュメモリにインストールDVDのisoイメージをコピーするだけでOKです。
 ですが、通常2GB以上のUSBメモリはFAT32でフォーマットされています。FAT32では4GB以上あるのisoイメージをコピーできません。
 大容量といえばNTFSですが、NTFSではopenSUSEのセットアップ時に素直に行きません。
 そこで一度Linux上でUSBメモリをEXT3形式にフォーマットしておきましょう。
 YaSTのシステム、ディスクの分割を選択します。
 

 編集をクリックして、EXT3フォーマットを選択します。
 

 フラッシュメモリにインストールDVDのisoイメージをコピーするときは、簡単な名前にしておきます。
 指定するときに不便だからです。ここでは「dvd.iso」としました。
 あとはインストール時にハードディスク指定で/dvd.isoと付け加えればOKです。
 

 一つ気をつけなくてはいけないことは、この方法でインストールした場合、システムのメインリポジトリがUSBメモリの指定になっています。
 USBメモリを挿しっぱなしにしておくのでなければ、リポジトリは変更しておきましょう。


 UBSからブートしてインストールする。

 USBにインストールプログラムをコピーし、USBからインストーラをブートできるようにできます。
 ですが少しパーティションの問題があります。
 インストールブートディスク作成コマンド。「mkbootdisk」コマンドは、FAT16フォーマットした領域にしか実行できません。
 ですが2GBを越える領域をFAT16でフォーマットすることは出来ません。
 そこでまず、USBフラッシュメモリ内の領域を分割します。

 USBメモリをopenSUSEに接続します。
 そしてターミナルからUSBメモリをアンマウントします。アンマウントしないとディスクが分割できません。

 コマンドラインからのアンマウント
 #sudo umount /media/disk

 YaSTの「ハードウェア」「パーティション」を選択します。
 USBメモリを選択し(画面ではUSBメモリはディスクはsdbとして認識されています)、現在あるパーティション(/dev/sdb1)を削除します。
 

 USBメモリにプライマリパーティションを作成します。サイズはmakebootdiskが使用する容量が22MB程度なので32MBとしておきましょうか。
 

 FAT16でフォーマットするように指定します。
 

 Linuxがパーティションを作成した段階でファイルシステムマウントしようとするので、フォーマットでエラーを吐きます。

 ターミナルを起動し、アンマウントします。
 #sudo umount /media/disk

 フォーマットが成功します。

 これでUSBメモリの分割は完了です。
 さて、ここで問題です。第一パーティションにFAT16を指定したのに、YaSTのフォーマットが形式がFAT32となっています。
 そして実際にFAT32でフォーマットされているのです。
 FAT32では次の手順でエラーを吐きます。

 理由はわかりませんが、Linuxでは上手くFAT16でフォーマットされないようです。
 仕方ないのでWindowsに頼りましょう。
 Windowsに接続すると、USBメモリの第一パーティションだけマウントされます。
 フォーマットからFATを選択します。
 

 次にYaSTから、syslinuxをインストールしておきます。
 syslinuxを入れておこないと次のmakebootdiskコマンドで失敗します。
 

 openSUSEのインストールDVDを入れます。
 openSUSEへUSBメモリを挿します。
 ターミナルを立ち上げて、USBメモリをアンマウントします。

 $sudo umount /media/disk

 インストールDVD内にあるmakebootdskコマンドを実行します。
 コマンドにはDVDのマウントパスを指定します。

 $/media/SU10.30/suse/i386/makebootdisk --partition /dev/sdb1/media/SU10.30/

 USBメモリの第一パーティションにOSインストーラがコピーされ、USBメモリからブートできるようになります。
 USBメモリがマウントされていたり、FAT16でフォーマットされていなかったりするとこの時点でエラーが表示されます。

 エラーなくコマンドが終了すれば完了です。
 BIOSの起動順序を変え、USBメモリから起動するとDVDのときと同じく起動画面が拝めます。

 ですがやってみればわかるのですが、USBメモリからインストーラを起動するところまではできるのですが、別途インストールソース(DVDやネットワークなどOSデータを格納した媒体)を指定する必要があります。
 実はこのあと、USBメモリの残った領域をFAT32でフォーマットし、そこへDVDのデータをコピーし、/dev/sda1から起動し、/dev/sdb2からインストールするという手順を試してみました。

 インストールまでは成功するのですが、インストールーパーティションの変更時にエキスパートモードからブートローダのインストール先の変更、再起動時の「Repair InstalledSystem」からのブート領域の手動選択、起動後のGRUBのディスクマップの変更、ルート領域とMBRへのGRUBのインストールと、その他の手順が煩雑であったため諦めました。
 とりあえずUSBメモリを使用してのインストール時間の短縮が成功しただけでもヨシとします。
prev.gif