今回の作業はUbuntu 9.10用のCFカードを作る手順と、ほぼ同じです。 以前に簡単なメモを残しましたが、いろいろ手順が抜けていて使いづらかったので新たに作成する機会にメモを取り直しました。
今回は重複する具体的な作業手順は省略したいところですが、複数の文書を参照するのは面倒なので、網羅する方向でまとめています。
今回も作業はDesktopなUbuntu 8.04 LTSにUSB経由でCFカードを接続して行なっています。
CFカードへの基本システムの導入
ここはいつも通りの作業で、fdisk, mke2fs, tune2fsを使い、debootstrap+grubでブータブルなCFカードを作成します。
$ sudo /sbin/fdisk /dev/sdg $ sudo /sbin/mke2fs -j /dev/sdg1 $ sudo /sbin/tune2fs -c 0 -i 0 /dev/sdg1 $ sudo mount /dev/sdg1 /mnt/cf $ sudo debootstrap --arch i386 lenny /mnt/cf $ sudo grub-install --no-floppy --root-directory=/mnt/cf /dev/sdg
2010/02/25追記:
grub-installコマンドに"--no-floppy"オプションを追加。これで体感的には処理が早く終るようになりました。
実際のブートに必要な最低限の残作業
grubの導入が終ってから/mnt/cfにCFカードをmountしたまま、chrootしてから作業を行ないます。
$ sudo chroot /mnt/cf /bin/bash
apt-get周りの設定
sources.listファイルを編集します。
# vi /etc/apt/sources.list
deb http://ftp.jp.debian.org/debian/ lenny main
deb-src http://ftp.jp.debian.org/debian/ lenny main
deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main
deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main
# apt-get update
カーネルの導入
Ubuntuとは名前が違うので、最新にするためlinux-image-2.6-686を導入します。 もしWRAPにするのなら-486にしてください。
# apt-get install linux-image-2.6-686
2010/02/24追記:
ここでは質問が画面上に出力されるので、次のように選択します。
「Create a symbolic link to the current kernel image? 」にはYes
「Abort initrd kernel image installation?」にはNo
kernel-img.confファイルを事前に準備しておきます。
# vi /etc/kernel-img.conf
# Kernel Image management overrides
# See kernel-img.conf(5) for details
do_symlinks = Yes
do_bootloader = no
do_initrd = yes
postinst_hook = update-grub
postrm_hook = update-grub
grub周りの設定
# apt-get install grub # vi /boot/grub/menu.lst
serial --speed=38400
terminal serial
##
default 0
timeout 10
##
title Debian lenny
root (hd0,0)
kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 console=ttyS0,38400n8
initrd /boot/initrd.img-2.6.26-2-686
savedefault
2010/02/24追記:
menu.lstファイルに書かれている"vmlinuz-*"、"initrd.img-*"が実際に存在している事を確認します。
例えば、次のようなコマンドで/bootで始まるファイルを抜き出して存在するかどうか、lsコマンドでチェックできます。
# tr ' ' '\n' < /boot/grub/menu.lst | grep boot | xargs ls
/boot/initrd.img-2.6.26-2-686 /boot/vmlinuz-2.6.26-2-686
ls: cannot access /boot/vmlinuz-2.6.26-2-686: No such file or directory
ls: cannot access /boot/initrd.img-2.6.26-2-686: No such file or directory
シリアル端末周りの設定
inittabファイルを編集します。tty[1-6]を起動する行をコメントアウトし、ttyS0の行のコメントを外します。 ttyS0の通信速度は38400に変更します。
# vi /etc/inittab
...
#1:2345:respawn:/sbin/getty 38400 tty1
#2:23:respawn:/sbin/getty 38400 tty2
#3:23:respawn:/sbin/getty 38400 tty3
#4:23:respawn:/sbin/getty 38400 tty4
#5:23:respawn:/sbin/getty 38400 tty5
#6:23:respawn:/sbin/getty 38400 tty6
...
T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100
...
fstabファイルの編集
起動時に'/'がみつけられないと起動できないので、fstabファイルを作成しておきます。
# vi /etc/fstab
/dev/hda1 / ext3 defaults,relatime 0 0
proc /proc proc defaults 0 0
USB経由での作業終了
ここまではデスクトップにUSBカードリーダを接続して作業しました。 ここから先はalixで起動し、シリアル経由で接続して作業を進めます。
# exit $ sudo umount /mnt/cf
umountコマンドが成功してからCFカードを引き抜き、alixに入れて電源を接続します。
シリアル経由でのAlixでのセットアップ作業
まずはシリアル端末を使って、ネットワークへの接続と必要なパッケージの導入などを行なっていきます。
2010/02/24追記:
この中でinterfacesファイルを作成する作業はCFカードをマウントしてファイルを編集することができます。
その他の作業もあらかじめ行なっておく事は可能ですが、面倒な状況になりそうなのでAlix側で作業を行なっています。
ネットワークへの接続
interfacesファイルを編集します。
# vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.10.10
netmask 255.255.255.0
gateway 192.168.10.1
システムを再起動するか、ifupでインタフェースを起動します。
# ifup lo # ifup eth0
遠隔操作に必要なパッケージの導入
openssh-serverとsudoの準備をします。
# apt-get install openssh-server sudo
sudoは設定ファイルを編集しますが、必ずvisudoコマンドを使います。 手動でsudoersファイルを編集してはいけません。 また、これは状況によりますが、ここではroot権限のみを与えますが、パスワード無しでの操作は許可しないようにします。
# visudo
%sudo ALL=ALL
作業用IDの作成
# useradd -G sudo -m user01 # passwd user01
シリアル経由での作業完了
ここまでネットワーク経由でのsshログインができるようになったので、 これ以降の作業はSSH経由で行ないます。
SSH経由でのalix設定作業
パッケージの更新
更新が終り次第、システムを再起動します。
$ sudo apt-get dist-upgrade $ sudo /sbin/shutdown -r now
再度ログインし、作業を続けます。
時刻関連の修正
locale, timezone, ntpと日付、時刻に関連する変更作業を行ないます。 まずは時刻をUTCからJSTへ変更します。
$ sudo rm /etc/localtime $ sudo ln -s /usr/share/zoneinfo/Japan /etc/localtime
続いてlocale周りの修正を行ないます。
$ sudo apt-get install locales $ sudo /usr/sbin/dpkg-reconfigure locales
画面にメニューが表われるので、ja_JP.UTF-8を選択します。 デフォルトのlocaleはNoneを選択します。
最後にntpの設定です。 LANの中に自前のntpサーバー(192.168.1.2)があるので、これを指定します。
$ sudo apt-get install ntpdate openntpd
...
NTPDATE_USE_NTP_CONF=no
...
NTPSERVERS="192.168.1.2 ntp.ring.gr.jp"
...
ntp.confファイルは設定を全てコメントアウトし、下記の1行だけを加えます。
...
server 192.168.1.2
...
DAEMON_OPTS="-s"
ホスト名の変更
適当な名前をつけて/etc/hostnameに1行で書きますが、sudoが逆引きできるように、(例えば"lenny"といった)名前を/etc/hostsに登録しておきます。
$ sudo vi /etc/hostanme
lenny
$ sudo vi /etc/hosts
127.0.0.1 localhost lenny
::1 localhost lenny
menu.lstファイルの修正
grubで使っている/boot/grub/menu.lstを編集します。
$ sudo /usr/sbin/update-grub $ sudo vi /boot/grub/menu.lst
...
default 1
...
# kopt=root=/dev/hda1 console=ttyS0,38400n8
...
変更した内容が反映されるように再度update-grubコマンドを実行します。
$ sudo /usr/sbin/udpate-grub
kernel行の最後に追加したconsole=ttyS0,38400n8が書かれている事を確認します。
さいごに
おおよそここに挙げたような設定で、lennyを使うための土台はできるはずです。
繰り返しの作業が嫌な場合には、ここでddコマンドを使ってセットアップしたイメージを保存しておきましょう。 同じくddで同容量の別のCFカードにコピーすれば、すぐに使えるようになります。
$ sudo dd if=/dev/sdg of=lenny_cf.img bs=512
0 件のコメント:
コメントを投稿