自分Linuxをフラッシュ上に完成させる

 (シュリンクした)自分Linuxをフラッシュ・メモリーに書き込む前に,もう少しだけ,自分Linuxの設定を書き換える必要がある。/usr/local/src/origlinux/rootsys/etc/rc3スクリプトの最終行,

に,図5の内容を追記する。これで,ファイル・システムの状態を表示するdfコマンドが利用できるようになった。

図5●ファイル・システムの状態を表示するdfコマンドを利用可能にする
図5●ファイル・システムの状態を表示するdfコマンドを利用可能にする
/usr/local/src/origlinux/rootsys/etc/rc3スクリプトに追記する。

 続いて,前回作成したsyslog.confファイルを書き換える。図6のように,さまざまなログを,すべて/var/logディレクトリ以下に出力するように設定する。

図6●syslog.confファイルを書き換える
図6●syslog.confファイルを書き換える
さまざまなログを,すべて/var/logディレクトリ以下に出力するように設定する。 [画像のクリックで拡大表示]

フラッシュ・メモリーに書き込む

 すべての準備が整ったので,フラッシュ・メモリーに自分Linuxを書き込もう。コンパクトフラッシュとUSBメモリーの2種類に書き込む。両者では,書き込む際のデバイス名が異なる(「/dev/hdc」,「dev/sda」など)だけで,手順自体はほとんど同じだ。

 特に,デジタルカメラのデータを読み込ませる際などに利用するUSB接続のカード・リーダー(写真1)を用いれば,コンパクトフラッシュでもUSBメモリーと同様にSCSI接続されているデバイス(「/dev/sda」)として認識される。その場合は,USBメモリーと2カ所の設定が異なるだけである。

写真1●USB接続のカード・リーダー
写真1●USB接続のカード・リーダー

 そのため,ここでは,USBメモリーの書き込み方法を例にして,具体的な手順を紹介する。コンパクトフラッシュとUSBメモリーとで異なる部分は,その都度説明を加える。

 まず,Linux開発マシンにUSBメモリーを挿し込み,dmesgコマンドを用いて,USBメモリーがどのようなデバイス名で認識されているのかを確認する。図7の例では,USBメモリーは「/dev/sda」として認識されている。USB接続のハード・ディスクなどを挿している場合には,「/dev/sdb」などのように,異なるデバイス名で認識される。そうしたケースでは,以下の手順の「sda」と記した個所を,認識されたデバイス名に読み替えてほしい。

図7●USBメモリーのデバイス名を確認する
図7●USBメモリーのデバイス名を確認する
[画像のクリックで拡大表示]

 自分LinuxをUSBメモリーに書き込む手順は以下の通りだ。
(1)パーティションの作成
(2)フォーマット
(3)自分LinuxをUSBメモリーにコピー
(4)GRUBの導入
(5)grub.confの作成

(1)パーティションの作成
 USBメモリー内に自分Linuxを導入するパーティションを作成する。

と入力すると,対話型でパーティションを作成するツールが起動する。まずは,「n 」と入力して,パーティションの新規作成を開始する(以下,1行のコマンドについても,1段幅に合わせて改行してあるので,ご注意ください)。

と表示されたら,「p 」と「1 」を続けて入力してプライマリ・パーティションの1つ目である「sda1」というパーティションを作成する。

 「First cylinder...」と表示されたら,〔Enter〕キーを押す。「Last cylinder...」でも同様に〔Enter〕キーを押す。これは作成するパーティションのサイズ指定であり,〔Enter〕キーを押すことで最大サイズで作成される。

 最後に設定を反映するように,「w 」と入力してツールを終了する。これで,自分Linux用のパーティション「sda1」が作成された。

(2)フォーマット
 作成されたパーティションをフォーマットする。mke2fsコマンドに,強制的にフォーマットする-Fオプションと,ジャーナリング機能を追加する-jオプションを付けて実行する。

すると,sda1はExt3でフォーマットされる。

(3)自分LinuxをUSBメモリーにコピー
 自分Linuxを素早くコピーするために,/usr/local/src/origlinuxディレクトリ以下のファイルやディレクトリをまとめて圧縮し,1つのファイル(mylinux.tgz)として保存する。

 USBメモリーをマウントして,フラッシュ・メモリー上でその圧縮ファイルを展開する。

(4)GRUBの導入
 まだ,自分Linux用のGRUBをコンパイルしていないため,図8のようにコンパイルを実行する。GRUBの導入に必要なファイルはLinux開発マシン上に導入し,自分LinuxにはGRUBのブート・ローダー部分だけを書き込む。ブート・ローダーを書き込むには,

図8●GRUBのコンパイル手順
図8●GRUBのコンパイル手順

のように実行する。これで,/mnt/boot/grubディレクトリ以下にGRUBのファイル類が作成される。

 GRUBを導入したら,「device.map」という設定ファイルを書き換える。現在は,Linux開発マシンの環境に合わせて作成されているため,/mnt/boot/grub/device.mapファイルをエディタで開いて,次のように

USBメモリーが「hd0」に割り当てられるように書き換える。なお,コンパクトフラッシュの場合は,デバイス名が「/dev/hda」になるため,

とすればよい。

(5)grub.confの作成
 最後に,GRUBの設定である/mnt/boot/grub/grub.confファイルを作成する。USBメモリー用のgrub.confファイルは,図9の通り。コンパクトフラッシュの場合,「/dev/sda1」の個所を「/dev/hda1」と書き換える。

図9●USBメモリー用のgrub.confファイル
図9●USBメモリー用のgrub.confファイル

 grub.confファイルを作成したら,「menu.lst」というシンボリック・リンクを作成する(図10)。

図10●menu.lstリンクの作成
図10●menu.lstリンクの作成

フラッシュ・メモリーから起動

 これで,自分Linuxが完成した。早速,自分Linux稼働マシンにフラッシュ・メモリーを挿して起動してみよう。「mylinux login:」というログイン・プロンプトが表示されたら成功だ。

 「root」と入力し,自分Linuxにログインして,表示された「[root@mylinux]」のプロンプトからdfコマンドやlsコマンドなどを発行してみよう。

*  *  *

 今回は,フラッシュ・メモリーにコンパクトフラッシュとUSBメモリーを使用した。しかしフラッシュ・メモリーにはこれら以外にも,SDカードやメモリースティック,スマートメディアなどが存在する。また,MP3プレーヤなど,フラッシュ・メモリーを利用している機器も多い。実は,これらのフラッシュ・メモリーも自分Linux用に使える。例えば,筆者はSDカード内蔵のMP3プレーヤ内に自分Linuxを導入して利用している。自分Linuxで使うパーティションとMP3プレーヤが使うパーティションを分けることで実現できた。

 次回は,サーバーとして動かすために必要なコマンド群とライブラリを追加する予定だ。