<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Resilient Mind</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/" />
    <link rel="self" type="application/atom+xml" href="http://www.markn.org/blog/atom.xml" />
    <id>tag:www.markn.org,2012-01-25:/blog//6</id>
    <updated>2012-03-19T16:58:09Z</updated>
    <subtitle>Life in London, in the space time continuum.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 5.13-ja</generator>

<entry>
    <title>Tiny Core Linuxでサーバ運用(6) - まとめ</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2012/03/tiny-core-linux6.html" />
    <id>tag:www.markn.org,2012:/blog//6.974</id>

    <published>2012-03-19T16:56:11Z</published>
    <updated>2012-03-19T16:58:09Z</updated>

    <summary> さて、Tiny Core Linuxでサーバを作成してしばらく経ちますが、今のところ問題なく動いています。 これまで説明したものの他に、いくつかサービスを動かしていますが、たいした設定もないので説明...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[<p>
さて、Tiny Core Linuxでサーバを作成してしばらく経ちますが、今のところ問題なく動いています。
これまで説明したものの他に、いくつかサービスを動かしていますが、たいした設定もないので説明は省略します。
</p>
<p>
特に良かったのは、frugal installにより設定ファイルを殆どバックアップファイルに入れる構造のため、/opt/.filetool.lstを見れば、オリジナルの配布ファイルに対して何を変更しているのか一目瞭然なことです。
また、/mnt/sda1/tce/onboot.lstを見れば、どのパッケージを使っているのかもすぐわかります。
このように、メンテナンス性がかなり上がりました。
</p>
<p>
また、無駄なディスク容量を使わないのも助かります。
これまで使っていたFedoraでは、ホームディレクトリおよびWebのコンテンツを除いて約14GBの容量を使っていました。
同じ条件で、今のマシンが使っている容量は200MB以下です。
また、メモリ使用量も80MB程度しかありません(実際にはこのほかにMySQLが128MB程度使いますが、設定で変更可能です)。
</p>
<p>
これなら、けっこう昔のマシンや非力なマシンでも十分活用できそうです。
私が持っている工人舎PMなんかで動かすという手もあるかも。
</p>
<p>
<br/>
</p>
<p>
なお、Tiny Coreは本日時点でバージョン4.3になっています。
主な変更は、新しいエクステンションであるscm (Self Contained Mountable)というものが追加されていることのようです。
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>

<p>
<br/>
</p>


]]>
        
    </content>
</entry>

<entry>
    <title>Tiny Core Linuxでサーバ運用(5) - Movable Type</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2012/02/tiny-core-linux5.html" />
    <id>tag:www.markn.org,2012:/blog//6.973</id>

    <published>2012-02-25T21:30:05Z</published>
    <updated>2012-03-21T08:27:24Z</updated>

    <summary> このブログで使っているソフトウェアはMovable Typeなわけですが、Apache上にこれをインストールします。 なお、つい最近Movable Typeはセキュリティホールが見つかりアップデート...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[

<p>
このブログで使っているソフトウェアは<a href="http://www.sixapart.jp/movabletype/">Movable Type</a>なわけですが、Apache上にこれをインストールします。
なお、つい最近Movable Typeはセキュリティホールが見つかりアップデートが行われているので、必ず最新バージョン(本日時点で4.38、5.07および5.13)をインストールするようにしましょう。

</p>
<p>
Movable TypeはPerlで動作するのですが、いくつかのCPANパッケージを必要とします。
Tiny Coreのfrugal installでは、普通にCPANを使ってインストールすると、リブート時にそれが消えてしまうので、少々細工が必要となります。
それには、必要なファイルをTCZにしてアーカイブしておくのですが、それと同時に他のTCZのパッケージングの例に倣い、不要なファイルを削除してサイズを最小のパッケージにします。
</p>
<p>
具体的には、以下のパッケージが必要となります。
</p>
<ul>
<li>TCZパッケージでインストールするもの(tce-load -wiする)
<ul>
  <li>perl5
  </li><li>mysql
  </li><li>ImageMagick (CAPTCHAに必要)
</li></ul>
</li><li>CPANのコンパイルに必要となるもの(tce-load -wilする)
<ul>
  <li>compiletc (コンパイル環境のメタパッケージ)
  </li><li>squashfs-tools-4.x (TCZ作成のため)
  </li><li>mysql-dev (DBD::mysql作成のため)
  </li><li>ImageMagick-dev (Image::Magick作成のため)
</li></ul>
</li><li>作成する必要のあるCPANパッケージ
<ul>
  <li>DBI
  </li><li>DBD::mysql
  </li><li>Image::Magick
</li></ul>
</li></ul>
<p>
まずは、必要なTCZパッケージを入れておきます。
</p>
<blockquote>
<pre>% tce-load -wi perl5
% tce-load -wi mysql
% tce-load -wi ImageMagick
% tce-load -wil compiletc
% tce-load -wil squashfs-tools-4.x
% tce-load -wil mysql-dev
</pre>
</blockquote>
<p>
次に、CPANパッケージをインストールするのですが、あとでTCZパッケージを作成するため、インストール先を/tmp下にしておきます。
</p>
<blockquote>
<pre>% cd /tmp
% mkdir -p /tmp/PKG/usr/local/lib/perl5/5.14.1/
% cpan
o conf makepl_arg "LIB=/tmp/pkg/usr/local/lib/perl5/5.14.1 \
 PREFIX=/tmp/pkg/usr/local/lib/perl5/5.14.1 \
 INSTALLMAN1DIR=/tmp/man1 INSTALLMAN3DIR=/tmp/man3"
(ここでインストール先をデフォルトから変更)
o conf commit
o exit
</pre>
</blockquote>
<p>
この設定では、cpanのパッケージは/tmp/pkgにインストールされます。
マニュアル類は/tmp/man1および/tmp/man3に入りますが、これらのファイルはここでは使わないので捨ててしまいます。
完全なパッケージを作るなら、これらを入れたものにするか、マニュアル類を別途パッケージ化しますが、ここでは省略します。
</p>
<blockquote>
<pre>% cpan DBI
% mksquashfs pkg perl_DBI.tcz
% cd pkg
% find usr -not -type d &gt; ../perl_DBI.tcz.list
% cp perl_DBI.tcz perl_DBI.tcz.list /mnt/sda1/tce/optional
% tce-load -wi perl_DBI
</pre>
</blockquote>
<p>
これでDBIを含むperl_DBI.tczというパッケージができました。
DBD::mysqlについても同様にします。
</p>
<blockquote>
<pre>% rm -rf /tmp/pkg/*
% cpan DBD::mysql
% mksquashfs pkg perl_DBD_mysql.tcz
% cd pkg
% find usr -not -type d &gt; ../perl_DBD_mysql.tcz.list
% cp perl_DBD_mysql.tcz perl_DBD_mysql.tcz.list /mnt/sda1/tce/optional
% tce-load -wi perl_DBD_mysql
</pre>
</blockquote>
<p>

</p>
<p>
Image::Magickは少々厄介です。
TinyCore 4.2.1でダウンロードされるImageMagickのバージョンは6.7.3なのですが、私がCPANを使って入手した最新のImage::Magick CPANパッケージのバージョンは6.7.4になります。
この両者は互換性がないようで、コンパイルが失敗します。そのため、別途ImageMagick-6.7.3をダウンロードし、中からImage::Magick (PerlMagick)を抜き出して使うことにします。
もしCHAPTCHAを使わないのであれば、この作業は不要です。
</p>
<blockquote>
<pre>% cd /tmp
% mkdir pm
% tar xf <a href="http://image_magick.veidrodis.com/image_magick/ImageMagick-6.3.7-9.tar.gz">ImageMagick-6.7.3-9.tar.gz</a>
% cd PerlMagick
% perl Makefile.PL LIB=/tmp/pm INSTALLMAN1DIR=/tmp/man1 INSTALLMAN3DIR=/tmp/man3
% make install
% mksquashfs pm perl_Image_Magick.tcz
% cd pkg
% find usr -not -type d &gt; ../perl_Image_Magick.tcz.list
% cp perl_Image_Magick.tcz perl_Image_Magick.tcz.list /mnt/sda1/tce/optional
% tce-load -wi perl_Image_Magick
</pre>
</blockquote>
<p>
<br />
</p>
<p>
必要なパッケージのインストールができたので、Movable Typeをインストールします。
私はバージョン5を使いました。
まず、パッケージをcgi-binで展開し、mt-staticディレクトリをWebで普通に参照可能な場所に移動します。
なお、この例ではApacheの設定は<a href="http://www.markn.org/blog/2012/02/tiny-core-linux4.html">前回のApacheのセットアップ</a>で使ったものを利用しています。
</p>
<blockquote>
<pre>% cd /mnt/sda1/apache2/cgi-bin
% unzip MT-5_13-ja.zip
% mv MT-5_13-ja mt
% cd mt
% mv mt-static /mnt/sda1/apache2/htdocs
</pre>
</blockquote>
<p>
あとは、Webブラウザでhttp://ドメイン名/cgi-bin/mt/にアクセスし、対話式インストーラでインストールしてください。
詳しいドキュメントは<a href="http://www.movabletype.jp/documentation/mt5/installation/mt-wizard.html">Movable Typeのサイト</a>にあります。
</p>
<p>
一点注意としては、セットアップ後に作成されるcgi-bin/mt/mt-config.cgiに次の行を追加しておきます。
</p>
<blockquote>
<pre>CaptchaSourceImageBase /mnt/sda1/apache2/htdocs/mt-static/images/captcha-source
</pre>
</blockquote>
<p>
以上です。
</p>
<p>
</p>
<p>
</p>
<p>
</p>

<p>
<br />
</p>


]]>
        
    </content>
</entry>

<entry>
    <title>Tiny Core Linuxでサーバ運用(4) - Webサーバ</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2012/02/tiny-core-linux4.html" />
    <id>tag:www.markn.org,2012:/blog//6.972</id>

    <published>2012-02-21T18:22:22Z</published>
    <updated>2012-03-21T08:27:56Z</updated>

    <summary> 今回はWebサーバをインストールします。 例によって、Apacheを使います。 インストールはいつものように、tce-loadするだけです。 % tce-load -wi apache2 デフォルト...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[

<p>
今回はWebサーバをインストールします。
例によって、Apacheを使います。
インストールはいつものように、tce-loadするだけです。
</p>
<blockquote>
<pre>
% tce-load -wi apache2
</pre>
</blockquote>
<p>
デフォルトでは、ドキュメントのルートディレクトリは/usr/local/apache2/htdocsになっています。
ここにファイルを置いてもいいのですが、Tiny Coreはこのディレクトリをバックアップ(/opt/filetool.lst)に入れておかないと、リブート時に消えてしまいます。
コンテンツも結構あるので、Webのコンテンツは消えない(圧縮せず、起動時に展開しない)別のディレクトリに入れることにします。
ここでは、そのディレクトリを/mnt/sda1/apache2/htdocsとして話を進めます。
</p>
<p>
以前のサーバから、Webのコンテンツを/mnt/sda1/apache2/htdocsにコピーしておきます。
</p>
<p>
/usr/local/apache2/conf/httpd.confを編集します。
編集する箇所はコンテンツの設定等によって変わりますが、以下のような点です。
</p>
<blockquote>
<pre>
User daemon # daemonというユーザを作るか、tcなど既存のユーザに変える
ServerAdmin foo@bar.com # 存在する管理者のメールアドレスに変える
ServerName www.markn.org:80 # 自分のサーバ名に変更
DocumentRoot "/mnt/sda1/apache2/htdocs" # 利用するドキュメントルートに変更
&lt;Directory "/mnt/sda1/apache2/htdocs"&gt; # デフォルトの/usr/local/apache2/htdocsから変更
# この内部は必要に応じて変更。以下は例
# Options Indexesを削除(ディレクトリリスティングを不許可)
# Options Includesを追加(SSIを使用)
&lt;/Directory&gt;
&lt;IfModule dir_module&gt;
  DirectoryIndex index.html index.shtml # SSIを使う場合
&lt;/IfModule dir_module&gt;
ErrorLog "/mnt/sda1/apache2/logs/error_log" # ログの出力先を起動時に消えない場所にする
&lt;IfModule log_config_module&gt;
  CustomLog "/mnt/sda1/apache2/logs/access_log" combined # ログの出力先とフォーマット
&lt;/IfModule&gt;
&lt;IfModule alias_module&gt;
  ScriptAlias /cgi-bin/ "mnt/sda1/apache2/cgi-bin" # CGIの格納場所
&lt;/IfModule&gt;
&lt;IfModule mime_module&gt;
  AddType text/html .shtml # SSIで.shtmlファイルを使う場合
  AddHandler server-parsed .shtml
&lt;/IfModule&gt;
</pre>
</blockquote>
<p>
上記は実際のhttpd.confからの抜粋になっているので、実際のファイルを見ながら必要な箇所を修正します。
</p>
<p>
いつものように、バックアップファイル(/opt/.filetool.lst)にhttpd.confを追加します。
</p>
<blockquote>
<pre>
usr/local/apache2/conf/httpd.conf
</pre>
</blockquote>
<p>
最後に、ブート時にapacheを起動するよう設定するとともに、設定ファイルをバックアップします。
</p>
<blockquote>
<pre>
% sudo su
% echo "/usr/local/bin/apachectl -k start" &gt;&gt; /opt/bootlocal.sh
% exit
% filetool.sh -b
</pre>
</blockquote>
<p>
ここで、"apachectl -k start"で起動させるか(-kはなくてもいい)、リブートして動作を確認します。
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>

<p>
<br/>
</p>


]]>
        
    </content>
</entry>

<entry>
    <title>Tiny Core Linuxでサーバ運用(3) - 電子メール環境</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2012/02/tiny-core-linux3.html" />
    <id>tag:www.markn.org,2012:/blog//6.971</id>

    <published>2012-02-15T10:44:29Z</published>
    <updated>2012-03-21T08:33:28Z</updated>

    <summary> 電子メールについては、これまで長くFedora上にPostfix + Courier-IMAPという構成で使ってきました。 Tiny Coreで調べてみたところ、Postfixは普通にTCZパッケー...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[<p>
電子メールについては、これまで長くFedora上にPostfix + Courier-IMAPという構成で使ってきました。
Tiny Coreで調べてみたところ、Postfixは普通にTCZパッケージとしてありますが、Courier-IMAPはありません。
実は、私はFedoraでもCourier-IMAPをrpmビルドして使っていました。
</p>
<p>
最近、Courier-IMAPに代わって互換性のあるDovecotというIMAPサーバがあり、TCZパッケージとして用意されているので、こちらを使うことにしました。
</p>
<p>
<br />
</p>
<p>
Postfixのインストールはシンプルで、tce-load(またはAppBrowserでインストール)するだけですが、少し設定が必要です。
</p>
<blockquote>
<pre>% tce-load -wi postfix
</pre>
</blockquote>
<p>
まず、/usrl/local/etc/postfix/main.cfを編集します。
デフォルトのファイルに対し、以下のような変数を修正しました。
</p>
<blockquote>
<pre>myhostname = (メールサーバのホスト名)
mydomain = (ドメイン名)
myorigin = $mydomain
inet_interfaces = (allまたは必要に応じて)
mydestination = (必要なあて先を設定)
mynetworks_style = subnet
mynetworks = 自分のネットワークのセグメント
alias_maps = hash:/usr/local/etc/postfix/aliases
home_mailbox = Maildir/
</pre>
</blockquote>
<p>
以上が基本的な設定です。
このほか、以前使っていたセキュリティファイル(smtp.pem, server.key)を/usr/local/etc/postfixにコピーし、そのためのエントリを追加しておきます。
</p>
<blockquote>
<pre>smtpd_tls_cer_file = /usr/local/etc/postfix/smtp.pem
smtpd_tls_key_file = /usr/local/etc/postfix/server.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = キャッシュをおくファイル(/var等に設定)
</pre>
</blockquote>
<p>
そのほか必要に応じSSL等の設定もしますが、上記でも動作します。
</p>
<p>
必要なファイルをバックアップするために、エントリを/opt/.filetool.lstに追加しておきます。
</p>
<blockquote>
<pre>/usr/local/etc/postfix/main.cf
/usr/local/etc/postfix/server.key
/usr/local/etc/postfix/smtp.pem
/usr/local/etc/postfix/aliases
</pre>
</blockquote>
<p>
最後に、ブート時にサーバを起動させるために、/opt/bootlocal.shを修正します。
</p>
<blockquote>
<pre>% sudo su
% echo "/usr/local/etc/init.d/postfix start" &gt;&gt; /opt/bootlocal.sh
</pre>
</blockquote>
<p>
<br />
</p>
<p>
次に、IMAPサーバの設定をします。
インストールには、dovecotとともに、設定ファイルの格納されているdocecot-docも入れます。
</p>
<blockquote>
<pre>% tce-load -wi dovecot
% tce-load -wi dovecot-doc
</pre>
</blockquote>
<p>
設定ファイルのサンプルは/usr/local/share/doc/dovecot/example-config/dovecot.confにあるので、これを/usr/local/etc/dovecot/dovecot.confにコピーし、編集します。
そのままでも動作はしますが、私はIMAPのみ使い、POPなどは使わないので、protocolの修正をします。
また、IPv6は使わないので、listenも修正します。
</p>
<blockquote>
<pre>protocols = imap # popおよびlmtpを削除
listen = *       # "::"はIPv6用なので、削除
</pre>
</blockquote>
<p>
また、以前使っていたサーバからpemファイルをコピーし、/usr/local/etc/dovecot/dovecot.pemに置くとともに、関連する設定ファイルを修正します。
</p>
<blockquote>
<pre>% cd /tmp/tcloop/dovecot-doc/usr/local/share/doc/dovecot/example-config/conf.d/
% cp 10-mail.conf /usr/local/etc/dovecot/conf.d
(コピー後、
 mail-location = maildir:~/Maildir
 とする)
% cp 10-ssl.conf /usr/local/etc/dovecot/conf.d
(コピー後、
 ssl_cert = &lt;/usr/local/etc/dovecot/dovecot.pem
 ssl_key = &lt;/usr/local/etc/dovecot/dovecot.pem
 とする)
% cp auth-system.conf.ext /usr/local/etc/dovecot/conf.d
(コピー後、
 driver = shadow
 とする。ログインユーザのパスワードを使うため)
</pre>
</blockquote>
<p>
続いて、必要なファイルをバックアップリスト(/opt/.filetool.lst)に入れます。
</p>
<blockquote>
<pre>usr/local/etc/dovecot/dovecot.conf
usr/local/etc/dovecot/dovecot.pem
usr/local/etc/dovecot/conf.d
</pre>
</blockquote>
<p>
ブート時にdovecotを起動するようにし、忘れずにバックアップを取ります。
</p>
<blockquote>
<pre>
% sudo su
% echo "/usr/local/sbin/dovecot" &gt;&gt; /opt/bootlocal.sh
% exit
% filetool.sh -b
</pre>
</blockquote>
<p>
ここまできたら、postfixとdovecotを手動で起動させるか、リブートしてメールの送受信を確認します。
エラーが出るようなら/var/log/messagesを見ながら設定を確認します。
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>

<p>
<br />
</p>


]]>
        
    </content>
</entry>

<entry>
    <title>Tiny Core Linuxでサーバ運用(2) - インストール</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2012/02/tiny-core-linux2.html" />
    <id>tag:www.markn.org,2012:/blog//6.970</id>

    <published>2012-02-13T14:00:11Z</published>
    <updated>2012-03-21T08:34:30Z</updated>

    <summary> Tiny Core Linuxのバージョン4で大きく変わったのが、パッケージングです。 バージョン3まではTiny Core Linuxのコアファイルの構成は、bzImage(カーネルを格納)および...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[

<p>
Tiny Core Linuxのバージョン4で大きく変わったのが、パッケージングです。
バージョン3まではTiny Core Linuxのコアファイルの構成は、bzImage(カーネルを格納)およびtinycore.gz(ファイルシステムを格納)でした。
このtinycore.gzの中にはXなどのシステムも含まれていて、Micro Coreとは異なる構成になっていました。
</p>
<p>
バージョン4では、vmlinuz(カーネルを格納)、core.gz(ファイルシステムを格納)となりましたが、このcore.gzはMicro Core / Tiny Core共通のようです。
Xなどのファイルはtczパッケージとして別途tce/optionalに格納されています。
これにより、モジュラー化が進み、Micro CoreとTiny Coreを区別せずに利用することも可能になっています。
</p>
<p>
また、さまざまなアプリケーションが最初から入ったCore Plusというディストリビューションも用意されました。
</p>
<p>
私の目的はなるべくコンパクトにサーバを構築することなので(でもXくらいはほしい)、普通にTiny Coreを使います。
</p>
<p>
<br />
</p>
<p>
今回もVirtualBox上に環境を構築しました。
必要に応じてネイティブ環境に移行することも難しくありません。
</p>
<p>
最初にディスクを用意するのですが、とりあえずルートディレクトリに1GB、ホーム用に4GBを用意してみました。
</p>
<p>
isoイメージで起動したあと、tc-installというパッケージを使い、ディスクにインストールします。
</p>
<blockquote>
<pre>% tce-load -wil tc-install
% tc-install
</pre>
</blockquote>
<p>
ここでは記録のためにコマンドラインの記述を書いていますが、AppBrowserで対話的にインストールしてもかまいません。
tce-loadのオプションの-wilは、download + loadで、再起動時には読み込みません。
ちなみに、-wiとすると、再起動時に自動的に読み込む設定になります。
</p>
<p>
このツールは対話的なので、ルートディレクトリをフォーマットし、インストールを行います。
詳しくは<a href="http://distro.ibiblio.org/tinycorelinux/install.html">こちら</a>にも書いてあります。
インストールしたら、リブートして動作を確認します。
</p>
<p>
VirtualBoxで使うので、そのためのパッケージもインストールします。
</p>
<blockquote>
<pre>% tce-load -wi virtualbox-ose-additions
</pre>
</blockquote>
<p>
次に、ホームディレクトリ用のディスク領域をフォーマットします。
今回はVirtualBox上で別のディスクを使いました。
</p>
<blockquote>
<pre>% tce-load -wil cfdisk
% sudo su
% cfdisk /dev/sdb
(新しいディスクは私の場合sdb。ここで領域を編集)
% mkfs.ext4 /dev/sdb1
% rebuildfstab
% mount /mnt/sdb1
</pre>
</blockquote>
<p>
以前使っていたディスクからホーム領域をコピーします。
私の場合、ディスクイメージはvdiではなくvmdkファイルで、これ自体は問題ないのですが、FedoraでLVMを使っていたため、LVMパッケージを入れる必要があります。
</p>
<blockquote>
<pre>% tce-load -wil lvm2
(ここでpvscan, vgscan, lvscanコマンドなどを使い、ボリュームを確認します)
% vgchange -ay ボリュームグループ名(vgscanで確認したもの)
% mkdir /mnt/oldhome
% mount /dev/ボリュームグループ名/ボリューム名 /mnt/oldhome
(ボリューム名はlvscanで確認しておきます)
</pre>
</blockquote>
<p>
これで論理ボリュームにアクセスできるので、ホームディレクトリをコピーします。
</p>
<blockquote>
<pre>% cd /mnt/oldhome
% tar cf - home | (cd /mnt/sdb1; tar xvpf -)
</pre>
</blockquote>
<p>
必要なユーザを作成します。
</p>
<blockquote>
<pre>% adduser (ユーザ名)
</pre>
</blockquote>
<p>
ホームディレクトリを確認し、ユーザとグループのIDが同じになるよう、/etc/passwdと/etc/groupを編集します。
</p>
<p>
<br />
</p>
<p></p>
私のホームディレクトリは大きいので、起動・終了時に/mnt/sda1/tce/mydata.tgzにいちいちバックアップしたくありません。
また、これだと、サーバが突然ダウンしたときなどにデータを失う危険性もあります。
そのため、ホームディレクトリは直接sdb1を使うようにします。
これには、/mnt/sda1/tce/boot/extlinux/extlinux.confを編集します。
<p>
</p><blockquote>
<pre>DEFAULT core
LABEL core
KERNEL /tce/boot/vmlinux
APPEND initrd=/tce/boot/core.gz quiet home=sdb1
</pre>
</blockquote>
<p>
最後の行の"home=sdb1"が、ホームディレクトリにsdb1を使うための指定です。
</p>
<p>
ここまで来たら、/opt/.filetool.lstを編集して、/etcの必要なファイルがバックアップされるようにします。
</p>
<blockquote>
<pre>opt
etc/passwd
etc/passwd-
etc/shadow
etc/shadow-
etc/group
etc/group-
etc/gshadow
etc/gshadow-
</pre>
</blockquote>
<p>
最後に、設定をバックアップしておきます。
これで第一段階(?)終了。
</p>
<blockquote>
<pre>% filetool.sh -b
</pre>
</blockquote>
<p>
<br />
</p>
<p>
私のサーバで動作している主なサービスは以下のようなものです。
</p>
<ul>
<li>メール(SMTP, IMAP)
</li><li>Web
</li><li>ブログ(MovableType)
</li><li>Webのログ解析(Awstats)
</li></ul>
<p>
これから、これらのセットアップを書く予定です。
</p>
<p>
</p>

<p>
<br />
</p>


]]>
        
    </content>
</entry>

<entry>
    <title>Tiny Core Linuxでサーバ運用(1) - 序章</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2012/02/tiny-core-linux1.html" />
    <id>tag:www.markn.org,2012:/blog//6.969</id>

    <published>2012-02-11T17:44:21Z</published>
    <updated>2012-02-14T21:28:03Z</updated>

    <summary> TinyCore Linuxがバージョン4になってしばらくになります。 これまではRedHat→Fedora系統でアップグレードを続けていたのですが、パッケージをtidyにしておくのが結構大変で、こ...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[<p>
TinyCore Linuxがバージョン4になってしばらくになります。
これまではRedHat→Fedora系統でアップグレードを続けていたのですが、パッケージをtidyにしておくのが結構大変で、これを機にTinyCoreに入れ替えてみました。
</p>
<p>
TinyCoreだと、frugal installといって、パッケージをディスク内ではtczのまま入れておいて、起動時に解凍して使う使い方がお勧めになります。
これだと、ディスク使用量を最低にできるほか、設定やインストールで間違いがあっても簡単に元に戻せるというのが利点です。
また、設定ファイルなどで永続化しなければならないものを明示的に指定して自動的にアーカイブにまとめるので、配布されているファイルからの変更点や設定した点をひとまとまりに管理できるのも良いところです。
</p>
<p>
その代わり、最初のインストールでは最低限のパッケージしか入らないので、自分で必要なパッケージを全部インストールする必要がありますが、逆に言えば不要なものは一切インストールしないので、サーバを常に軽量に保てます。
</p>
<p>
<br />
</p>
<p>
今回は、それに伴いこのブログに使っているMovable Typeもバージョン4系から最新のバージョン5系にアップグレードしました。
Movable Typeのバックアップ・リストアでは、本来完全に同じバージョンを要求するのですが、バックアップファイルにちょっと手を入れるだけで最新バージョンでも(自己責任で)復元が可能です。
デザインが変わっているのは、以前使っていたデザインがうまくインストールできなかったからで、それほど深い意味はありません。
</p>
<p>
<br />
</p>
<p>
というわけで、これから少しづつTinyCoreでのサーバ構築について書いていこうと思います。
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>

<p>
<br />
</p>


]]>
        
    </content>
</entry>

<entry>
    <title>ANAビジネスクラスのチャイルドメニュー</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2012/01/ana-8.html" />
    <id>tag:www.markn.org,2012:/blog//1.246</id>

    <published>2012-01-15T16:22:23Z</published>
    <updated>2012-01-19T13:19:24Z</updated>

    <summary>先日子供と日本線に乗ったときに、チャイルドミールを頼みました。1歳の子に食べられるものが出るか心配でしたが、結果的にはなかなかでした。乗ったフライトは全日空のロンドン-東京線です。ビジネスクラスのチャ...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Flight" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[先日子供と日本線に乗ったときに、チャイルドミールを頼みました。1歳の子に食べられるものが出るか心配でしたが、結果的にはなかなかでした。乗ったフライトは全日空のロンドン-東京線です。<br /><br />ビジネスクラスのチャイルドミールがどんなものか、Web上を検索してもなかなか情報がなかったので、備忘録をかねて。<br /><br />LHR-NRTのフライト(NH202)。まずは(生意気にも)アミューズ。<br />サンドイッチなど。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.markn.org/blog/2012/01/15/P1010594.html" onclick="http://www.markn.org/blog/2012/01/15/P1010594.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.markn.org/blog/2012/01/15/P1010594-thumb-320x240.jpg" alt="P1010594.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" height="240" width="320" /></a></span>次に前菜。ハムやチーズなど。パンは大人と同じもののようです。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.markn.org/blog/2012/01/15/P1010597.html" onclick="http://www.markn.org/blog/2012/01/15/P1010597.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.markn.org/blog/2012/01/15/P1010597-thumb-320x240.jpg" alt="P1010597.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" height="240" width="320" /></a></span>そしてメイン。パスタとビーフストロガノフ。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.markn.org/blog/2012/01/15/P1010598.html" onclick="http://www.markn.org/blog/2012/01/15/P1010598.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.markn.org/blog/2012/01/15/P1010598-thumb-320x240.jpg" alt="P1010598.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" height="240" width="320" /></a></span>

デザートもあったのですが、食べられなかったので残念ながら頼みませんでした。<br /><br />帰りのフライト。NRT-LHR線(NH201)。やはりアミューズから。イチゴのピューレ(?)とチーズ。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.markn.org/blog/2012/01/15/P10109561.html" onclick="http://www.markn.org/blog/2012/01/15/P10109561.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.markn.org/blog/2012/01/15/P1010956-thumb-320x240.jpg" alt="P1010956.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" height="240" width="320" /></a></span>前菜。ラップとかウィンナーとかサラダとか。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.markn.org/blog/2012/01/15/P1010957.html" onclick="http://www.markn.org/blog/2012/01/15/P1010957.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.markn.org/blog/2012/01/15/P1010957-thumb-320x240.jpg" alt="P1010957.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" height="240" width="320" /></a></span>メイン。やはりパスタと、あとはコロッケや野菜。<br /><br /><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://www.markn.org/blog/2012/01/15/P1010959.html" onclick="http://www.markn.org/blog/2012/01/15/P1010959.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.markn.org/blog/2012/01/15/P1010959-thumb-320x240.jpg" alt="P1010959.JPG" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" height="240" width="320" /></a></span>デザートはプリンだったのですが、卵アレルギーで食べられないので頼みませんでした。<br /><br />エコノミークラスのチャイルドミールも実物は見たことがないので、これが内容から違うのか、器と盛り付けだけが違うのかは分かりませんが、内容としてはなかなかよかったのではないかと思います。1歳の胃袋に入る量ではなかったので、大部分残してしまったのがもったいなかったです。<br /><br /><div><br /></div>]]>
        
    </content>
</entry>

<entry>
    <title>イギリスのボーダ(Border Agency)でIRIS廃止へ</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2011/08/border-agency-iris.html" />
    <id>tag:www.markn.org,2011:/blog//1.245</id>

    <published>2011-08-19T11:04:34Z</published>
    <updated>2012-03-21T08:45:32Z</updated>

    <summary> 少し前から、私はイギリスの入国でIRIS(生体認証)による入国ができなくなりました。 以前の登録が期限切れしたのが原因のようです。 そのため、その次に出国する際に(IRISの登録は出国時にしかできな...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Flight" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="London" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[

<p>
少し前から、私はイギリスの入国でIRIS(生体認証)による入国ができなくなりました。
以前の登録が期限切れしたのが原因のようです。
</p>
<p>
そのため、その次に出国する際に(IRISの登録は出国時にしかできない)聞いてみたら、なんとIRISの登録はもうやっていないというではありませんか。
日本便が到着する午後3時以降のターミナル3の入国審査は非常に混雑するので、大変困ります。
</p>
<p>
実際、前回帰ってきたときは、ホールの外にまで人が溢れようかという混み様。
仕方なく、<a href="http://www.markn.org/blog/2010/12/ana-5.html">以前キープしておいた</a>Fast Track用のカードを使って入国することにしました。
で、自分の順番のときに入国審査の係の人に聞いたところ、IRISは廃止になるそうです。
既に新規登録は廃止になり、既存の登録者も今後1年ほどかけてフェーズアウトしていくことになるということです。
Gatwick空港のSouthなど、空港によっては、機械そのものの撤去も始まっているようです。
</p>
<p>
しかし、廃止にするならするで、混雑がさほどでもなくても1時間以上待たされる、入国審査のあの混雑を何とかしてほしいものです。
カウンターはいっぱいあるくせにロクに係はいないし、行列のコントロールは最悪だし。
先日は、後ろのほうにいる人を別の列に並びなおさせて、ぎりぎりで並びなおしにならなかった私は余計に時間がかかってしまいました。
列の先頭が複数あっても、係のいるカウンターはほとんど増えないためです。
</p>
<p>
これまでIRISで行列知らずだったので、次の国外出張が憂鬱です。毎回ファーストクラスに乗れるわけでもなし...。
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>
<p>
</p>

<p>
<br />
</p>


]]>
        
    </content>
</entry>

<entry>
    <title>Moving</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2011/06/moving.html" />
    <id>tag:www.markn.org,2011:/blog//1.244</id>

    <published>2011-06-14T13:44:50Z</published>
    <updated>2012-03-21T08:37:07Z</updated>

    <summary>先週引っ越しをしました。引っ越し先ですぐ電話とネットワークを使えるように早めに申し込んでおき、実際に電話は引っ越し直後から使えるようになっていたのですが、ネットワークがどうしても接続できませんでした。...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Life" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="London" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[先週引っ越しをしました。<br />引っ越し先ですぐ電話とネットワークを使えるように早めに申し込んでおき、実際に電話は引っ越し直後から使えるようになっていたのですが、ネットワークがどうしても接続できませんでした。<br /><br />昨日ようやく復活し、サーバを含め再起動できました。<br /><br />プロバイダの電話番号もネットワークにつながらないとわからないため、ようやく会社に出てから電話したところ、DSL ModemのユーザIDやパスワードが変更されていることがわかりました。おそらく、私がもともとTiscaliというプロバイダのカスタマで、この会社が現在はTalkTalkという会社に吸収されたためだと思います。<br /><br />カスタマサービスの対応は親切丁寧でしたが、そもそも新しい電話番号を含め、一切の情報がTalkTalkからは送られてきていませんでした。電話番号も、ためしに携帯電話にかけてみて知った次第です。<br /><br />これが英国の顧客対応の現実ですね...。<br /><br /><br />]]>
        
    </content>
</entry>

<entry>
    <title>Dublin</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2011/06/dublin.html" />
    <id>tag:www.markn.org,2011:/blog//1.243</id>

    <published>2011-06-04T11:08:16Z</published>
    <updated>2012-03-21T08:38:16Z</updated>

    <summary>昨日からアイルランドの首都のダブリンに移動しています。街中ということもあってか、みな遅くまで出歩いています。繁華街のTemple Barというところでは、夜の10時ごろでもまだまだ夜は始まったばかりと...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Life" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[昨日からアイルランドの首都のダブリンに移動しています。<br />街中ということもあってか、みな遅くまで出歩いています。繁華街のTemple Barというところでは、夜の10時ごろでもまだまだ夜は始まったばかりという感じで人があふれています。<br /><br />]]>
        
    </content>
</entry>

<entry>
    <title>Galway</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2011/06/galway.html" />
    <id>tag:www.markn.org,2011:/blog//1.242</id>

    <published>2011-06-02T18:41:25Z</published>
    <updated>2011-06-02T18:43:42Z</updated>

    <summary>今週は出張でアイルランドのGalway(ゴールウェイ)という町に来ています。なぜかホテルでも打ち合わせ先でも、会社にVPNできず、仕事のメールがぜんぜん読めません。ということで、ある意味大変ありがたい...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Life" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[今週は出張でアイルランドのGalway(ゴールウェイ)という町に来ています。<br />なぜかホテルでも打ち合わせ先でも、会社にVPNできず、仕事のメールがぜんぜん読めません。<br />ということで、ある意味大変ありがたい不具合なのですが、帰ってからが恐ろしい...。<br /><br /><br />]]>
        
    </content>
</entry>

<entry>
    <title>Tiny Core Linux - VirtualBoxで共有フォルダを使う</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2011/05/tiny-core-linux-virtualbox.html" />
    <id>tag:www.markn.org,2011:/blog//1.241</id>

    <published>2011-05-11T11:14:33Z</published>
    <updated>2011-05-11T11:16:04Z</updated>

    <summary> Tiny Core Linuxもバージョン3.6がリリースされ、私も使ってみました。 それほどは変わっていませんが、細かいところが多数改良されているようです。 さて、VirtualBoxで使っている...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[

<p>
Tiny Core Linuxもバージョン3.6がリリースされ、私も使ってみました。
それほどは変わっていませんが、細かいところが多数改良されているようです。
</p>
<p>
さて、VirtualBoxで使っている方も多いと思いますが、ホストOSとの共有フォルダを使う方法です。
Tiny Coreでは、tczパッケージでVirtualBox Guest Additionsが提供されているので、基本的にはそれをインストールするだけで使えます。
</p>
<blockquote>
<pre>% tce-load -wi virtualbox-ose-adiitions
</pre>
</blockquote>
<p>
ただ、これをインストールすると依存関係でXorgを含めた多数のパッケージがインストールされてしまいます。
Xorgが不要な場合や、私のように
<a href="http://www.markn.org/blog/2011/05/tiny-core-linux-9.html">カスタマイズ</a>している場合はあまりうまくありません。
そのため、最小のモジュールで使えるようにしてみました。
</p>
<p>
<br />
</p>
<p>
まず、Guest Additionsのモジュールのみをインストールします。
</p>
<blockquote>
<pre>% tce-load -wi virtualbox-ose-adiitions-modules-2.6.33.3-tinycore
</pre></blockquote>
<p>
virtualbox-ose-adiitions-modules-2.6.33.3-tinycore.tczであり、virtualbox-ose-modules-2.6.33.3-tinycore.tczではないので注意してください。
このtczは、3つのカーネルモジュールをインストールするだけです。
</p>
<p>
次に、virtualbox-ose-adiitions.tczから、mount.vboxsfを抽出し、/usr/local/sbinにコピーします。
</p>
<blockquote>
<pre>% cd /tmp
% tce-fetch.sh virtualbox-ose-adiitions.tcz
% tce-load -i squashfs-tools-4.x (まだダウンロードしていなければオプションは-wil)
% unsquashfs virtualbox-ose-adiitions.tcz
% sudo cp squashfs-root/usr/local/sbin/mount.vboxsf /usr/local/sbin
% rm -rf squashfs-root
</pre>
</blockquote>
<p>
このファイルがリブート時に再現されるよう、/opt/.filetool.lstに追加し、バックアップします。
</p>
<blockquote>
<pre>% echo usr/local/sbin/mount.vboxsf &gt;&gt; /opt/.filetool.lst
% filetool.sh -b
</pre>
</blockquote>
<p>
これで、以下のようにして共有フォルダをマウントできるようになります。
</p>
<blockquote>
<pre>% sudo mount.vboxsf 共有フォルダ名 マウントポイント
</pre>
</blockquote>
<p>
これで、非常に軽量に共有フォルダを有効にすることができました。
</p>
<p>
</p>
<p>
なお、この情報は、<a href="http://forum.tinycorelinux.net/index.php?topic=4831.0">フォーラム</a>にあったものをもとにしています。
</p>
<p>
<br />
</p>


]]>
        
    </content>
</entry>

<entry>
    <title>Server crash</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2011/05/server-crash.html" />
    <id>tag:www.markn.org,2011:/blog//1.240</id>

    <published>2011-05-05T18:20:57Z</published>
    <updated>2011-05-05T21:50:22Z</updated>

    <summary>ここ2日程度サーバが停止していましたが、実はサーバがクラッシュしてしまいました。具体的には、VMのイメージを誤って消してしまったのですが...。復元のためにあらゆるソフトを試してみましたが、不可能でし...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Information" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[ここ2日程度サーバが停止していましたが、実はサーバがクラッシュしてしまいました。具体的には、VMのイメージを誤って消してしまったのですが...。<br /><br />復元のためにあらゆるソフトを試してみましたが、不可能でした。論理的にはデータはディスク内に残っているのですが、どういう消え方をしたのか、ファイルエントリを見つけることもできませんでした。<br /><br />悪いことに、バックアップを取ろうとしていた矢先の出来事で、バックアップは2ヶ月前のものが最新でした。<br /><br />サーバ外にもデータの残っているWebサイトのデータは9割以上は復旧しましたが、3月以降のブログのエントリについては、URLが変わってしまいました。メールは推定7割程度のファイルが復旧できましたが、それ以外はなくなってしまいました。それ以外のデータで、3月以降にアップデートされたデータは消えてしまいました...。<br /><br />バックアップは大事ですね...。<br />]]>
        
    </content>
</entry>

<entry>
    <title>Tiny Core Linux (9) - microcoreで最小のXorg環境を作る</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2011/05/tiny-core-linux-9.html" />
    <id>tag:www.markn.org,2011:/blog//1.239</id>

    <published>2011-05-05T11:01:17Z</published>
    <updated>2011-05-05T11:22:44Z</updated>

    <summary> (Initially posted on 20 April 2011)  これまでの流れ。 前回の方法に味をしめて(?)、microcoreでも同じ方法が使えるのではないかと思いました。 もともと、...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[<p>
(Initially posted on 20 April 2011) 
<br/>
</p>

<p>
<a href="http://www.markn.org/blog/linux/">これまでの流れ</a>。
</p>
<p>
<a href="http://www.markn.org/blog/2011/05/tiny-core-linux-8.html">前回の方法</a>に味をしめて(?)、microcoreでも同じ方法が使えるのではないかと思いました。
</p>
<p>
もともと、microcoreとtinycoreの差分はtczで提供されているので、microcoreで起動したら、次のようにすればmicrocoreをtinycore相当にすることができます。
</p>

<blockquote>
<pre>% tce-load -i Xprogs
% tce-load -i Xlibs
% tce-load -i Xvesa
% tce-load -i flwm_topside
</pre>
</blockquote>
<p>
もちろん、Dynabook SS 3410ではXvesaの代わりにXorg-7.5でなければいけません。
しかし、この部分は既に前回最小のファイルセットを見つけました。
</p>
<p>
あとは、XprogsとXlibsに対して同じような作業をすればいいわけです。
</p>
<p>
<br />
</p>
<p>
で、また地道な作業で最小限のファイルセットを作成しました。
例により、自動的に新しいmicrocore.gzを作成するためのスクリプトと一緒に公開しておきます。
</p>
<blockquote>

<p>
<a href="http://www.markn.org/blog/2011/04/20/microcore-xorg.tar.gz">microcore-xorg.tar.gz</a>
&nbsp;
<a href="http://www.markn.org/blog/2011/04/20/microcore-xorg-flwm.tar.gz">microcore-xorg-flwm.tar.gz</a>
</p>
</blockquote>
<p>
準備として、/mnt/hda1/boot/microcore.gzを用意してください。
また、以下のパッケージを/mnt/hda1/tce/optionalに(tce-load -wで)入れておいてください。
</p>
<blockquote>
<pre>Xlibs.tcz
Xorg-7.5-lib.tcz
Xorg-7.5.tcz
Xprogs.tcz
feh-1.3.4.tcz
firmware.tcz
flwm.tcz
giblib.tcz
openssl-0.9.8.tcz
pixman.tcz
</pre>
</blockquote>
<p>
作成方法は、アーカイブを展開したあと、

</p>
<blockquote>
<pre>% sudo sh mkmicrocore.sh
</pre>
</blockquote>
<p>
となります。
これで、/tmp/microcore.gzが作成されます。
なお、Virtual Boxで試す場合は、Xorg-7.5.tcz.vbox.minlistをXorg-7.5.tcz.minlistにリネームしてmkmicrocore.shを実行してください。
</p>
<p>
<br />
</p>
<p>
今回は2バージョンあり、microcore-xorg-flwmはatermおよびflwmが入っています。
そのため、このパッケージではX Window上でターミナルを開いて作業することが可能です。
なお、flwmは私の好みで、tinycore標準のもの(flwm_topside)ではなくてタイトルバーが横につくもの(flwm)を入れてあります。
標準のものにするには、flwm_topside.tczをtce-load -wでダウンロードし、flwm_topside.tcz.minlistを以下の内容で作成します。
</p>
<blockquote>
<pre>usr/bin/flwm_topside
</pre>

</blockquote>
<p>
また、mkmicrocore.shを以下のように修正します。
</p>
<blockquote>
<pre>(修正前) sh copyfromlist.sh flwm
(修正後) sh copyfromlist.sh flwm_topside
(修正前) echo flwm &gt;&gt; /tmp/microcore/etc/sysconfig/desktop
(修正後) echo flwm_topside &gt;&gt; /tmp/microcore/etc/sysconfig/desktop
</pre>
</blockquote>
<p>
<br />
</p>
<p>
microcore-xorgはこれらは入っておらず、Xが起動したら.xsessionの中身を実行することしかできません。

</p>
<p>
.xsessionには、<a href="http://www.markn.org/blog/2011/05/tiny-core-linux-7.html">以前</a>書いたように、次の行を追加しておきます。
</p>
<blockquote>
<pre>xset s off
xset -dpms (dynabookではこの行がないと一定時間後にスクリーンが消える)
feh -F -D 10 -r --hide-pointer /mnt/hda2/Photos/
</pre>
</blockquote>
<p>
microcore-xorgの場合、終了する場合はCtrl+Alt+BackspaceでX自体を終了させます。
デジタルフォトフレームを作るという本来の目的ではこれでも十分です。
コンソールでの作業はできますし、tce-loadで一時的に追加パッケージを入れてメンテナンスもできますから。
</p>
<p>
<br />
</p>
<p>

さて、ベンチマークです。
これまでの結果も合わせて表にしました。
</p>
<table border="1" cellspacing="4">
<tbody><tr>
 <td>パッケージ
 </td>
 <td>grubから画像表示まで
 </td>
 <td>電源入から画像表示まで
 </td>
 <td>メモリ使用量
 </td>
 <td>tinycore.gzのサイズ
 </td>

 <td>tczのサイズ
 </td>
 <td>備考
 </td>
</tr>
<tr>
 <td><a href="http://www.markn.org/blog/2011/05/tiny-core-linux-6.html">Xorg + GQView</a>
 </td>
 <td align="right">28s
 </td>
 <td align="right">40s
 </td>

 <td align="right">98MB
 </td>
 <td align="right">8.01MB
 </td>
 <td align="right">16.20MB
 </td>
 <td>&nbsp;
 </td>
</tr>
<tr>
 <td><a href="http://www.markn.org/blog/2011/05/tiny-core-linux-7.html">Xorg + Feh</a>

 </td>
 <td align="right">26s
 </td>
 <td align="right">38s
 </td>
 <td align="right">56MB
 </td>
 <td align="right">8.01MB
 </td>
 <td align="right">14.61MB
 </td>

 <td>&nbsp;
 </td>
</tr>
<tr>
 <td><a href="http://www.markn.org/blog/2011/05/tiny-core-linux-8.html">Xorg最小化</a>
 </td>
 <td align="right">23s
 </td>
 <td align="right">33s
 </td>

 <td align="right">45MB
 </td>
 <td align="right">11.03MB
 </td>
 <td align="right">0.00MB
 </td>
 <td>grubの待ち時間を3sから1sに変更
 </td>
</tr>
<tr>
 <td>microcoreベース+最小Xorg (flwmあり)
 </td>

 <td align="right">21s
 </td>
 <td align="right">31s
 </td>
 <td align="right">35MB
 </td>
 <td align="right">8.79MB
 </td>
 <td align="right">0.00MB
 </td>
 <td>&nbsp;

 </td>
</tr>
<tr>
 <td>microcoreベース+最小Xorg (flwmなし)
 </td>
 <td align="right">18s
 </td>
 <td align="right">28s
 </td>
 <td align="right">34MB
 </td>
 <td align="right">8.45MB
 </td>

 <td align="right">0.00MB
 </td>
 <td>&nbsp;
 </td>
</tr>
</tbody></table>
<p>
<br />
</p>
<p>
というわけで、最終的に起動時間が30秒を切りました。
tinycore.gz (実際にはmicrocore.gz)のサイズも、Xorgとfehを入れてオリジナルのtinycore.gzとそれほど変わらなくなりました。
</p>
<p>
BIOSスクリーンの時間はいかんともしがたいですが、実際grubからの起動時間を見ていると約18秒と、このスペック(Celeron 400MHz)にしては驚異的な速度で起動するのがわかります。
参考までに、環境作成に使用していたVirtualBox(ホストはCore i7-640M 2.8GHz、Windows 7 64bit、割り当てCPUは1個、メモリ192MB)での起動時間は5秒程度です。

</p>
<p>
<br />
</p>
<p>
ここで紹介している方法は、オリジナルのtinycore.gzやmicrocore.gzからファイルを削除するわけではないので、今後バージョンがあがっても修正が不要か、わずかな修正で動作することが期待できます。
</p>
<p>
PCとしてではなく、デジタルフォトフレームのようなアプライアンスを作るベースとしてTiny Core Linuxをカスタマイズしてきましたが、いかがでしょうか?
</p>
<p>
<br />
</p>
]]>
        
    </content>
</entry>

<entry>
    <title>Tiny Core Linux (8) - Xorgの最小化</title>
    <link rel="alternate" type="text/html" href="http://www.markn.org/blog/2011/05/tiny-core-linux-8.html" />
    <id>tag:www.markn.org,2011:/blog//1.238</id>

    <published>2011-05-05T11:00:36Z</published>
    <updated>2011-05-05T11:22:32Z</updated>

    <summary>  (Initially posted on 19 April 2011)  これまでの流れ。 軽い画像ビューアであるFehをインストールして起動も結構早くなったのですが、Dynabook SS 34...</summary>
    <author>
        <name>Taka Matsutsuka</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en" xml:base="http://www.markn.org/blog/">
        <![CDATA[ <p>
(Initially posted on 19 April 2011) 
<br/>
</p>

<p>
<a href="http://www.markn.org/blog/linux/">これまでの流れ</a>。
</p>
<p>
軽い画像ビューアである<a href="http://www.markn.org/blog/2011/05/tiny-core-linux-7.html">Fehをインストールして</a>起動も結構早くなったのですが、Dynabook SS 3410は標準のXVesaが使えず、Xorgを入れる必要があるので、その分パッケージが大きくなるのが難点です。
</p>
<p>
注意深く見れば、Xorgのパッケージ(圧縮状態で14.28MB)のうち、不要なものを除く、というよりも必要なものだけを入れ、tinycore.gzに入れてしまえば軽くなるのではないでしょうか。
</p>
<p>
試しに、Xorg-7.5とそれに必要なパッケージ群を、<a href="http://www.markn.org/blog/2011/05/tiny-core-linux-3.html">以前説明したように</a>すべてtinycore.gzにパックしてみました。
結果はgrubのメニューから最初の画像が表示されるまで約30秒。
...かえって遅くなってしまいました。
free -mのusedの値も77MBになってしまいます。

</p>
<p>
やはり、細かく見なければいけないようです。
</p>
<p>
<br />
</p>
<p>
Xorgはけっこう難敵なので、手始めにFehを調べてみると、fehの実行に必要なファイルは以下のみであることがわかりました。
</p>
<blockquote>
<pre>/usr/local/bin/feh
/usr/local/share/feh/fonts/yudit.ttf
/usr/local/lib/libgiblib.so.1 -&gt; libgiblib.so.1.0.6
/usr/local/lib/libgiblib.so.1.0.6
</pre>
</blockquote>
<p>

Fehに必要なパッケージは圧縮状態で336kBですが、上記の3ファイルの合計は非圧縮でも242kBです(参考まで、上記ファイルをgzip圧縮したものは114kB)。
そのため、これらを取り出してtinycore.gzに取り込んでしまえば、サイズがさらに小さくなってパッケージの読み込みも不要になります。
</p>
<p>
<br />
</p>
<p>
さてXorgについてです。
やり方は、まずXorg-7.5を入れずに(/mnt/hda1/tce/onboot.lstからエントリを削除)起動します。
そして、Xorgのパッケージ群をunsquashfsで別途展開しておきます。
</p>
<blockquote>
<pre>% tce-load -i squashfs-tools-4.x (まだダウンロードしていなければオプションは-wi)
% cd /tmp
% unsquashfs -d expat2 /mnt/hda1/tce/optional/expat2.tcz
% unsquashfs -d fontconfig /mnt/hda1/tce/optional/fontconfig.tcz
% unsquashfs -d openssl /mnt/hda1/tce/optional/openssl-0.9.8.tcz
% unsquashfs -d pixman /mnt/hda1/tce/optional/pixman.tcz
% unsquashfs -d Xorg-bin /mnt/hda1/tce/optional/Xorg-7.5-bin.tcz
% unsquashfs -d Xorg-lib /mnt/hda1/tce/optional/Xorg-7.5-lib.tcz
% unsquashfs -d Xorg /mnt/hda1/tce/optional/Xorg-7.5.tcz
% unsquashfs -d Xorg-fonts /mnt/hda1/tce/optional/Xorg-fonts.tcz
</pre>
</blockquote>
<p>
次に、メインファイルであるXorgを移動します。
</p>
<blockquote>
<pre>% sudo cp -p Xorg/usr/local/bin/Xorg /usr/local/bin

</pre>
</blockquote>
<p>
これでXorgを起動すれば、さまざまなエラーが出ると思います。
最初はライブラリが足りないですし、次にエラーログが/var/log/Xorg.0.logに出てきます。
これらを確認しつつ、ひとつづつ/tmpからファイルをコピーしていきます。
実際には、ファイルのリストを作りながら、tarでコピーしていきました。
地道な作業です。
</p>
<p>
その後、Xを起動しては/var/log/Xorg.0.logを確認し、エラーが出ているライブラリを追加する作業を繰り返します。
</p>
<p>
そのうちエラーが出なくなって画面が出るようになるのですが、ここで問題です。
その状態ではキーボードの入力を受け付けない(マウスは受け付ける)ことです。
これは、どのファイル不足しているのが原因か、ログファイルからはわかりませんので、何とかいろいろ試すしかありません。
少々苦労しましたが、それらのファイルを特定しました。
</p>
<p>
なお、私が扱っているDynabook SS 3410の場合、Tridentのチップなので、ドライバは、
</p><blockquote>
<pre>/usr/local/X11/modules/drivers/trident_drv.so
</pre>
</blockquote>

<p>
となりましたが、他のチップの場合は同じディレクトリにある他のファイルを取り込めば動くかもしれません。
たとえば、VirtualBoxの場合、
</p>
<blockquote>
<pre>/usr/local/lib/X11/modules/drivers/vesa_drv.so
/usr/local/lib/X11/modules/libshadow.so
</pre>
</blockquote>
<p>
を追加することで動作しました。
</p>
<br />


<p>
そんな感じでだいぶ苦労しましたが、「最小セット」のリストができました。
ついでに、自動でtinycore.gzを作成するスクリプトも作りました。
</p>
<blockquote>

<p>
スクリプトのダウンロードは<a href="http://www.markn.org/blog/2011/04/19/tinycore-xorg.tar.gz">tinycore-xorg.tar.gz</a>からどうぞ。
</p>
</blockquote>
<p>
使い方は、まず必要なパッケージとして、squashfs-tools-4.xとadvcompを利用可能にしておきます。
また、Xorg-7.5.tczほか、必要なtczファイルを/mnt/hda1/tce/optionalにダウンロードしておきます。
その後以下のように実行するだけで、新しい/tmp/tinycore.gzが出来上がります。
</p>
<blockquote>
<pre>% sudo sh mktinycore.sh
</pre>
</blockquote>
<p>
やっていることは以下のとおりです。
</p>
<ol>

<li>元となるtinycore.gzを/tmp/tinycoreに展開
 </li>
<li>必要なパッケージを展開
 </li>
<li>リストの内容に従い、パッケージ内のファイルを/tmp/tinycoreにコピー
 </li>
<li>上記2.と3.をパッケージの数だけ繰り返す
 </li>
<li>/tmp/tinycoreを再パックして、/tmp/tinycore.gzを作成する
 </li>
</ol>
<p>
なお、これはtridentのドライバしか組み込みません。
VirtualBoxで動かしてみたい場合は、ファイルの中にそれ用の設定ファイルも用意したので、次のように置換してからmktinycore.shを動かしてください。
</p>
<blockquote>
<pre>% mv Xorg-7.5.tcz.vbox.minlist Xorg-7.5.tcz
</pre>

</blockquote>
<p>
<br />
</p>
<p>
tinycore.gzの展開と作成の詳細については、<a href="http://www.markn.org/blog/2011/05/tiny-core-linux-3.html">tinycore.gzの作り方</a>も参照してください。
</p>
<blockquote>
<p>
なお、この方法だと、<a href="http://www.markn.org/blog/2011/05/tiny-core-linux-3.html">以前組み込んだとき</a>とはd101m_ucode.binの位置が違う(以前: /lib/firmware/e100、今回: /usr/local/lib/firmware/e100)のですが、問題ありません。
</p>
</blockquote>

<p>
これでできたtinycore.gzのサイズは、約11.03MB。
オリジナルのtinycore.gzが約8.01MBなので、おおよそ3MB増量ということになります。
tce-loadでXorg-7.5とFehをインストールすると、合計では、
</p>
<blockquote>
<pre>8.01 (tinycore.gz) + 14.28 (Xorg-7.5) + 0.33 (Feh) = 22.62MB
</pre>
</blockquote>
<p>
ということで、およそ半分弱にまで容量が減ったことになります。
</p>
<p>
<br />
</p>
<p>
さて、期待(?)の起動時間です。
grubからは約23秒、電源を入れてからのトータル約35秒でした。
<a href="http://www.markn.org/blog/2011/05/tiny-core-linux-7.html">前回</a>からさらに3秒ほど高速化しました。
grubの待ち時間を1秒にして、トータル約33秒になりました。
メモリ消費量は、free -mのused部分で45MBです。
前回(56MB)に比べて、11MBほど減らすことができました。

</p>
<p>
<br />
</p>
<p>
もっとやろうと思うと...もうtinycoreはあきらめて、<a href="http://www.markn.org/blog/2011/05/tiny-core-linux-9.html">microcoreベースで構築</a>するしかないですね。
</p>
<p>
<br />
</p>
]]>
        
    </content>
</entry>

</feed>

