DSCN0918フレッツのIPv6 IPoE網を利用してVPNを構築できるソフト「広域イーサネクスト」はセンター側(サーバー)とブランチ側(クライアント)の2枚のCD-ROMで提供されています。CD-ROMから起動するだけで設定も操作も不要という素晴らしいものなのですが、小型化しようとするとどうしてもCD-ROMドライブが邪魔になってきます。そこで今回、広域イーサネクストをUSBメモリから起動できるようにしてみました。

【おおまかな手順】
1.CD-ROMから起動してUSBメモリにインストールする
2.USBメモリに必要なファイルをコピーする
3.起動スクリプトを修正する

【準備】
1.広域イーサネクストの登録を済ませてISOファイルをダウンロード、CD-Rに焼いておく。
2.USBメモリはFAT16かFAT32でフォーマットしておく

【USBメモリにインストールする】
1.CD-ROMから起動し、最初の画面が現れたらTABを2回押します。起動オプションの設定画面になるので、半角スペースに続けて single と入力してENTERを押します。これはシングルモードで起動させる方法です。

2.起動したらCD-ROMとUSBメモリのデバイス名を調べます(dmesgやfdiskコマンドなどで)
仮に以下のデバイス名として説明していきます
・CD-ROM: /dev/sdb
・USBメモリ: /dev/sr0

※デバイス名は環境によって異なります。間違えると本当に大変なことになるので気をつけてください。意味がわからない場合は作業を中止してください。

3. /run/initramfs/live/LiveOS/ に移動します。
4.以下のコマンドを実行してUSBメモリに書き込みます。
# ./livecd-iso-to-disk /dev/sr0 /dev/sdb1
(エラーが出るけどそのまま続行してたぶんOK)

5.終わったら電源を切ります。

【USBメモリの設定】
1.Windowsを起動して、USBメモリとCD-ROMを接続します。
2.USBメモリのsyslinux/syslinux.cfgを開き、「LANG=**」という箇所があったら消して保存します。
3.CD-ROMの ve/ フォルダをUSBメモリの LiveOS/ 内にコピーします。

【起動スクリプトを修正する】
ここからが大変です。起動システムはsquashfsという圧縮ファイルシステム(/run/initramfs/live/LiveOS/squashfs.img)に納められているのですが、この中の起動スクリプト(/etc/rc.local)の中でCD-ROMを参照するようになっています。そのためCD-ROMが無ければ正常に起動しません。そこでこの起動スクリプトを修正して、CD-ROMからではなく、USBメモリを参照するように変更します。

1.USBメモリから起動し、最初の画面が現れたらTABを2回押します。起動オプションの設定画面になるので、半角スペースに続けて single と入力してENTERを押します。

2.何か書き込みが可能なファイルシステムをマウントします。
以下の例では /mnt/usb に外付けドライブをマウントしたと仮定します。

3.squashfsのファイルを解凍します
# cd /mnt/usb
# unsquashfs -d image /run/initramfs/live/LiveOS/squashfs.img

4.イメージをマウントします
# mkdir /mnt/image
# mount image/LiveOS/ext3fs.img /mnt/image

5.起動スクリプトを編集します
# vi /mnt/image/etc/rc.local

mkdir /mnt/live
mount /dev/cdrom /mnt/live
という行を以下に変更する
ln -s /run/initramfs/live/LiveOS/ve /mnt/live

これはCD-ROMをマウントしていたところを、さきほどコピーしたve/フォルダの方を参照するようにするための変更です。/run/initramfs/live/LiveOS/ というディレクトリが起動したシステムから参照することができるフォルダのようです。

6.編集が終わったらイメージをアンマウントします
# umount /mnt/image

7.squashfsのファイルを再構築します
# mksquashfs image squashfs.img

8.このファイルを何らかのデバイスにコピーしておき、もう一度Windowsを起動します。

9.USBメモリの LiveOS/ フォルダを開き、squashfs.imgファイルを適当にリネームます。次に先ほど作成した squashfs.img ファイルをコピーします。

【完了!】
以上です。これでUSBメモリから広域イーサネクストが起動できるようになりました。
ちなみにセンター側のCD-ROMとブランチ側のCD-ROMで違うのは、ve/ フォルダの vedata.txt ファイルだけです。このファイルによってセンター側として起動するか、ブランチ側として起動するかが決まります。2つファイルをコピーしておいて必要に応じて差し替えるという手もありますね。後から書換が出来るというのがUSBメモリのメリットです。

いや〜、結構めんどくさいですね。他に簡単な方法をご存じでしたら教えてください。