bash-2.05$ ls -la /hdd1/.sys/
drwxrwxr-x 2 root root 1024 Jan 12 2007 .
drwxr-xr-x 4 root root 1024 Jul 13 2007 ..
-r-------- 1 root root 2149 Feb 21 2006 hdimage2.tgz
-r-------- 1 root root 85 Feb 21 2006 hdlist1.dat
bash-2.05$ ls -la /hdd2/.sys/
drwxrwxr-x 2 root root 1024 Feb 21 2006 .
drwxrwxr-x 4 root root 1024 Jul 14 2007 ..
           

  SL-C3200 内蔵ドライブ換装と/hdd3のext3化  
 発売当初に購入したSL-C3000。度重なる改造手術(HDD換装)に耐え、二年半近く頑張ってくれたのですが、とうとうヘッドフォン端子が逝ってしまいました。プラグに物があたると片耳にしか聞こえないモノラルになる(いや、それはモノラルとは違う)。これは修理がめんどい。そもそも部品が手にはいるのかも不明だったり。
 私のザウルスの25%はMP3プレイヤーとして機能しているので、この故障は実に致命的。かてて加えて、2度目のCF換装でフレキケーブルのコネクタを壊して、HDD保護用の粘着テープで応急修理したままというヤバい状態(とかいいながら元気に動いてますが)だったりします。そろそろ新しいの(…orz)が欲しいなっと。
というわけで、買って来たSL-C3200に施したMD→CF換装&/hdd3パーテext3化の覚書を残してみることにしました。
 ドライブの交換は分解/改造行為であり、実施後はメーカーの保証が受けられなくなります

 このドキュメントは私、zautaleがSL-C3200の内蔵ドライブを交換した際の手順を、将来再び換装を行う時のために記録したもので、むやみに内蔵ドライブの交換を推奨するものではありません。

 ここに記載してあることに間違いがないとは保証できませんし、これを読んで行った改造などの行為により発生した損害に対して責任を負うこともできません。

分解/改造はあくまで自己責任で

よろしくお願いいたします。
方針
  こんな手順で進めました。
1) SL-C3200のCF換装 → 工場出荷から/hdd3の容量が増えた状態を構築
2) /hdd3のext3化
3) アプリの導入、設定、データの復元
換装
以下の作業はスロットに何も差さずにSL-C3200を再起動した状態で行いました。
  CFスロットにカードを差したまま再起動すると/dev/hdaと/dev/hdcが入れ替わってしまい、気づかないうちに内蔵ドライブのパーティションを破壊してしまう可能性があります(つーかやった。購入3時間後に)。
  自分がどこを操作しているかを把握した上で各作業を行ってください。
 …ま、データをあきらめれば初期化でなんとかなりますが。
作業はrootユーザーにスイッチして行います。たいていのファイルが削除できるアカウントですので作業には注意してください。
CFカードのフォーマット
  まずはパーティションの構成を決めます。
  C3200のhdd1とhdd2には.sysディレクトリが存在するだけで、C3000のようにシステムが入っているわけではありません。そのためパーティションも10Mバイトほどの領域が取られているだけです。
  そのあたりを踏まえ、8G-CFのパーティションは以下のように切ることにします。
 
/hdd112M
/hdd212M
/hdd3残り全部
hdd1とhdd2はもう少し削れる。
  hdd4をスワップパーティションとして確保するというのもアリですが、ファイルにするとサイズを動的に変更し易いというのもあるので今回は作らないことにします。
  CFカードをスロットに差し、fdsik /dev/hdc を実行してパーティションを作成。
構成は以下の通り。
 
Device Boot Start End Blocks Id System
/dev/hdc1   1 25 12568+ 83 Linux
/dev/hdc2   26 50 12600  83 Linux
/dev/hdc3   51 16122 8100288  b Win95 FAT32
  wコマンドでドライブにパーティション情報を書き込んでfdiskを終了。
  それぞれのパーティションをmk*fsコマンドでフォーマットします(hdcをアンマウントしてからでないとエラーになりますので注意)
  mke2fs -j /dev/hdc1
mke2fs -j /dev/hdc2
mkdosfs -F32 /dev/hdc3
ファイルのコピー
  フォーマットが終わったらパーティションをマウントしてファイルを複製します。
  mount /dev/hdc1 /mnt/cf
cd /hdd1
cp -R -p .sys /mnt/cf/
umount /dev/hdc1
  mount /dev/hdc2 /mnt/cf
cd /hdd2
cp -R -p .sys /mnt/cf/
umount /dev/hdc2
  mount -t vfat -o iocharset=utf8,codepage=932 /dev/hdc3 /mnt/cf
cd /hdd3
cp -R * /mnt/cf/
umount /dev/hdc3
  hdc3のmountコマンドのオプションがやたらと多いのはファイルシステムがFAT32だから。文字コードの指定を忘れると漢字のファイル名が化けることがあるそうです。
分解と交換
  裏蓋のネジを全部外して分解します(同じ金型の筺体を使っているのでネジの場所は4桁ザウルス共通)。電池蓋の内側にもネジがありますのでご注意を。
  裏蓋はSDカードスロットのところに指をかけ、電池側から持ち上げて、CFスロット側にスライドさせるようにすると簡単に外れます(電池蓋のロックスイッチをなくさないように注意)
  本体基板と液晶をつなぐフレキケーブルがありますが、これは外す必要はありません。ドライブ交換の際には基板を斜めに支えなくてはなりませんが、作業に支障はないと思います。
  続いて、基板を固定しているネジを外します。
ネジには基板を筺体に固定しているものと、内蔵ドライブを保護するハーネス(?)基板を固定しているものがありますが、気にせず全部外します。
  SDカード側から持ち上げるように基盤を浮かせます。このとき、本体背面の拡張ポートのカバーが引っかかりますので外してください。
  ドライブを固定しているハーネスはネジのほかにプラスチックの爪で本体基板に固定されています。
  爪はCFスロット側のほうが長いので、反対の電池側から外します。
  精密ドライバのようなものを爪と基板のあいだに押し込み、そっと外します。力を加えすぎて爪を折ってしまうと組み付けができなくなるので注意してください。
  ハーネス基板はコネクタでも本体基板に接続しているので、CFスロット側の爪を軸に無理な力をかけず、剥がすように外してください。
  衝撃保護テープが貼られたMDは外側に向かってスライドさせると簡単に外れます。
外れたら交換するCFを逆の手順で差し込んで下さい。
  ハーネス基板の組み付けは分解と逆の手順で行います。その際、二つの基板をつなぐコネクタがしっかり刺さっていること、爪がしっかり本体基板を噛んでいることに注意してください。
  本体基板を筐体にはめてネジを締めます(裏蓋用と基板用でネジの色が違うので注意のこと)
再起動
  電池を入れ、蓋を占めてスイッチを入れます。交換、再組み立てが正常にできていれば、いつものようにザウルスが立ち上がります。
なお、基板が定位置でしっかり固定されていないと電源を入れても立ち上がりません(充電ランプが点滅する)
  立ち上がったらdfコマンドとシステム情報アプレットで内蔵ドライブの容量を確認します。
 
Filesystem Size Used Available Use% Mounted on
rootfs 43.0M 43.0M 0 100% /
/dev/root 43.0M 43.0M 0 100% /
/dev/mtdblock3 78.0M 6.1M 71.9M 8% /home
/dev/ram1 44.0k 29.0k 15.0k 66% /dev
none 1.0M 64.0k 960.0k 6% /dev/shm
/dev/hda1 11.9M 1.0M 10.2M 9% /hdd1
/dev/hda2 11.9M 1.0M 10.3M 9% /hdd2
/dev/hda3 7.7G 709.0M 7.0G 9% /hdd3

/hdd3のext3化
データの待避
  まずはデータをバックアップします。
基本的には /hdd3/Documents。状況に応じて/hdd3の下を適宜。
  マルチメディア辞書の辞書ファイルなど、CDから復元できるものはムリにバックアップする必要はありませんが、USB経由で流し込むよりは復元が早いので、ざっくりコピーしてしまうのもお勧めです。
rc.rofilesysのチェック
  起動時の状態によって変わるドライブを/hdd?にマウントするためのスクリプトです。C3000の同ファイルと比較したところ、違うのはコンテンツディレクトリの記述の部分だけでしたので、ext3設定済みのC3000版にその記述を追加しました。
rc.rofilesys.gz
再フォーマット
  /hdd3をext3に変更します。
  そのためにパーティションをアンマウントするのですが、ファイルがロックされているとマウント解除できません。高速起動しているすべてのアプリをとめてください。
  umount /dev/hda3
fdisk /dev/hda
  tコマンドで第3パーティションのidを 83 に変更し、wコマンドでパーティション情報を書き出してfdiskを終了。
  mke2fs -O dir_index,filetype,has_journal,sparse_super /dev/hda3
  でフォーマットします(ディレクトリインデックスによるファイルアクセスの高速化に効果があるかは不明)
rc.rofilesysの更新
  rc.rofilesysをext3対応にしたファイルで上書きします。
  ext3対応版rc.rofilestsをSDカードのルートに入れ、スロットにセット。
そのままでは書き換えができないので / をrwでリマウントしてからコピーします。
  mount -o remount,rw /
cd /root/etc/rc.d
cp -p rc.rofilesys rc.rofilesys.org
cp /mnt/card/rc.rofilesys .
  再起動すれば/hdd3がext3パーティションとしてマウントされます。
環境の復元
  ここからは私個人の環境や設定を復元するための覚書になります。
他の人にはあまり参考にはならないかも知れません。
スワップファイルの作成
  ファイルによるswapを設定します。容量は128M。
  スワップファイルがなければ自動的に生成してswaponするというスクリプトを用意してあるので、ディレクトリを掘ってスクリプトのシンボリックリンクを自動実行に設定するだけ。
  mkdir /hdd3/Escape/SwapArea
ln -s /home/zaurus/Documents/Parts_Files/scripts/rc.swap /etc/rc.d/rc5.d/S50swap
rc.swap.gz
samba
  半角の英大文字と小文字を識別するようにsmb.conf/usr/lib/samba/を修正します。
最後の行([home]セクション)
  case sensitive = yes
  を追加。
セルフ開発環境
  GCCによるセルフ開発環境を構築します。
  長らく、古~いセルフ開発のパッケージを使っていましたが、PHPの最新版をビルドできなかったのを機に、ipk化したdev_img1.6に切り替えました。
  セルフ開発関連は別ページにまとめましたので、こちらを参照してください。
openSSH
  必要なipkを導入後、受付ポート番号を変更します。
変更するのは /etc/services のみ。sshd.conf は弄る必要なし。
ポート番号の変更を有効にするには再起動が必要です。
bbhttpd
  拙作のユーザー辞書メンテツールの稼働プラットフォームになる簡易webサーバです。
 ipkを導入後、ドキュメントルートをhdd3の下に逃がします。
  mkdir /hdd3/Escape/software
mkdir /hdd3/Escape/software/bbhttpd

cd /home/QtPalmtop/bin/bbhttpd

cp -R -p docroot /hdd3/Escape/software/bbhttpd/
mv docroot docroot.org
ln -s /hdd3/Escape/software/bbhttpd/docroot docroot
その他、導入したアプリ
keyhelper
設定ファイルを /home/zaurus/Setteings/ に。
nkf
Perl
Ruby
sudo
zeditor
gakuoff
imedic
PIMデータの復元
  /home/zaurus/Applications/dtm/ にバックアップを展開。
おまけ
起動画面
/home/QtPalmtop/pics144/Startup_screen.bmp を変更。