Tiny Core Linux 資料一覧
2015/11/29更新
対応バージョン: 6.4.1
Tiny Core Linuxには以下の3種類があるが、ここでは一番最小のCoreをインストールする手順を示す。Coreであっても必要に応じてパッケージを追加していくことで機能追加が可能である。Core(10MB)
Tiny Core Linuxのベースとなる最小構成のシステム。UIはコマンドラインのみで、必要なパッケージも自信でインストールする。
TinyCore(15MB)
Coreの上にGUI(デスクトップ環境)が追加されたもの。ネットワークは有線LANのみ。
CorePlus(86MB)
TinyCoreと同様、GUIを備えておりウィンドウマネージャを7種類から選択可能。無線LANやUS以外のキーボードマップも利用可能で各種ツールも備える。
インストールは物理マシンではなくVirtualBoxの仮想マシン上とする。
準備するもの
CoreのISOイメージ
以下のダウンロードページよりCoreのISOイメージ(Core-current.iso)を入手する。
仮想マシン
VirtualBoxに以下の要件で仮想マシンを作成する。見て分かるようにメモリ・HDDともに非常に少ない容量しか必要としない。
タイプ
Linux
バージョン
Other Linux (64-bit)
メモリ
128MB
HDD
2GB(VDI)
上記以外に外部ホストからのSSH接続用としてポートフォワーディングの設定を行っておく。
設定はVirtualBoxメニューの[設定] > [ネットワーク] > [アダプター 1] > [高度] > [ポートフォワーディング]にて行い、ここではローカルの2222ポートへの接続をゲストOSの22ポートに転送するものとする。
名前
(任意) (例: SSH)
プロトコル
TCP
ホストIP
(空欄のままでよい)
ホストポート
2222
ゲストIP
(空欄のままでよい)
ゲストポート
22
インストール
仮想マシンを起動すると起動ディスクを指定する画面が表示されるので先ほど入手したCore-current.isoを指定するとわずか数秒でOSが起動する。
コマンドプロンプトが表示されるのでまずインストーラを取得する。
tc@box:~$ tce-load -wil tc-install
次にインストーラを実行する。対話形式で進めていけば特に問題なくインストールが完了する。
tc@box:~$ sudo tc-install.sh
インストールイメージの指定
ここではISOイメージを利用するので「c」を指定する。
Core Installation. Install from [R]unning OS, from booted [C]drom, or from [I]so file. (r/c/i): <- c
インストール種別の指定
f(Frugal)は通常インストール、h(HDD)とz(Zip)はUSBメモリからそれぞれHDDモード/ZIPモードで起動する場合に指定する。ここでは内蔵HDD(*)にインストールするので「f」を指定する。
(*) 内蔵HDDは実際にはVirtualBox上の仮想HDDを指すが分かりやすくするため内蔵HDDと表記する。
Select install type for /mnt/sr0/boot/core.gz Frugal * Use for frugal hard drive installations. Note: You will be prompted for disk/partition and formatting options. HDD * Use for pendrives: Your BIOS must support USB-HDD booting. * A single FAT partition will be made. Note: Requires dosfstools extension. Warning: This is a whole drive installation! Zip * Use for pendrives. Drive will be formatted into two FAT partitions. * One small one for USB_ZIP boot compatibility, and used to hold Tiny Core. * The remaining partition will be used for backup & extensions. Note: Requires dosfstools and perl extensions. Warning: This is a whole drive installation! Select Install type [F]rugal, [H]DD, [Z]ip. (f/h/z): <- f
使用するディスクの領域
1(全体)か2(指定したパーティション)かを選ぶことができる。ここではディスクの全領域を使うこととし「1」を指定する。
Select Target for Installation of core 1. Whole Disk 2. Partition Enter selection ( 1 - 2 ) or (q)uit: <- 1
インストールするディスクの指定
sd1(内蔵HDD)とsr0(CD/DVD-ROM)が選択できるが内蔵HDDにインストールするので「1」を指定する。
Select disk for core 1. sd1 2. sr0 Enter selection ( 1 - 2 ) or (q)uit: <- 1 (HDDを使うので)
ブートローダのインストール指定
必要に応じてブートローダをインストールするか指定する。ここではとりあえずインストールすることにして「y」を指定する。
Would you like to install a bootloader? Most people should answer yes unless they are trying to embed Core in to a different Linux distribution with an existing bootloader. Enter selection ( y, n ) or (q)uit: <- y
ディスクのフォーマット形式指定
ディスクをどの形式でフォーマットするか指定する。任意で構わないがここでは「3」(ext4)を指定する。
Select Formatting Opton for sda 1. ext2 2. ext3 3. ext4 4. vfat Enter selection ( 1 - 4 ) or (q)uit: <- 3
ブートオプション指定
ブート時のオプションを指定する。この指定はインストール後に/etc/sysconfig/tcedir/boot/extlinux/extlinux.confを編集すれば変更できるのであまり深く考えなくてもよい。ここでは何も指定しない。
Enter space separated boot options: Example: vga=normal syslog showapps waitusb=5 <- (Enter)
インストール最終確認
ここから先はディスクをフォーマットするので後戻りできない旨のメッセージが出力されるので、今までの指定で問題なければ「y」を入力する。「y」以外を入力すればインストールが中断するので最初からやり直せる。
Last chance to exit before destroying all data on sda Continue (y/..)? <- y : Writing zero's to beginning of /dev/sda Partitioning /dev/sda /dev/sda: Formatting /dev/sda1 mke2fs 1.42.12 (29-Aug-2014) 0+1 records in 0+1 records out 440 bytes (440B) copied, 0.000793 seconds, 541.8KB/s UUID="*************************************" Applying extlinux. /mnt/drive/tce/boot/extlinux is device /dev/sda1 Setting up core image on /mnt/sda1 Installation has completed Press Enter key to continue. <- Enter
これでOSをリブートすればインストールは完了となる。
tc@box:~$ sudo reboot
ちなみに従来から用意されているtc-installを実行すると以下のようなエラーが出るのでスクリプト版のtc-install.shを利用すること。
tc-install: error while loading shared libraries: libfltk.so.1.3: cannot open shared object file: No such file or directory
インストール後の最小設定
Coreインストール後、コンソールとリモート接続でそれぞれ使う場合に最低限必要と思われる設定を行う。また時刻がUTCのままなのでJSTに変更する。
日本語キーボードマップ(jp106)インストール
CoreではUSのキーボードマップしかインストールされないので日本語キーボードマップを有効にする。
まずパッケージをインストールする。
tc@box:~$ tce-load -wi kmaps.tcz
onboot.lstにこのパッケージが追加されOSブート時にこの機能が有効になる。
tc@box:~$ cat /etc/sysconfig/tcedir/onboot.lst kmaps.tcz
各種キーマップは/usr/share/kmap配下に格納されるのでブート時にこれを読み込むようbootlocal.shに以下を追加する。
tc@box:~$ sudo echo "loadkmap < /usr/share/kmap/qwerty/jp106.kmap" >> /opt/bootlocal.sh
ここで/opt配下の保全(バックアップ)をする。Tiny Core Linuxはファイルシステム含めてオンメモリで動作するためOSブート時に復元したいファイルをあらかじめ/mnt/sda1/tce/mydata.tgzに保存しておくと次回OSブート時に復元される。
保存したい対象は/opt/.filetool.lstに記述しfiletool.sh -bコマンドでmydata.tgzに保全することができる。保存対象はデフォルトで/optと/homeが指定されているので他にも保存したいファイルがあれば追記する。
尚、パスは先頭の'/'を省くこと。
% cat /opt/.filetool.lst opt home % filetool.sh -b Backing up files to /mnt/sda1/tce/mydata.tgz/ Done.
SSHサーバ設定
リモートから接続するためにSSHサーバを設定する。
まずパッケージをインストールする。
tc@box:~$ tce-load -wi openssh.tcz
続いて設定ファイルを編集する。
tc@box:~$ cd /usr/local/etc/ssh tc@box:~$ sudo vi sshd_config
設定の詳細については以下を参照のこと。細かな制御やデフォルトでの挙動を変えなくてよい場合はいったんデフォルトのままでよい。
関連資料・記事
設定ファイルを編集した場合、リブートすると元に戻ってしまうので/opt/.filetool.lstに追記して保全されるようにする。あわせてサーバの鍵ペアが毎回作成し直されることを防ぐために鍵ファイルの保全も行う。両ファイルとも/usr/local/etc/ssh配下に格納されるのでこのディレクトリごと保全する。
tc@box:~$ echo "usr/local/etc/ssh" >> /opt/.filetool.lst tc@box:~$ filetool.sh -b
リモートから接続するにあたり今のtcアカウントにパスワードを設定するか、リモート接続用のアカウントを用意する。ここでは前者の対応とする。
tc@box:~$ passwd tc
パスワードファイル(/etc/passwd,/etc/shadow,/etc/group)もOSをリブートすると元に戻ってしまうので/opt/.filetool.lstに追記して保全されるようにする。
tc@box:~$ echo "etc/passwd" >> /opt/.filetool.lst tc@box:~$ echo "etc/shadow" >> /opt/.filetool.lst tc@box:~$ echo "etc/group" >> /opt/.filetool.lst tc@box:~$ filetool.sh -b
ここまで設定が終わったらサーバを起動する。
tc@box:~$ sudo /usr/local/etc/init.d/openssh start
まずローカルから接続できることを確認し、次にリモートホストから接続できればOKである。
tc@box:~$ ssh tc@localhost remote% ssh tc@localhost -p 2222
次回OSブート時にSSHサーバが起動するようにbootlocal.shに以下を記述しておく。
tc@box:~$ sudo echo "/usr/local/etc/init.d/openssh start" >> /opt/bootlocal.sh tc@box:~$ filetool.sh -b
タイムゾーンの設定
Coreをインストールした状態ではタイムゾーンがUTCになっているのでJSTに変更する。
本来であればブートオプションのAPPEND行の最後に「tz=JST-9」を追加すればよいはずであるがうまく動作しない。
tc@box:~$ tce-load -wi tzdata.tcz tc@box:~$ sudo vi /etc/sysconfig/tcedir/boot/extlinux/extlinux.conf : APPEND initrd=/tce/boot/core.gz quiet waitusb=5:UUID="************************************" tce=UUID="************************************" tz=JST-9
そこで$HOME/.profileに以下の設定をすることで代用している。
tc@box:~$ echo "export TZ='JST-9'" >> ~/.profile tc@box:~$ filetool.sh -b
ここまでで必要最低限と思われる設定を行ったのであとはGUI環境の整備、日本語化、各種サーバの構築など様々な拡張が可能である。
参考サイト
Tiny Core Linux技術情報 (Qiita)
TinyCoreに関するブログ記事 (Resilient Mind)