玄箱をVine-4.1に導入する話

用意するもの

作業

  1. 接続
    動作するLinuxマシンに、USB-IDE変換器を通して、 IDE-HDDを接続する。このとき、自動的にマウントする機能が働くときがあるが、 その場合は手でアンマウントする。
  2. パーティションの設定
    接続したHDDにfdiskコマンドで、パーティションを切る。 このとき、Linuxマシンのシステムのパーティションを 変更しないように、デバイス名に注意すること。 私の場合、プライマリパーティションを3つ作り、 一つ目は/用のext2/3、二つ目はswap用、三つ目は/mnt用のext2/3とした。
  3. フォーマット
    mke2fs等で、ファイルシステムをフォーマットする。 先と同様にデバイス名に注意すること。
  4. /用パーティションのマウント
    適当なディレクトリ(ここでは/mnt/rootとする)に、 先ほどフォーマットした、/用のパーティションをマウントする。
  5. Vine-ppcのCDROMをマウントするなり、 CDROMイメージをloopを使ってマウントするなりし、 パッケージのrpmファイルを利用可能にする。 ここでは、/mnt/cdromにマウントされているものとする。
  6. パッケージの導入
    1. 「mkdir -p /mnt/root/var/lib/rpm/」とし、 rpmデータベース用のディレクトリを作成する。
    2. 「cd /mnt/cdrom/Vine/RPM」として、rpmのあるディレクトリに移動する。
    3. 「rpm -i --root /mnt/root glibc-2.3.4-2vl3.ppc.rpm basesystem-6.0-4vl4.noarch.rpm glibc-common-2.3.4-2vl3.ppc.rpm setup-2.5.7-2vl5.noarch.rpm filesystem-2.3-0vl1.noarch.rpm」
    4. 「rpm -i --root /mnt/root pam-0.99.3.0-0vl4.ppc.rpm cracklib-2.8.6-0vl2.ppc.rpm cracklib-dicts-2.8.6-0vl2.ppc.rpm glib2-2.12.7-0vl1.ppc.rpm initscripts-7.2.8-0vl1.ppc.rpm pwdb-0.62-0vl3.ppc.rpm grep-2.5.1-50vl2.ppc.rpm mktemp-1.5-11vl3.ppc.rpm sed-4.1.2-0vl2.ppc.rpm coreutils-5.96-0vl1.ppc.rpm db4-4.2.52-6vl6.ppc.rpm bash-2.05b-0vl3.ppc.rpm words-3.0-8vl1.noarch.rpm mingetty-1.07-0vl1.ppc.rpm gawk-3.1.3-0vl3.ppc.rpm e2fsprogs-1.38-2vl2.ppc.rpm procps-3.2.6-0vl3.ppc.rpm sysklogd-1.4.1-13vl2.ppc.rpm psmisc-21.6-1vl1.ppc.rpm which-2.16-0vl5.ppc.rpm modutils-3.2.2-0vl3.ppc.rpm util-linux-2.12p-0vl5.ppc.rpm SysVinit-2.85-5vl3.ppc.rpm iproute-2.6.15-0vl2.ppc.rpm console-tools-19990829-29vl4.ppc.rpm shadow-utils-4.0.16-0vl2.ppc.rpm chkconfig-1.2.17-1vl9.ppc.rpm install-info-4.8-0vl1.ppc.rpm findutils-4.2.27-0vl1.ppc.rpm libgcc-3.3.6-0vl7.ppc.rpm libstdc++3-3.3.6-0vl7.ppc.rpm libtermcap-2.0.8-44vl1.ppc.rpm iputils-20020927-41vl1.ppc.rpm logrotate-3.7.4-1vl1.ppc.rpm usermode-1.86-0vl2.ppc.rpm udev-097-0vl3.ppc.rpm popt-1.10.2-0vl16.ppc.rpm slang-1.4.9-0vl1.ppc.rpm zlib-1.2.3-0vl5.ppc.rpm gzip-1.3.5-6vl3.ppc.rpm termcap-11.0.1-1vl5.noarch.rpm gpm-libs-1.20.1-35vl8.ppc.rpm libuser-0.53.8-1vl1.ppc.rpm MAKEDEV-3.22-0vl4.ppc.rpm less-382-0vl4.ppc.rpm bzip2-1.0.3-0vl2.ppc.rpm file-4.09-0vl2.ppc.rpm tcsh-6.12-0vl6.ppc.rpm ncurses-5.4-0vl3.ppc.rpm」
    5. 「rpm -i --root /mnt/root net-tools-1.60-12vl2.ppc.rpm dhcpcd-1.3.22pl4-0vl2.ppc.rpm openssh-4.5p1-0vl1.ppc.rpm openssh-clients-4.5p1-0vl1.ppc.rpm openssh-server-4.5p1-0vl1.ppc.rpm tcp_wrappers-7.6-34vl3.ppc.rpm openssl-0.9.7l-0vl1.40.ppc.rpm」
    6. 「rpm -i --root /mnt/root rpm-4.4.2-0vl16.ppc.rpm beecrypt-4.1.2-9vl3.ppc.rpm rpm-libs-4.4.2-0vl16.ppc.rpm libexpat-1.95.8-0vl5.ppc.rpm neon-0.25.5-0vl2.ppc.rpm sqlite3-3.3.6-0vl3.ppc.rpm expat-1.95.8-0vl5.ppc.rpm readline-5.1-0vl1.ppc.rpm」
    7. 「rpm -i --root /mnt/root apt-0.5.15lorg3.2-0vl9.ppc.rpm gnupg-1.4.6-0vl1.ppc.rpm vine-keyring-2.0-0vl16.noarch.rpm libxml2-2.6.26-0vl1.ppc.rpm curl-7.15.3-0vl1.ppc.rpm libidn-0.5.18-0vl2.ppc.rpm libusb-0.1.12-0vl1.ppc.rpm」
    8. 「rpm -i --root /mnt/root crontabs-1.9-2vl2.noarch.rpm tmpwatch-2.9.3-1vl1.ppc.rpm vine-release-4.1-0vl1.noarch.rpm vim-6.4.10-0vl1.ppc.rpm vim-common-6.4.10-0vl1.ppc.rpm alternatives-0.1.10.18-0vl2.ppc.rpm perl-5.8.6-0vl3.ppc.rpm gdbm-1.8.0-20vl3.ppc.rpm passwd-0.71-0vl1.ppc.rpm」

    これだけでは足りないものもあるが、とりあえず後で。

  7. カーネルの導入
    /mnt/root/bootに移動し、カーネルのtgzファイルを展開する。
  8. モジュールの導入
    /mnt/root/lib/modulesに移動し、モジュールのtgzファイルを展開する。
  9. hostsファイルの書き込み
    /mnt/root/etc/hostsに「127.0.0.1 localhost localhost.localdomain」ぐらいを 書いておく。
  10. sshd_configファイルの編集
    /mnt/root/etc/ssh/sshd_configファイルを編集する。 編集する項目は、「PermitRootLogin」と「PermitEmptyPasswords」で、 どちらも「yes」となるように設定する。
  11. sshdの鍵の生成
    「ssh-keygen -q -t rsa1 -f /mnt/root/etc/ssh/ssh_host_key -C '' -N ''」 「ssh-keygen -q -t rsa -f /mnt/root/etc/ssh/ssh_host_rsa_key -C '' -N ''」 「ssh-keygen -q -t dsa -f /mnt/root/etc/ssh/ssh_host_dsa_key -C '' -N ''」 などとして、sshdの鍵を生成する。
  12. etc/sysconfig/networkの書き込み
    /mnt/root/etc/sysconfig/networkに
    NETWORKING=yes
    HOSTNAME=localhost.localdomain
    
    とでも書いておく。
  13. ifcfg-eth0の書き込み
    /mnt/root/etc/sysconfig/network-scripts/ifcfg-eth0に、
    DEVICE=eth0
    BOOTPROTO=dhcp
    ONBOOT=yes
    
    とでも書いておく。固定IPが望ましい場合は、そのように書く。
  14. ppc_uartdもしくはその代替の設定
    5分でシャットダウンされないように、 玄箱の/usr/sbin/ppc_uartdをコピーし、 /mnt/root/etc/rc.d/rc3.d/S95ppc_uartdなどで起動するように設定するか、 /mnt/root/etc/rc.d/rc.sysinitかrc.localあたりで、 「echo -n '何か' > /dev/ttyS1」 などとする。('何か'の部分は自分で調べること)
  15. fstabの書き込み
    /mnt/root/etc/fstabにマウントするファイルシステムの記述を行う。
    /dev/hda1       /               ext3    defaults,noatime,errors=remount-ro      0 0
    proc            /proc           proc    defaults                        0 0
    none            /dev/pts        devpts  gid=5,mode=20                   0 0
    /dev/hda2       swap            swap    defaults                        0 0
    /dev/hda3       /mnt            ext3    defaults,noatime                0 0
    
    ぐらいでOKか。
  16. /用のパーティションをアンマウントする。
  17. 設定の終わったHDDを取り外し、玄箱に接続しブートする。 このとき接続するネットワークは安全なものであることが必要。
  18. ブートした玄箱にsshで接続すると、 パスワードなしでログインできるので、最初にrootのパスワードを設定する。

後作業

「apt-get update」「apt-get dist-upgrade」「apt-get upgrade」等を 用いてアップデートする。また、manやgcc等足りないパッケージも、 「apt-get install」を用いて、適宜インストールすれば良い。

また、リブート/シャットダウン用に/etc/rc.d/init.d/haltを 書き換えておくと良いかもしれない。

ppc_uartdを使う場合は、「/mnt」「/etc/melco/timer_sleep」「/www/script/melsub_init.sh」「/www/script/melsub_shutdown.sh」等の、 ファイル名固定の部分があるので、注意されたし。

その他

参考