Top / KNOPPIX for HDU / 学内版設定

KNOPPIX for HDU(学内版) 各種設定

KNOPPIX 3.7 を学内の NIS/NFS と組み合わせたり、 デスクトップの設定をおこなうための設定方法です。

本学では DHCPサーバを用いず、 各マシンに IP を個別に割り振るようにしています。 そのため、KNOPPIX で IP を個別に設定しなければなりません。 幸いにしてハードディスクには Vine Linux が入っているため、 マシンのIP設定などを Vine Linux の設定ファイルから 取り出すことにしています。

学内版と配布版の相違点

  • /etc/inittab で学内向け設定スクリプト /etc/hdu/init を呼び出しています。
  • ログインマネージャには kdm をしようしています。
  • /etc/X11/Xsession.d/ の中に 25xhdudesktop を置いて、 一般ユーザ用に .kde と Desktop、OpenOffice.org の雛形を作成しています。
  • 配布版ではないので、PDF Reader 用に AcrobatReader を入れています。

KDM のための設定

  • KNOPPIX 3.4 までは普通に kdm を起動すればよかったのですが、 3.4 以降は xauth 関連でうまくいかなくなりました。 あまり良くわかっていないのですが、動けば OK という感じで設定しています。
  • /etc/X11/Xsession.d/45...
    xauth add ...
    xauth -f /root/.Xauthority add ...
  • /root に .Xauthority が格納されるので 777 にしておく。
    chmod 777 /root
  • なんか相当いい加減な設定です (;.;)
  • kdm でユーザ一覧を出さないようにする
    /etc/kde3/kdm/kdmrc の332行目のコメントアウトを外す
    UserList=false
  • root のパスワード設定
    /etc/passwd の
    root:*:...
    root::...
    に変更する。パスワードを変更する:
    passwd 
  • knoppix のホームディレクトリを /ramdisk/home/knoppix に変更する (/home をここで使ってしまうと、NFS でマウントした /home/user が /ramdisk/home/user になってしまう)。
  • knoppix のパスワードも root と同様にして設定しておく(passwd knoppix)。
  • su を使えるようにする
    /etc/profile の最後の行をコメントアウト
    # alias su="sudo"
  • kdm の動作確認
    とりあえずコマンドラインから起動し、 knoppix でログインできるかどうか試してみる。
    sudo /sbin/telinit 3
    kdm

ネットワーク

IPアドレス、ネームサーバ等

  • hdu 向け設定用にディレクトリ /etc/hdu と /etc/hdu/bkup を作成し、バックアップを取っておく
    mkdir -p /etc/hdu/bkup/network
    cp /etc/passwd /etc/hdu/bkup/
    cp /etc/group /etc/hdu/bkup/
    cp /etc/network/interfaces /etc/hdu/bkup/network/
    cp /etc/resolv.conf /etc/hdu/bkup/
    cp /etc/hosts /etc/hdu/bkup/
    cp /etc/hostname /etc/hdu/bkup/
    cp /etc/defaultdomain /etc/hdu/bkup/
  • IPアドレスの設定
    /etc/network/interfaces に次のものを加える
    iface eth0 inet static
     address 163.134.XXX.XXX
     netmask 255.255.255.0
     gateway 163.134.XXX.254
     broadcast 163.134.XXX.255
  • ホスト名の設定
    • /etc/hostname を次のように作成
      R100A01
    • /etc/hosts に追加
      163.134.XXX.XXX R100A01.edu.himeji-du.ac.jp R100A01
    • hostname コマンドを実行
      # hostname R100A01
  • 各種設定の再読込み
    /etc/init.d/networking restart

NIS&NFSの設定

  • /etc/yp.conf にドメイン名(edu) と NISサーバのIPアドレス を加える
    domain edu server NISサーバのIPアドレス
  • /etc/defaultdomain に自分のドメイン名を加える
    edu
  • /etc/passwd の最後に次の行を加える
    +::::::
  • /etc/group の最後に次の行を加える
    +::
  • NISのクライアントを起動
    # /etc/init.d/nis start
  • 動作確認
    # ypcat passwd
    パスワードファイルが見えれば OK
  • NFSのマウントエントリ作成とマウント
    # mkdir -p /home/user
    # mkdir -p /home/public
    # mount -t nfs NFSサーバ名:/user /home/user
    # mount -t nfs NFSサーバ名:/home/public /home/public
  • トラブル
    ypcat passwd で各種情報が取得できるけれど id -nu ユーザID や ls -l の場合にはユーザ名が表示されない。 起動時の /etc/inittab などで
    ypcat passwd >> /etc/passwd 
    ypcat group >> /etc/group
    とすれば解決するが、いまいちスマートじゃないよなぁ。

自動起動用のスクリプト等を作成する

  • HDU向け環境設定ファイル /etc/hdu/init を作成する
    #!/bin/sh
    
    # for IP 
    NETMASK=255.255.255.0
    NAME_SERVER=163.134.X.X
    GW_IP=254
    
    # for NFS
    FILE_SERVER=163.134.X.XX
    
    # for NIS
    NIS_SERVER=XXX.edu.himeji-du.ac.jp
    DEFAULT_DOMAIN=edu
    
    # for local linux
    LINUX_DEV=/dev/hda2
    LINUX_MNT=/mnt/hda2
     
    # ----------------------------------------
    rewritable () {
     cp $1 $1.hdu
     rm -f $1
     mv $1.hdu $1
    }
       
    HDUKPX=""
    read CMDLINE <<EOT
    $(cat /proc/cmdline 2>/dev/null)
    EOT
    case "$CMDLINE" in *hdu*) HDUKPX="yes"; ;; esac
    
    if [ -n "$HDUKPX" ]; then
    # 各種情報をマウント先から得る
    mount -r $LINUX_DEV $LINUX_MNT
    HOSTS=`tail -1 $LINUX_MNT/etc/hosts`
    IP=`grep IPADDR $LINUX_MNT/etc/sysconfig/network-scripts/ifcfg-eth0 | cut -d'=' -f2`
    NAME=`echo $HOSTS | cut -d' ' -f3`
    IP_123=`echo $IP | awk -F'.' '{print $1"."$2"."$3;}'`
    GW=$IP_123.$GW_IP
    umount $LINUX_MNT
    
    # IPアドレスとネームサーバの設定
    rewritable /etc/network/interfaces
    echo "iface eth0 inet static" >> /etc/network/interfaces
    echo "address $IP" >> /etc/network/interfaces
    echo "netmask $NETMASK" >> /etc/network/interfaces
    echo "gateway $GW" >> /etc/network/interfaces
    echo "broadcast $IP_123.255" >> /etc/network/interfaces
    echo "auto eth0" >> /etc/network/interfaces
    
    # ネームサーバの設定
    rewritable /etc/resolv.conf
    echo "domain edu.himeji-du.ac.jp" > /etc/resolv.conf
    echo "nameserver $NAME_SERVER" >> /etc/resolv.conf 
    
    # ホスト名の設定
    rewritable /etc/hostname
    echo "$NAME" > /etc/hostname
    
    rewritable /etc/hosts
    echo "$HOSTS" >> /etc/hosts
    hostname $NAME
    
    echo "/etc/init.d/networking restart"
    /etc/init.d/networking restart
    
    # NFS NIS
    mkdir -p /ramdisk/home
    rm /home
    mkdir -p /home
    mount -t nfs $FILE_SERVER:/user /home
    mkdir -p /public 
    mount -t nfs $FILE_SERVER:/home/public /public
    
    rewritable /etc/yp.conf
    echo "domain edu server $NIS_SERVER" > /etc/yp.conf
    
    rewritable /etc/defaultdomain
    echo "$DEFAULT_DOMAIN" > /etc/defaultdomain
    
    /etc/init.d/nis start
    
    rewritable /etc/passwd
    #echo "+" >> /etc/passwd
    
    rewritable /etc/group
    #echo "+" >> /etc/group
    
    rewritable /etc/shadow
    rewritable /etc/gshadow
    
    ypcat passwd | sed 's|/home/user|/home|' >> /etc/passwd
    ypcat group >> /etc/group
    
    # for Additional Config
    ADDCFG=/public/Linux/Knoppix/configs.tbz
    if [ -e "$ADDCFG" ]; then
    echo "KNOPPIX Configuration file found at $ADDCFG."
    tar -jpPxf "$ADDCFG"
    fi
    
    # LAMP
    rewritable /etc/init.d/apache
    chmod u+x /etc/init.d/apache
    
    # for KDM
    chmod 777 /root 
    fi
  • /etc/hdu/init のパーミッションを 755 にする
    # chmod 755 /etc/hdu/init
  • /etc/inittab
    # /etc/inittab: init(8) configuration.
    # $Id: inittab,v 1.9 2001/05/31 10:37:50 knopper Exp $
    
    # The default runlevel.
    id:5:initdefault: 
    
    # Boot-time system configuration/initialization script.
    # This is run first except when booting in emergency (-b) mode.
    si::sysinit:/etc/init.d/rcS  
    
    # What to do in single-user mode.
    ~~:S:respawn:/bin/bash -login >/dev/tty1 2>&1 </dev/tty1 
    
    # /etc/init.d executes the S and K scripts upon change
    # of runlevel.
    #
    # Runlevel 0 is halt.
    # Runlevel 1 is single-user.
    # Runlevels 2-5 are multi-user.
    # Runlevel 6 is reboot.
    
    l0:0:wait:/etc/init.d/knoppix-halt
    l1:1:wait:/etc/init.d/rc 1
    l2:2:wait:/etc/init.d/rc 2
    l3:3:wait:/etc/init.d/rc 3
    l4:4:wait:/etc/init.d/rc 4
    l5:5:wait:/etc/init.d/rc 5
    l6:6:wait:/etc/init.d/knoppix-reboot
    
    # What to do when CTRL-ALT-DEL is pressed.
    ca::ctrlaltdel:/etc/init 0
    
    # Action on special keypress (ALT-UpArrow).
    kb::kbrequest:/bin/echo "Keyboard Request -- edit /etc/inittab to let this  work. "
    
    # What to do when the power fails/returns.
    pf::powerwait:/etc/init.d/powerfail start
    pn::powerfailnow:/etc/init.d/powerfail now
    po::powerokwait:/etc/init.d/powerfail stop
     
    # for HDU configurations
    h5:5:wait:/etc/hdu/init
    # /sbin/getty invocations for the runlevels.
    #
    # The "id" field MUST be the same as the last
    # characters of the device (after "tty").
    #
    # Format:
    #  <id>:<runlevels>:<action>:<process>
    # 4 virtual consoles with immortal shells
    #1:12345:respawn:/bin/bash -login >/dev/tty1 2>&1 </dev/tty1
    #2:2345:respawn:/bin/bash -login >/dev/tty2 2>&1 </dev/tty2
    #3:2345:respawn:/bin/bash -login >/dev/tty3 2>&1 </dev/tty3
    #4:2345:respawn:/bin/bash -login >/dev/tty4 2>&1 </dev/tty4
    
    # login
    1:12345:respawn:/sbin/getty 38400 tty1
    2:12345:respawn:/sbin/getty 38400 tty2
    
    # Example how to put a getty on a serial line (for a terminal)
    #
    #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
    #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
    
    # Example how to put a getty on a modem line.
    #
    #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
    
    #-- isdnutils begin
    # Change the lines below for your local setup and uncomment them.
    # Use "init q" to reread inittab.
    # look at the vboxgetty / mgetty manpage for more information (mgetty isn't
    # standard!)
    #
    #I0:2345:respawn:/usr/sbin/vboxgetty -d /dev/ttyI0
    #I1:2345:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&Eyourmsnhere OK AT&B512 OK' -s 38400 ttyI1
    #-- isdnutils end
    # Run X Window session from CDROM in runlevel 5
    w5:5:wait:/bin/sleep 2
    x5:5:respawn:/usr/bin/kdm -nodaemon
  • なお、設定を変更する場合には、パスワードファイルやネットワークファイルなどをもとに戻しておく必要がある。
    /etc/hdu/deinit
    cp -f /etc/hdu/bkup/passwd /etc/
    cp -f /etc/hdu/bkup/shadow /etc/
    cp -f /etc/hdu/bkup/interfaces /etc/network/
    cp -f /etc/hdu/bkup/group /etc
    cp -f /etc/hdu/bkup/resolv.conf /etc
    cp -f /etc/hdu/bkup/hosts /etc
    cp -f /etc/hdu/bkup/hostname /etc

/etc/hdu/deinit

cp -Rpf /etc/hdu/bkup/* /etc/

LAMP関連

  • /etc/init.d/apache が一般ユーザでも実行できるようにする。
    /etc/sudoers に次のものを加える
    13行目
    # Cmnd alias specification
    Cmnd_Alias LAMP = /etc/init.d/apache
    行末
    %student ALL=NOPASSWD: LAMP
    %teachr ALL=NOPASSWD: LAMP

プロンプト

student5@ttyp1[student5]$

となるようにする

  • /etc/bashrc
    7行目
    [ -n "$TTY" ] && PS1="\[^[[1;34m\]\u@$TTY[\W]$\[^[[0;39m\] " || PS1="\[^[[1;34m\][\W]#\[^[[0;39m\] "

デスクトップとプロファイル適用

  • Konqueror のプロクシ
    • Konqueror を起動し、プロクシを設定する。
    • 設定は .kde/share/config/{kdeglobals,kcmshellrc,kioslaverc} に保存される。 これらを /etc/hdu/skel/.kde/ 以下に保存しておく。
      mkdir -p /etc/hdu/skel/.kde/share/config
      cp .kde/share/config/kdeglobals /etc/hdu/skel/.kde/share/config/
      cp .kde/share/config/kcmshellrc /etc/hdu/skel/.kde/share/config/
      cp .kde/share/config/kioslaverc /etc/hdu/skel/.kde/share/config/
  • Konqeuror を起動し、トップページを www.edu.himeji-du.ac.jp に変更する。 変更したファイルを /etc/hdu/skel 以下に保存しておく。
    mkdir -p /etc/hdu/skel/.kde/share/apps/konqueror
    cp .kde/share/apps/konqueror/profiles/webbrowsing \
     /etc/hdu/skel/.kde/share/apps/konqueror
    chmod 644 /etc/hdu/skel/.kde/share/apps/konqueror/webbrowsing
  • KNOPPIX のプロファイルと /etc/hdu/skel/.kde が一般ユーザにも適用されるようにする。
    /etc/X11/Xsession.d/45xsession 64行目あたりにつぎのものを加える(かなりいい加減な設定です):
    # Copy profiles if not already present
    USER=knoppix
    export USER
    rsync -Ha --ignore-existing /etc/hdu/skel/.kde $HOME/ 2>/dev/null

設定の保存と適用

  • configure から「knoppix の設定を保存」を選び、 USBメモリに保存する。knoppix.sh の作成が目的。
  • configs.tbz の作成 まず、NIS で追加されたパスワードや、ネットワーク情報を元に戻す。
    /etc/hdu/deinit
    次に、configs.tbz を作成する
    tar -jvcPps -f configs.tbz \
    /etc/profile \
    /etc/hdu/bkup/* \
    /etc/hdu/init \
    /etc/inittab \
    /etc/hdu/deinit \
    /etc/passwd \
    /etc/X11/Xsession.d/45xsession \
    /etc/kde3/kdm/kdmrc \
    /etc/sudoers \
    /etc/bashrc \
    /etc/hdu/skel/.kde/* 
  • configs.tbz をUSBメモリに保存
    cp configs.tbz /mnt/sda1/
  • DHCP は使わないので無効にする。
    ブートパラメタに nodhcp を追加
    これをしないと、/etc/network/interfaces の設定とぶつかってしまい、 eth0 が有効にならない。
  • ブートパラメタ
    knoppix myconfig=scan hdu nodhcp noeject noprompt 
    で HDU向け設定を適用、DHCPなし、終了時 CD排出とメッセージなし。
  • config.tbz, knoppix.sh を c:\KNOPPIX に入れておくと HD から立ち上げ時に読み込んでくれる。

追加アプリケーション

Acrobat Reader

  • http://www.adobe.com/products/acrobat/readstep2.html から acrobat reader を取得。
  • 展開して INSTALL を実行すると /usr/local/Acobat5 にインストールされる。
    # tar zxf linux-5010.tar.gz
    # ./installers/INSTALL
  • 日本語フォントも展開してインストール
    # tar zxf jpnfont.tar.gz
    # ./JPNKIT/INSTALANG
  • # apt-get install acroread-asianfont
  • /usr/sbin/acroread の先頭に次のものを加えておく
    if [ -x /usr/local/Acroread5 ];then
      exec /usr/local/Acroread5/bin/acroread "$@" > /dev/null 2>&1
    fi

デスクトップの設定

  • デスクトップの設定は knoppix ユーザではなく、一般のユーザ(student5 など)で行う。
  • 好みのデスクトップ様式にする。
    今回は Windows操作の KDE風にする。 「Kメニュー」->「設定」->「デスクトップ設定ウィザード」 で適当なスタイルを設定する。 これをやっておかないと、NIS のユーザでログインしたときにアイコンが表示されない。
  • Konqueror の設定
    • Konqueor を起動し、プロクシやブックマークなどを設定する。 なお、クッキーと履歴は消しておこう。
    • トップページの変更は、トップページとして表示させたいページを表示しておき、 [設定]の[ビュープロファイルを保存]を選択する。
  • Kate アイコンをランチャに加える
    • Kate の設定を次のようにする
      • [一般]の[概観]:タブページモード
      • [一般]の[動作]:Kate に複数のプロセスを許可
      • [編集]の[タブ]:タブを表示しない
      • [字下げ]の[自動時下げ]:アクティブにし、字下げモードを「Cスタイル」に
      • [標準を表示]の[枠を残す]:行数を表示
      • ターミナルにて:フォントは「Console」、サイズは 12、スキーマは「Linux色」
    • 拡張子が c のファイルでは Kate が起動するように設定しておく
      • ファイルマネージャ Konqueror で .c を右クリックし、プロパティのスパナマークで設定 ]:タブページモード
  • PDF を acroread に関連付けしておくことも忘れない!
  • 壁紙について
    • 一般ユーザは /cdrom を見られないので、
      cp /cdrom/KNOPPIX/background.jpg /etc/hdu
      としておき、デスクトップコントロールで壁紙を /etc/hdu/background.jpg に 設定しておく。
  • .kde, Desktop の雛形を作る:
    • ここまででデスクトップ関連のカスタマイズを終わらせておく。
    • knoppix ユーザでログインし、su で student5 ユーザにチェンジして不要なファイルを削除する。
      # su - student5
      # cd .kde
      # rm cache* socket* tmp*
    • また、find ./ -exec grep --with-filename student5 {} \; を実行し、 student5 というユーザ名が入った設定をすべて消しておく。
    • 雛形 desktop.tar.gz を作成
      # cd
      # tar vcf desktop.tar .kde/* Desktop/*
      # gzip -9 desktop.tar
      # exit
    • desktop.tar.gz を /etc/hdu にしまっておく。
      # cp /home/user/student5/desktop.tar.gz /etc/hdu/
    • .kde ディレクトリがなかったら自動的に desktop.tar.gz が展開されるようにしておく:
      /etc/X11/Xsession.d/25xhdudesktop
      #!/bin/sh
      if [ ! -e "$HOME/.kde" ]; then
      cd "$HOME"
      zcat /etc/hdu/desktop.tar.gz | tar xf -
      chown -R .kde/* Desktop/*
      fi
      実行属性もつけておこう
      chmod 755 /etc/X11/Xsession.d/25xhdudesktop
  • OpenOffice.org 用
    • ホームディレクトリに .sversionrc と .openoffice/ がないと起動しない。
  • .openoffice/ は /home/knoppix からコピーしてしまえば良い。 /etc/hdu ディレクトリに knoppix ユーザのものをコピーしておく。 なお、.openoffice ディレクトリは OOo を起動しないと作成されないので、 あらかじめ一度は knoppix ユーザで起動しておく。
    # mkdir /etc/hdu
    # tar zcf openoffice.tgz .openoffice/*
    # cp openoffice.tgz /etc/hdu
  • .sversionrc が厄介。
    [Versions]
    OpenOffice.org 1.1.1=file:///home/user/s-sato/.openoffice/1.1.1
    というようにホームディレクトリの場所を各自で指定する必要がある。

そこで、次のようなスクリプトを用意して、Xの起動時に自動的に作らせる:
/etc/X11/Xsession.d/25xhdudesktop

#!/bin/sh
OOO="$HOME/.sversionrc"
if [ ! -e "$OOO" ]; then
 echo "[Versions]" > "$OOO"
 echo "OpenOffice.org 1.1.1=file://$HOME/.openoffice/1.1.1" >> "$OOO"
 cd "$HOME"
 tar zxf /etc/hdu/openoffice.tgz
 chown -R "$USER" .openoffice
fi

実行属性もつけておこう

chmod 755 /etc/X11/Xsession.d/25xhdudesktop

HDインストール

  • CD起動は不可なので、起動はHDから
  • HD から Windows 領域にインストールし、GRUB で起動する。
    • CDROM の install2win.bat をダブルクリックして実行
      GRUB は c:\boot に、KNOPPIXのイメージは c:\KNOPPIX にインストールされる。

GRUB の設定

  • boot.ini の編集
    先ほどのインストール作業によって boot.ini のエントリに 「GNU GRUB for KNOPPIX」が追加されている。 このエントリを KNOPPIX for HDU に変更する。
    • マイコンピュータを右クリックして「プロパティ」->「起動と回復」の「設定」をクリック
    • 「手動で編集」の「編集」ボタンをクリックし、
      C:\boot\state1="GNU GRUB for KNOPPIX"
      C:\boot\state1="KNOPPIX for HDU"
      に変更。
  • c:\boot\setup_hdu.bat の作成
    何かの理由でファイルの配置が変更されたときに、 設定をやり直してくれるのが setup.bat。 これをもとに setup_hdu.bat を作成する。
    • setup.bat を setup_hdu.bat という名前でコピーする。
    • menu.lst が変更されないようにする
      • setup_hdu.bat 80行目あたり
        if not EXIST %CONF% goto MAKEMENU
        の次に
        goto ENDMAKEMENU
        を加え、その下の一連の call 処理が終わったところに
        :ENDMAKEMENU
        を加える。
    • boot.ini に KNOPPIX for HDU のエントリが既にあるならば加えないようにする
      • setup_hdu.bat :GRUBADD の下
        find "KNOPPIX for HDU" %SystemDrive%boot.ini
        if %ERRORLEVEL% equ 0 goto RESETATTRIB
        を加える。
  • menu.lst に次のようなブートパラメタを加える
    nodhcp noeject noprompt noscsi nopcmcia nofirewire hdu
  • 個人設定ファイル適用のタイミング調整(学内向け用は適用しないことにする)
    ブートオプションで myconfig=scan は指定しないようにする。

USB に保存したKNOPPIX の設定ファイル

  • knoppix.sh、config.tbz を c:\KNOPPIX にコピーしておけば 起動時に展開される。

その他 Tips

  • config.tgz の互換性
    上記の方法で作成した config.tbz はひとつのタイプのマシンにしか適用できない。XF86Config やグラフィックカードのモジュールが異なるためだろう。 X の起動に失敗したら、knoppix でログインし su - でルートになって
    /etc/init.d/xsession start
    で X を起動すれば、そのマシンに適切なファイルを作成してくれるので、 再度 config.tgz を作成すれば良い。

今後の課題

  • プリンタの設定
  • USB が root でないと使えない
  • knoppixの終了メニューで停止・再起動ができないのが困る

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-10-03 (金) 06:37:03 (95d)