Tiny Core Linux 4.7.7日本語入力対応版のライブCD作成

[Tiny Core Linux4.7.7で日本語入力](02085d9864970b3c41a1)のところでTiny Core Linux 4.7.7で日本語入力がまぁまぁできたので、この状態を元にライブCDを作成してみたいと思います。

※Tiny Core Linuxでは起動時にホームディレクトリのパーミッションやオーナーを強制的に変更してしまいます。作業ディレクトリとしてホームディレクトリ/home/tcを使う場合は気をつけて下さい。可能であれば別のディレクトリを使う事をお勧めいたします。

## 事前準備
ライブCD作成に必要となるパッケージをインストールし解凍します。

Tiny Core Linuxのインストーラー（tc-install）とライブCD作成ツール（ezremaster）をインストールします。

```bash:
tce-load -wi tc-install
tce-load -wi ezremaster
```

tc-installを改造してtc-install-jpを作成しますのでtc-installを解凍します。

```bash:
unsquashfs -d tc-install /etc/sysconfig/tcedir/optional/tc-install.tcz 
```

## tc-installの日本語対応版(tc-install-ja)の作成

必要なファイルをのコピーします。

```bash:
mkdir -p tc-install-ja/usr/local/bin
mkdir -p tc-install-ja/usr/local/share/applications

/bin/cp -f tc-install/usr/local/bin/* tc-install-ja/usr/local/bin
/bin/cp -f tc-install/usr/local/share/applications/* tc-install-ja/usr/local/share/applications
```

tc-install.shを変更します。

```bash:
vi tc-install-ja/usr/local/bin/tc-install.sh
```
```diff:tc-install-ja/usr/local/bin/tc-install.sh
@@ -276 +276 @@
-  	echo "APPEND initrd=$BOOTPATH/$ROOTFS.gz quiet waitusb=5:"$TARGETUUID" tce="$TARGETUUID" " >> /mnt/drive/syslinux.cfg
+  	echo "APPEND initrd=$BOOTPATH/$ROOTFS.gz quiet tz=JST-9 notuc lang=ja_JP.UTF-8 kmap=qwerty/jp106 waitusb=5:"$TARGETUUID" tce="$TARGETUUID" " >> /mnt/drive/syslinux.cfg
@@ -303 +303 @@
-  echo "APPEND initrd=$ROOTFS.gz quiet waitusb=5:"$DATAUUID" tce="$DATAUUID" " >> /mnt/drive/syslinux.cfg
+  echo "APPEND initrd=$ROOTFS.gz quiet tz=JST-9 notuc lang=ja_JP.UTF-8 kmap=qwerty/jp106 waitusb=5:"$DATAUUID" tce="$DATAUUID" " >> /mnt/drive/syslinux.cfg
@@ -370 +370 @@
-	  echo "APPEND initrd=$BOOTPATH/$ROOTFS.gz quiet waitusb=5:"$TARGETUUID" tce="$TARGETUUID" " >> $BOOTDIR/extlinux/extlinux.conf
+	  echo "APPEND initrd=$BOOTPATH/$ROOTFS.gz quiet tz=JST-9 notuc lang=ja_JP.UTF-8 kmap=qwerty/jp106 waitusb=5:"$TARGETUUID" tce="$TARGETUUID" " >> $BOOTDIR/extlinux/extlinux.conf
@@ -549 +549 @@
-  COREPLUSINSTGROUP=""
+  COREPLUSINSTGROUP="ja"
```

tc-installのソースが発見できなかった事と、Cとかもあまり好きな人じゃないというか、あまり使った事ないので、tc-installはやめてtc-install.shを使うように強引に変更しちゃいます。

```bash:
vi tc-install-ja/usr/local/share/applications/tc-install.desktop
```
```diff:tc-install-ja/usr/local/share/applications/tc-install.desktop
-Exec=tc-install
+Exec=sudo aterm -e tc-install.sh
```
```bash:
rm -f tc-install-ja/usr/local/bin/tc-install
```

## tc-install-jaパッケージの作成とインストール

依存関係はtc-installと同じなのでそのままコピー。

```bash:
/bin/cp -f /etc/sysconfig/tcedir/optional/tc-install.tcz.dep tc-install-ja.tcz.dep
```

パッケージを作成して、

```bash:
rm -f tc-install-ja.tcz
mksquashfs tc-install-ja tc-install-ja.tcz
md5sum tc-install-ja.tcz > tc-install-ja.tcz.md5.txt
```

今は使用しませんのでコピーだけしておきます。

```bash:
/bin/cp -f tc-install-ja.tcz* /mnt/sda1/tce/optional/
```

## ライブCD作成（リマスター）
CorePlus-4.7.7を元にライブCDを作成するためCorePlus-4.7.7.isoを再度ゲットします。CorePlus-4.7.7.isoは[Tiny Core Linuxの公式サイト](http://distro.ibiblio.org/tinycorelinux/) から [Downloads](http://distro.ibiblio.org/tinycorelinux/downloads.html) -> [Archive of past base releases: 4.x](http://distro.ibiblio.org/tinycorelinux/4.x/x86/archive) -> [4.7.7](http://distro.ibiblio.org/tinycorelinux/4.x/x86/archive/4.7.7/) からをダウンロードできます。

ライブCD作成のための設定ファイルを作成します。

```bash:
vi CorePlus-4.7.7-ja.cfg
```
```text:CorePlus-4.7.7-ja.cfg
cd_location = /home/tc/CorePlus-4.7.7.iso
temp_dir = /home/tc/CorePlus-4.7.7-ja
cc = tz=JST-9 notuc lang=ja_JP.UTF-8 kmap=qwerty/jp106
app_outside_initrd_onboot = Xvesa.tcz
app_outside_initrd_onboot = Xlibs.tcz
app_outside_initrd_onboot = Xprogs.tcz
app_outside_initrd_onboot = wbar.tcz
app_outside_initrd_onboot = flwm_topside.tcz
app_outside_initrd_onboot = rxvt-unicode.tcz
app_outside_initrd_onboot = scim-anthy.tcz
app_outside_initrd_onboot = mplus-fonts.tcz
app_outside_initrd_onboot = kmap-jp106.tcz
app_outside_initrd_onboot = locale-ja.tcz
app_outside_initrd_onboot = Xlocale-ja.tcz
app_outside_initrd_onboot = nls_cp932.tcz
app_outside_initrd_onboot = busybox-ja.tcz
app_outside_initrd = tc-install-ja.tcz
app_outside_initrd = libpng12.tcz
```

ライブCDの中身を作成します。

```bash:
sudo rm -rf CorePlus-4.7.7-ja
remaster.sh CorePlus-4.7.7-ja.cfg extractimage
remaster.sh CorePlus-4.7.7-ja.cfg bootcode
remaster.sh CorePlus-4.7.7-ja.cfg apps
```

tc-installをtc-install-jaに変更します。

```bash:
sudo sed -i 's/tc-install.tcz/tc-install-ja.tcz/' CorePlus-4.7.7-ja/image/cde/*.lst
sudo sed -i 's/tc-install.tcz/tc-install-ja.tcz/' CorePlus-4.7.7-ja/image/cde/*.instlist
```

インストールされるファイルの一覧を作成します。

```bash:
sudo vi CorePlus-4.7.7-ja/image/cde/ja.instlist
```
```text:CorePlus-4.7.7-ja/image/cde/ja.instlist
scim-anthy.tcz
mplus-fonts.tcz
Xlocale-ja.tcz
kmap-jp106.tcz
locale-ja.tcz
rxvt-unicode.tcz
busybox-ja.tcz
nls_cp932.tcz
```

ISOファイルを作成します。

```bash:
remaster.sh CorePlus-4.7.7-ja.cfg package
mv -f CorePlus-4.7.7-ja/ezremaster.iso CorePlus-4.7.7-ja.iso
```
## 動作チェック
CorePlus-4.7.7-ja.isoをUSBメモリなどにコピーして、CD-Rに焼いてブートして動作確認をします。