openfiler を USBメモリ にインストールするには

半日かかってしまったので、作業メモ。ネットでいろいろな方法があるが、多分これが最短だと思う。なお、モジュールアップデートを実施して、カーネルがアップデートされると、再設定するまで立ち上がらなくなります。公式インストーラが、USBインストールに対応すればいいのに・・・。

★情報は、ここからいただきました。
https://forums.openfiler.com/viewtopic.php?id=3274

■USBメモリにインストールする際の問題点

 ・GRUBのロード先パーティション番号が異なるため、パーティションが見つけられず起動できない。
 → インストーラ実行時は、USBメモリは内蔵ディスクの次の番号になるが、BIOSでのHDDエミュレーション時は、最初の番号になるためと思われる。

 ・USBドライバが読み込まれていないカーネルでは、ブート中にパーティションを見失うため起動が出来ない。
 → USBメモリからの起動は、BIOSでHDDエミュレーションされるが、カーネルが起動された時点でBIOSのHDDエミュレーションではなくなるためと思われる。


■インストールの手順

【HDDx2(sda,sdb)、USBメモリ(sdc)の構成の場合です。環境により読み替えてください。】

 1)openfilerのISOイメージをCDに書き込む。

 2)インストールしたいマシンのBIOS設定を変更する
  起動順序をCDROM -> HDD の順にする
  HDDのデバイス優先順位を変更する
   HDD1 -> HDD2 -> USB になっているはずなので、これを、
   USB -> HDD1 -> HDD2 に変更する。

 3)CDから起動する。ブートメニューがでたら、"linux expert"と入力し起動する。
  → USBメモリがインストール先として選択できるようになる。

 4)言語、キーボードの設定をして進める。

 5)パーティションの設定画面で、Automaticを選択し、チェックボックスをSDC(USBメモリ)だけにして、インストールを進める。(情報元では、USBメモリ内にはSWAPを作るなと書いてあるが、作っても今のところ不具合は無い・・・。作ってはいけない理由求む)

 6)インストールを進める。1時間位はかかるので、気長に待つ。

 7)インストールが終わったら、再起動する。

 8)CDから起動する。ブートメニューがでたら、"linux rescue"と入力し起動する。

 9)initrdにUSBドライバを組み込んで作り直す。

 10)USBメモリをマウントする。
   mkdir /mnt/usb1
   mount /dev/sdc2 /mnt/usb1
   mount /dev/sdc1 /mnt/usb1/boot

 11) USBメモリファイルシステム内でintrdを再構築、grub変更する。

  11−1) /mnt/usb1 を一時的にルートにする(作業用)
   chroot /mnt/usb1

  11−2) initrdを再構築する。
   cd /boot
   mv initrd-xxx initrd-xxx.original
    ※元のinitrdリネームバックアップ。initrdを入力してTABキー押せば入力が楽。
   mkinitrd --preload usb-storage initrd-xxx kernel-xxx
    ※initrd-xxxの部分は、initrdと入力しTABキーを押し、ORIGINALを消す。
    ※kernl-xxxの部分は、initrdと入力しTABキーを押し、
     先頭のinitrd- と末尾のimg.originalを削ってしまえばOK

  11−3) GRUBの設定を変更する。
   vi /boot/grub/grub.conf
    ※17行目の root(hd2,0) を root(hd0,0) に書き換える。
    ※環境によってはそのままでもいいのかもしれない。

  11−4) chrootを終了させる。
   exit

 12)再起動する。
   exit
    ※rescueモードが終了し再起動する。
    ※CDを取り出しておく。