Linux活用レシピ > knoppixの活用 > プリントサーバ


カスタマイズ手順



1. BIOSの設定


カスタマイズ用PCがCDから起動できるようBIOSの設定を行います。

  • PCの電源を入れ「Delete」や「F1」等を押してBIOSを起動してください。
  • ※ BIOSの起動についてはPCのマニュアルを見ましょう。マニュアルがない場合はPC電源ON直後に出るメッセージで判断してください。

  • 起動順序はHDDよりCD-ROMが優先になるように以下の例のように設定してください

  • ※ 設定後はSAVEを忘れずに


2. knoppixをコンソールモードで起動

    カスタマイズ用PCにknoppixのCDを入れて、CDでBOOTします。

    「boot:」と表示されたら「knoppix 3 noswap lang=ja」 と入力して[enter]キーを押してください。
    boot:knoppix 3 noswap lang=ja
         ~~~~~~~~~~~~~~~~~~~~~~~~
    

      注意
    • この時点ではキーボード配列が英語になっているため、「=」を入力するには[^]を押してください。
    • 起動時途中で「Network device eth0 detected, DHCP broadcasting for IP.」で停止する 場合は上記「boot:」のオプションに
      nodhcp
      を追加してください。

    以下のとおり表示されたらknoppixがコンソールモードで起動できています。
    root@tty[/]#
    



3. 作業領域の作成


    3.1. パーティションの割り当て

    カスタマイズ用PCのハードディスクに作業領域を作成します。ここではハードディスク全体を1つの作業領域として割り当てます。

    まずは接続されている以下のコマンドでハードディスクのデバイス名を確認します。
    root@tty[/]# sfdisk -s[ENTER]
    /dev/hda: 120060864
    ^^^^^^^^
    total: 120060864 blocks
    
    この例では接続されているハードディスクが(/dev/hda)IDEのプライマリマスタである場合のデバイス名です。

      注意
      SCSI接続のハードディスクの場合は(/dev/sdaや/dev/sdb)などと表示されます。
      このレシピでは上記IDEのプライマリマスタのハードディスクを使いますので、SCSIのハードディスクをお使いの場合はレシピ中の/dev/hda/dev/sdaに読み替えてご利用ください。

    次の以下のコマンドでハードディスクの領域を再構成します。コマンド中にはハードディスクのデバイス名を入力している箇所がありますので、上記手順で確認したデバイス名を使用してください。
    root@tty[/]# echo ,,83 | sfdisk /dev/hda[ENTER]
                                    ^^^^^^^^
    


    3.2. パーティションのフォーマット

    確保した作業領域を以下のコマンドでフォーマットしてください。
    その際コマンド中に入れるデバイス名は上記で確認したデバイス名の後ろに「1」を付与したものとなります。
    root@tty[/]# mkfs -t ext3 /dev/hda1[ENTER]
                              ^^^^^^^^~


    3.3. パーティションのマウントポイントの作成

    確保した作業領域をマウントするためのマウントポイントを以下のコマンドで作成してください。
    その際コマンド中に入れるマウントポイントは上記で確認したデバイス名の「dev」を「mnt」に変え、後ろに「1」を付与したものたものとなります。
    root@tty[/]# mkdir /mnt/hda1[ENTER]
                       ^^^^^^^^~


    3.4. パーティションのマウント

    作業領域をマウントします。以下のコマンドでマウントしてください。
    その際コマンド中に入れる第一パラメータのマウントポイントは上記で確認したデバイス名の「dev」を「mnt」に変え、後ろに「1」を付与したもの。第2パラメータのデバイス名は上記で確認したデバイス名の後ろに「1」を付与したものとなります。
    root@tty[/]# mount /dev/hda1 /mnt/hda1[ENTER]
                       ^^^^^^^^~ ^^^^^^^^~



4. knoppixイメージの展開


    4.1. 作業用ディレクトリの作成

    knoppixCD内の圧縮されたデータを展開するディレクトリとリマスタ用のディレクトリを作成します。
    root@tty[/]# mkdir -p /mnt/hda1/source/KNOPPIX[ENTER]
    root@tty[/]# mkdir -p /mnt/hda1/master/KNOPPIX/KNOPPIX[ENTER]
    
    ※この例では作業領域のマウントポイントが(/mnt/hda1)である場合です。


    4.2. 展開

    cloop(圧縮)ファイルの中身をsourceディレクトリに展開します。
    root@tty[/]# cp -Rpv /KNOPPIX/* /mnt/hda1/source/KNOPPIX[ENTER]
    
    ※この例では作業領域のマウントポイントが(/mnt/hda1)である場合です。
    ※この展開は20分以上かかります。

    起動用のイメージファイルやド キュメント等をmasterディレクトリにコピーします。
    root@tty[/]# cp -pv /cdrom/KNOPPIX/*.* /mnt/hda1/master/KNOPPIX/KNOPPIX[ENTE
    R]
    root@tty[/]# cp -pv /cdrom/*.* /mnt/hda1/master/KNOPPIX/[ENTER]
    root@tty[/]# cp -Rpv /cdrom/boot /mnt/hda1/master/KNOPPIX/[ENTER]
    
    ※この例では作業領域のマウントポイントが(/mnt/hda1)である場合です。



5. カスタマイズ(不要アプリの削除)


    5.1. chroot

    リマスタリングするKNOPPIXのルートディレクトリにchrootし、procをマウントします。
    root@tty[/]# chroot /mnt/hda1/source/KNOPPIX[ENTER]
    root@tty[/]# mount -t proc /proc proc[ENTER]
    
    ※この例では作業領域のマウントポイントが(/mnt/hda1)である場合です。


    5.2. 不要なアプリの検討

    以下のようなコマンドを使って、不要なアプリを探します。
    root@tty[/]# dpkg -l | grep wine[ENTER]
    

    以下のコマンドで、サイズが大きいパッケージから順に並べ削除候補を検討できます。
    root@tty[/]# dpkg-query -W --showformat='${Installed-Size} ${Package}\n'
     | sort -n[ENTER]
    


    5.3. 不要なアプリの削除

    とりあえずレシピでは以下のアプリがプリントサーバに必要ないと確認できていますので、削除しておきます。
    root@tty[/]# apt-get remove --purge libwine winesetuptk[ENTER]
    root@tty[/]# apt-get remove --purge scribus[ENTER]
    root@tty[/]# apt-get remove --purge kstars-data[ENTER]
    root@tty[/]# apt-get remove --purge audacity[ENTER]
    root@tty[/]# apt-get remove --purge gdb[ENTER]
    root@tty[/]# apt-get remove --purge k3blibs k3b-defaults k3b-i18n[ENTER]
    root@tty[/]# apt-get remove --purge squid-common[ENTER]
    root@tty[/]# apt-get remove --purge snort-common snort-rules-default snort
    [ENTER]
    



6. カスタマイズ(プリントサーバ設定)


    6.1. cupsd/inetdを起動する設定

    knoppix起動時にプリントサービスとインターネットスーパサーバが起動するよう設定
    root@tty[/]# update-rc.d cupsys defaults 20[ENTER]
    root@tty[/]# update-rc.d inetd defaults 20[ENTER]
    


    6.2. cupsd/inetdの起動設定確認

    以下のコマンドで、cupsdとinetdがknoppix起動時に自動的に起動するようになっているか確認できます。
    root@tty[/]# ls /etc/rc*.d[ENTER]
    
    結果が以下のようになっているはずです。
    /etc/rc0.d:
    K10xsession  K99cupsys  K99inetd  S90knoppix-halt
    
    /etc/rc1.d:
    K10xsession  K99cupsys  K99inetd
    
    /etc/rc2.d:
    K10xsession  S99cupsys  S99inetd
    
    /etc/rc3.d:
    K10xsession  S99cupsys  S99inetd
    
    /etc/rc4.d:
    K10xsession  S99cupsys  S99inetd
    
    /etc/rc5.d:
    S99cupsys  S99inetd
    
    /etc/rc6.d:
    K10xsession  K99cupsys  K99inetd  S90knoppix-reboot
    
    /etc/rcS.d:
    README  S00knoppix-autoconfig


    6.3. ポート設定

    /etc/serviceに、9100ポートの名前を jetdirect として登録します。
    エディタで以下の行を追加してください。
    root@tty[/]# vi /etc/services[ENTER]
    jetdirect        9100/tcp              # HP JetDirect  ←この行を追加
    
    ※スペースはTABで

    次に、/etc/inetd.confに以下の行を追加します。
    それぞれ改行なしで追加してください。
    root@tty[/]# vi /etc/inetd.conf[ENTER]
    printer stream tcp nowait lp /usr/lib/cups/daemon/cups-lpd cups-lpd -o 
    document-format=application/octet-stream
    ※[-o]と[document-format=]の間はスペースあり
    
    jetdirect stream tcp nowait lp /usr/bin/lpr lpr



7. カスタマイズ(起動スクリプト)


    7.1. 起動スクリプトを作成

    knoppix起動時にIPアドレス設定とプリンタを起動するスクリプトをエディタで作成します。この中に書くネットワーク設定でプリントサーバが起動しますので、接続するネットワーク体系にあわせ間違えないよう入力してください。
    root@tty[/]# vi /etc/init.d/printsrv[ENTER]
    
    #!/bin/bash
    
    NETFILE=/etc/network/interfaces
    IP=192.168.1.100 ←プリントサーバに割り当てたいIPアドレス
    MK=255.255.255.0 ←サブネットマスク
    NW=192.168.1.0   ←ネットワークアドレス
    BC=192.168.1.255 ←ブロードキャストアドレス
    GW=192.168.1.1   ←デフォルトゲートウェイ
    echo "iface eth0 inet static" >> $NETFILE
    echo "        address ${IP}"  >> $NETFILE
    echo "        netmask ${MK}"  >> $NETFILE
    echo "        network ${NW}"  >> $NETFILE
    echo "        broadcast ${BC}" >> $NETFILE
    echo "        gateway ${GW}"  >> $NETFILE
    pump -k -i eth0
    ifconfig eth0 $IP netmask $MK broadcast $BC up
    
    lpadmin -plp -v parallel:/dev/lp0 -m raw
    /usr/bin/enable lp
    /usr/sbin/accept lp
    


    7.2. 起動スクリプトのパーミッションと起動設定

    作成したIPアドレス設定とプリンタを起動するスクリプトがknoppix起動時に実行されるよう、パーミッションと起動設定を行います。
    root@tty[/]# chmod 755 /etc/init.d/printsrv[ENTER]
    root@tty[/]# update-rc.d printsrv defaults 99[ENTER]
    


    7.3. CUPS設定

    cupsの設定を以下の太字の部分についてエディタで書き換えます。
    root@tty[/]# vi /etc/init.d/printsrv[ENTER]
    #PreserveJobHistory Yes
    PreserveJobHistory No
    
    <Location />
    Order Deny,Allow
    Deny From All
    Allow From 127.0.0.1
    Allow From @LOCAL
    </Location>
    
    <Location /jobs>
    Order Deny,Allow
    Deny From All
    Allow From 127.0.0.1
    Allow From @LOCAL
    </Location>
    
    <Location /admin>
    Order Deny,Allow
    Deny From All
    Allow From 127.0.0.1
    Allow From @LOCAL
    </Location>



8. カスタマイズ(後処理)


    8.1. chrootを抜ける

    以下のコマンドでchrootを抜けます。
    root@tty[/]# umount /proc[ENTER]
    root@tty[/]# exit[ENTER]
    


    8.2. ごみの削除

    抜けた後に、chroot していた時の.bash_historyと.viminfoを削除します。
    root@tty[/]# cd /mnt/hda1/source/KNOPPIX/root[ENTER]
    root@tty[/]# rm -f .bash_history .viminfo[ENTER]
    
    ※この例では作業領域のマウントポイントが(/mnt/hda1)である場合です。



9. CDイメージの作成


    9.1. 圧縮ファイルの作成

    カスタマイズしたknoppixの圧縮ファイルの作成を行ってください。
    root@tty[/]# cd /[ENTER]
    root@tty[/]# mkisofs -R -l -V "knoppixPrintSrv" \[ENTER]
    > -hide-rr-moved -v /mnt/hda1/source/KNOPPIX \[ENTER]
    > | create_compressed_fs - 65536 > \[ENTER]
    > /mnt/hda1/master/KNOPPIX/KNOPPIX/KNOPPIX[ENTER]
    
    ※この例では作業領域のマウントポイントが(/mnt/hda1)である場合です。
    ※[\]は実際はバックスラッシュで表示されます。
    ※この処理は40分程度かかります。


    9.2. 起動確認

    作成した圧縮イメージからきちんと起動できるか確認します。

    まず、以下のコマンドでハードディスクパーティション直下に圧縮ファイル「KNOPPIX」のシンボリックリンクを作成します。
    root@tty[/]# cd /mnt/hda1[ENTER]
    root@tty[/]# ln -s master/KNOPPIX/KNOPPIX KNOPPIX[ENTER]
    
    ※この例では作業領域のマウントポイントが(/mnt/hda1)である場合です。

    knoppixのCDを入れたまま以下のコマンドでリブートします。
    root@tty[/]# reboot[ENTER]
    

    knoppixの起動画面の「boot:」が出ているところで、以下を入力し、ハードディスクの作業領域からknoppixを起動するよう指定してください。
    boot: knoppix bootfrom=/dev/hda1[ENTER]
    
    ※この例では接続されているハードディスクが(/dev/hda)である場合です。
    ※文字"="は日本語キーボードの"^"を押すと出ます。

    無事起動できれば圧縮は成功しています。

    再び再起動して今度はもう一度CDから起動します。

    起動画面で「boot:」と表示されたら「knoppix 3 noswap lang=ja」と入力して[enter]キーを押してください。
    boot:knoppix 3 noswap lang=ja
         ~~~~~~~~~~~~~~~~~~~~~~~~

      注意
    • この時点ではキーボード配列が英語になっているため、「=」を入力するには[^]を押してください。
    • 起動時途中で「Network device eth0 detected, DHCP broadcasting for IP.」で停止する 場合は上記「boot:」のオプションに
      nodhcp
      を追加してください。


    9.3. ISOイメージの作成

    CDイメージファイル(ISOイメージファイル)を作成します。
    root@tty[/]# mount /dev/hda1 /mnt/hda1[ENTER]
    root@tty[/]# cd /mnt/hda1/master/KNOPPIX[ENTER]
    root@tty[/]# mkisofs -no-emul-boot -boot-info-table \[ENTER]
    > -l -r -J -V "EasyPrintSrv" -hide-rr-moved -v \[ENTER]
    > -b boot/isolinux/isolinux.bin \[ENTER]
    > -c boot/isolinux/boot.cat \[ENTER]
    > -o ../printsrv.iso \[ENTER]
    > .[ENTER]
    
    ※この例では作業領域のマウントポイントが(/mnt/hda1)である場合です。
    ※[\]は実際はバックスラッシュで表示されます。
    ※この処理は5分程度かかります。


後は完成したISOファイル(/mnt/hda1/master/printsrv.iso)をCDに焼けば完成です。