Linux From Scratch:パッケージインストールの準備

まず、パッケージをダウンロードする。
必要なパッケージのリストがここにあるので、wgetで一気に取得する。
ダウンロードする場所は$LFS/sourcesにする。

sudo mkdir -v $LFS/sources
cd $LFS/sources
wget http://www.linux.or.jp/JF/JFdocs/LFS-BOOK/wget-list.txt
wget -N -i wget-list.txt  

パッケージは全て$LFS/toolsにインストールするので、そのためにディレクトリを作成する。
sudo mkdir -v $LFS/tools

次にホストシステムの/toolsにシンボリックリンクを作成する
ln -sv $LFS/tools /

これで、ホストシステムの/tools = LFSの/tools(/mnt/lfs/tools)になった。

$LFSには/mnt/lfsというパスが設定されていなければならない。
常にこの環境変数があるように、~/.bashrcに以下のように書いておくこと。
export LFS=/mnt/lfs

ご操作によってシステムを破壊してしまわないために、パッケージビルド作業は一般ユーザで行うのがよい。
LFS-BOOKの手順にならってlfsユーザ、lsfグループを作成する。
sudo groupadd lfs
sudo useradd -s /bin/bash -g lfs -m -k /dev/null lfs

次に、パスワードを任意のパスワードに変更する。
sudo passwd lfs

パッケージのインストール先とダウンロードしたソースをlfsユーザで操作できるようにファイルの所有権を変更する。
sudo chown -v lfs $LFS/tools
sudo chown -v lfs $LFS/sources

以降の作業はlfsユーザで行うので、lfsユーザに切り替える。
su -lfs

Linux From Scratch:ファイルシステムをマウント

作成したファイルシステムをLFS環境用として/mnt/lfsにマウントする。
ルート領域は/mnt/lfs、ブート領域は/mnt/lfs/bootにマウントした。
スワップ領域はswaponコマンドで有効にする。

$ export LFS=/mnt/lfs
$ sudo mkdir -pv $LFS
mkdir: created directory `/mnt/lfs'
$ sudo mount -v -t ext3 /dev/sdb3 $LFS
/dev/sdb3 on /mnt/lfs type ext3 (rw)
$ sudo mkdir -v $LFS/boot
mkdir: created directory `/mnt/lfs/boot'
$ sudo mount -v -t ext3 /dev/sdb1 $LFS/boot
/dev/sdb1 on /mnt/lfs/boot type ext3 (rw)
$ sudo swapon /dev/sdb2 
$ df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda1             19891060   2242116  16646492  12% /
varrun                  257788       104    257684   1% /var/run
varlock                 257788         0    257788   0% /var/lock
udev                    257788        60    257728   1% /dev
devshm                  257788        12    257776   1% /dev/shm
lrm                     257788     38176    219612  15% /lib/modules/2.6.24-18-generic/volatile
/dev/sdb3              9794044    152908   9147540   2% /mnt/lfs
/dev/sdb1               101086      5664     90203   6% /mnt/lfs/boot

Linux From Scratch:新しいパーティションを生成

新しく追加したハードディスク/dev/sdbにパーティションを追加する。
パーティションの作成はfdiskコマンドで対話的に行う。
w(書き込み)を実行しない限りは何度でもパテーションを切りなおせる。

$ sudo fdisk /dev/sdb
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
Building a new DOS disklabel with disk identifier 0xa8c00198.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

このディスクのシリンダ数は 1305 に設定されています。
間違いではないのですが、1024 を超えているため、以下の場合
に問題を生じうる事を確認しましょう:
1) ブート時に実行するソフトウェア (例. バージョンが古い LILO)
2) 別の OS のブートやパーティション作成ソフト
   (例. DOS FDISK, OS/2 FDISK)
警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります

コマンド (m でヘルプ): p

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
Disk identifier: 0x8b69762a

デバイス Boot      Start         End      Blocks   Id  System

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 1
最初 シリンダ (1-1305, default 1): 1
終点 シリンダ または +サイズ または +サイズM または +サイズK (1-1305, default 1305): +100M

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 2
最初 シリンダ (14-1305, default 14): 14
終点 シリンダ または +サイズ または +サイズM または +サイズK (14-1305, default 1305): +512M

コマンド (m でヘルプ): n
コマンドアクション
   e   拡張
   p   基本領域 (1-4)
p
領域番号 (1-4): 3
最初 シリンダ (77-1305, default 77): 77
終点 シリンダ または +サイズ または +サイズM または +サイズK (77-1305, default 1305): 1305

コマンド (m でヘルプ): p

Disk /dev/sdb: 10.7 GB, 10737418240 bytes
255 heads, 63 sectors/track, 1305 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
Disk identifier: 0xc4a5459c

デバイス Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          13      104391   83  Linux
/dev/sdb2              14          76      506047+  83  Linux
/dev/sdb3              77        1305     9871942+  83  Linux

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。
ディスクを同期させます。
次にパーティションにファイルシステムを作成する。
ファイルシステムの作成はmke2fsコマンドを使う。
-jを指定してext3 のファイルシステムを作成する。
$ sudo mke2fs -jv /dev/sdb1
mke2fs 1.40.8 (13-Mar-2008)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
26104 inodes, 104388 blocks
5219 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
	8193, 24577, 40961, 57345, 73729

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

$ sudo mkswap /dev/sdb2
Setting up swapspace version 1, size = 518184 kB
no label, UUID=3e1db6f5-0177-4765-8d06-66486ec91980

$ sudo mke2fs -jv /dev/sdb3
mke2fs 1.40.8 (13-Mar-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
617728 inodes, 2467985 blocks
123399 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2529165312
76 block groups
32768 blocks per group, 32768 fragments per group
8128 inodes per group
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Linux From Scratch:仮想マシンにハードディスクを追加

いまVMwareのUbuntuには/dev/sda1が1つだけある。
LFS用のパテーションを追加するためにハードディスクを仮想的に追加する。
そのためにまずは仮想マシンをパワーオフにする。
Ubuntuのメニューから、システム>終了>シャットダウン

次にVMware Playerのメニューから、仮想マシンの設定>ハードウェアで
追加ボタンを押す。


ハードウェアの種類:ハードディスク
次へボタンを押す。
仮想ディスクの新規作成
ディスク:仮想ディスクの新規作成
次へボタンを押す。
仮想ディスクタイプ:SCSI(推奨)
仮想ディスクタイプ:SCSI(推奨)
次へボタンを押す。
ディスクの最大サイズを指定
ディスク最大サイズ:10.0GB
次へボタンを押す。
ディスクファイル名を入力
ディスク ファイル:LFS.vmdk
完了ボタンを押す。
追加されたハードディスク
ハードディスクが追加された。

仮想マシンを起動し、SCSIハードディスクが追加されていることを確認する。

$ ls /dev/ds*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda5 /dev/sdb
※追加されたハードディスクは/dev/sdbである。

Linux From Scratch:LFSビルド環境の構築

LFSビルド環境の構築
LFSを構築するには既存ディストリビューションのビルド環境を利用する。
今回の実験で、全ての作業はVMマシン上で行うので、簡単に環境構築するためにUbuntu Japanese Teamのサイトから日本語設定されたUbuntuのVMWareイメージを取ってくる。

http://www.ubuntulinux.jp/products/JA-Localized

「日本語 Remix VirtualBox用仮想マシンのダウンロード」リンクをクリック
VMWare Playerでこのイメージを起動する。
VMWare ゲストOSの設定

起動後に表示されるシステム設定で、言語、時間帯、キーボードレイアウト、ユーザ名、パスワードを入力しする


設定内容

言語:日本語
時間帯:Asia/Tokyo
キーボードレイアウト:Japan
ユーザ名とパスワード:任意

回、VMware Toolは必要ないのでインストールしない。

VMWare:VMWareレジュームスクリプトのエラー

Ubuntu Japanese Teamのサイトで配布されているUbuntu 日本語RemixのVMWareイメージをVMPlayerで起動すると

この仮想マシンで VMware Tools レジュームスクリプトが正常に実行できませんでした。

というエラーがでる。

これを出ないようにするにはスクリプトのエラーを訂正しなければならないのだろうけど、その方法が分からない。

仕方が無いので、単にスクリプトを使わないようにしてエラーを回避する方法。

ターミナルからVMware Tools Propertiesを開く。
sudo toolbox

ScriptsタブのUse Scriptのチェックをはずす。
Ecript Eventのプルダウンに表示されている全部のイベントスクリプトでUse Scriptのチェックをはずした。
1回1回Applyボタンを押さないといけないので注意。

Linux From Scratch:はじめに

Linux From Scratchとはゼロから構築したLinuxのこと。

Linux環境の学習のためにゼロからLinuxを構築してみようと思い、ここにその工程を残します。

Linux From Scratchの学習書であるLFS-BOOKに沿って構築作業をすすめます。

LFS-BOOKのダウンロード
http://www.linuxfromscratch.org/lfs/downloads/stable/

日本語訳
http://www.linux.or.jp/JF/JFdocs/LFS-BOOK/index.html

目標はLFS-BOOKの完走です。

VMWare用のOSイメージを取得できるサイト

いつもドメイン名を忘れるのでココにメモ。

VMWare用のOSイメージを取得できるサイトです。

http://www.vmware.com/appliances/directory/

LinuxのOSイメージもたくさんあります。

動作検証などのために各種ディストリビューションの環境を作成したいときに便利。

mysql:configure: error: Cannot find libmysqlclient under /usr

mysql5のconfigureで以下のようなメッセージが出るとき、

configure: error: Cannot find libmysqlclient under /usr/local.
Note that the MySQL client library is not bundled anymore!

かつ、アーキテクチャが64のときは./configure オプションに
--with-mysql=/usr/bin/ --with-libdir=lib64
が足りない。

アーキテクチャの確認方法は
uname -r

Ubuntu:日本語入力で「め」のキーを押したとき・(中点)を入力する

日本語入力で「め」のキーを押したとき・(中点)を入力する。
sudo vi /usr/share/ibus-anthy/engine/tables.py
274行目を編集する
# u”/” : u”/”,
u”/” : u”・”,

次ページへ »