設定その他 †更新日2011-08-29 (月) 11:05:36
Linux の設定その他について †gpgキーの取得方法 †apt-get update で以下のエラーが発生する。 File was not signed with a known key. Check if the proper gpg key was imported to your keyring. インストール # apt-get --reinstall install \ http://ftp.kddilabs.jp/pub/Linux/packages/Vine/Vine-\ 6.0/i386/Vine/RPMS.main/vine-keyring-2.11-1vl6.noarch.rpm 日時も事前にチェックしておく システム起動時、終了時に起動させるシェル †/etc/rc.d/init.dにshellを入れる kism #!/bin/bash # #description:Edit By JE2ISM #chkconfig: 06 00 99 #/bin/echo "2abc" >> /root/test /bin/rm /etc/udev/rules.d/70-persistent-net.rules その後 # /sbin/chkconfig --add kism で追加する このとき以下のことが重要: #description:Edit By JE2ISM #chkconfig: 06 00 99 この2行がないと追加されない #chkconfig: (runlevel) (起動時の順番) (終了時の順番) この番号は/etc/rc.d/rcx.dの中に chkconfig --add した時シンボリックリンクができその時ファイル名の先にS00kismなどと付く99などの番号 この場合はrunlevel6を指定しているため rc1.dからrc5.dまでにK99kismのシンボリックリンクが作成され、rc0.dとrc6.dにはS00kismのシンボリックリンクが作成される。 このときもし、runlevel5(GUI)で動作しているときリブートをかけるとrunlevel6で実行される。 Kがつく場合はそのrunlevelで実行されないようだ。 emascの文字色/XWindowでの起動時のメッセージ非表示(.emacs.el) †Vine 5xで以下のように設定 ;; Edit By JE2ISM ;; 文字の色を設定します。 (add-to-list 'default-frame-alist '(background-color . "black")) (add-to-list 'default-frame-alist '(foreground-color . "white")) ;; モードラインの文字の色を設定します。 (set-face-foreground 'modeline "white") ;; コメント行の色指定 (set-face-foreground 'font-lock-comment-delimiter-face "white") (set-face-foreground 'font-lock-comment-face "white") ;; ""で括られた文字の色 (set-face-foreground 'font-lock-string-face "white") ;; 変数の文字の色 (set-face-foreground 'font-lock-variable-name-face "white") XWindowでEmacs を起動すると、「Welcome to GNU Emacs」云々というメッセージが画面2分割されて表示されるを防ぐ (setq inhibit-startup-message t) lsコマンドの表示色 †bash export LS_COLORS="fi=00:di=01;34" ファイル(fi)がデフォルト(00)でディレクトリ(di)が強調(01)で青(34) csh setenv LS_COLORS "fi=00:di=01;34" これを.bashrcや.cshrcに記入しておく
Emacsで文字コードの指定 †開いたファイルを開きなおす C-x RET c 文字コードを入力 RET C-x C-v RET 文字コード:utf-8,euc-jp,shift_jis, iso-2022-jp 文字字コードを指定して開く C-x RET c 文字コードを入力 RET C-x C-f Emacsファイラー †ファイラーで emacs .などとして立ち上げたとき、Enterでファイルオープン時 .emacs ;; 日付が日本語だと、file を読み込む際に ;; No file on this line と怒られるので 回避する。 (add-hook 'dired-mode-hook '(lambda ()(setenv "LANG" "C"))) を追加 /etc/fstab †第5列の数字は、ファイルシステムをdumpする必要があるか否かの指定。「0」または無記述の場合はdump不要のファイルシステムであると見なされる。 dump 第6列の数字は、システム起動時にfsckチェックを行うか否かの指定。「0」の場合はチェックを行わない。ルートファイルシステムでチェックを行う場合は「1」を指定する。また、ルートファイルシステム以外でチェックを行う場合は「2」を指定する。 APIPA(Automatic Private IP Addressing)の無効化 †Vine4.xからAPIPAがデフォルトで有効になっている。 通常、ネットワーク機器は手動でIPアドレスを設定するかもしくはDHCPサーバより自動的に割り振られたアドレスが設定される。しかしこれらを管理する人がいない、あるいは知識がない場合、自身のアドレスを設定する方式として考案された。小規模な閉じたネットワークを対象とする。 APIPAの動作としては、IPv4では169.254.0.0/16の範囲内からランダムに選びそれをARP要求をブロードキャストしネットワーク上の他に機器に同じアドレスが存在しないか確認する。もし使用されていれば別のアドレスを選び衝突が無くなるまで繰り返す。 $ netstat -rn カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ MSS Window irtt インターフェース 192.xxx.xx.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 <=APIPA 0.0.0.0 192.xxx.xx.21 0.0.0.0 UG 0 0 0 eth0 /etc/sysconfig/network-scripts/ifcfg-eth0 ONBOOT=yes TYPE=Ethernet NOZEROCONF=yes <==追加 のように変更するだけでは以下のようにAPIPAがloに移動するだけ # netstat -rn カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ MSS Window irtt インターフェース 192.xxx.xx.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 lo <=APIPA 0.0.0.0 192.xxx.xx.21 0.0.0.0 UG 0 0 0 eth0 そこで NETWORKING=yes HOSTNAME=www.xxx.xx.jp GATEWAY=192.244.75.21 NOZEROCONF=yes # netstat -rn カーネルIP経路テーブル 受信先サイト ゲートウェイ ネットマスク フラグ MSS Window irtt インターフェース 192.xxx.xx.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 0.0.0.0 192.xxx.xx.21 0.0.0.0 UG 0 0 0 eth0 となり消える EmacsでUTF-8を使用 †使用するにはMule-UCSをインストールする。端末はEUCで動作させる # apt-get update # apt-get install Mule-UCS (略) 1438kB を 0s 秒で取得しました (2155kB/s) 変更を適用しています... 準備中... ########################################### [100%] 1:Mule-UCS ########################################### [100%] actionscript://usr/lib/emacsen-common/packages/install/Mule-UCS install/Mule-UCS: Byte-compiling for emacs-21.3 ... This will take a while ... done. <==ここで少し時間がかかる 完了 .emacsを編集 ; 日本語の設定 (set-language-environment "Japanese") (set-default-coding-systems 'euc-jp) (set-terminal-coding-system 'euc-jp) (set-keyboard-coding-system 'euc-jp) (prefer-coding-system 'euc-jp) (require 'un-define) <== 追加 (require 'jisx0213) <== 追加 Emacs再起動 開いたファイルの文字コードについて 最後レターをみる。前はデフォルトの文字コード?(EはEUC?) -EES:---F1 temp2.txt (Text)--L1--Top----------------------------------- EES(DOS): <==SJIS (改行 CR+LF) EE-: <==不明(半角のみ) EEE: <==EUC EEu: <==UTF-8 cronのmailについて †cron実行時のメール設定について メールを出さないようにするには * * * * * (コマンド) > /dev/null 2>&1 指定先にメール * * * * * (コマンド) 2>&1 | Mail (アドレス) その他、/etc/crontabにMAILTO=でroot関係は指定がある CUIで起動画面のパワーセーブ †CUIで起動後loginプロンプト状態でキーボードから入力がないと画面のパワーセーブモードに入る。これを防ぐには # setterm -blank -powersave off を実行する。ただし、コンソールで行う必要がある。(ターミナルでリモートでは不可) 起動時これを実現するには/etc/rc.d/rc.localに /usr/bin/setterm -blank -powersave off を追加する。 UTF-8化 †端末でUTFを利用するには.bashrcに以下ように指定 export LANG=ja_JP.eucJP export LANGUAGE=ja_JP.eucJP export LC_ALL=ja_JP.eucJP ファイル内容の表示にはlessではなくlvを利用するそのためlvをVine PlusからDwnload し、インストールする また.bashrcに以下を追加する export PAGER='lv -Ou8' エディタではemacsを利用しするが、Mule-UCSが必要なので、Vine SpeedからDwnload し、インストールする さらに.emacs(または.emacs.el)に以下のように記述する (require 'un-define) <--以下の日本語設定より先に記述する ; 日本語の設定 (set-language-environment "Japanese") ;;(set-default-coding-systems 'euc-jp) <--euc-jp(-unix)をutf-8に全て変更 ;;(set-terminal-coding-system 'euc-jp) ;;(set-keyboard-coding-system 'euc-jp) ;;(prefer-coding-system 'euc-jp) (set-default-coding-systems 'utf-8) (set-buffer-file-coding-system 'utf-8) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) Emacs起動時の変数(.emacs内)の再評価(設定) .emacsをemacsで開き <--Ctrl+SP(マーク) (set-default-coding-systems 'euc-jp) (set-terminal-coding-system 'euc-jp) (set-keyboard-coding-system 'euc-jp) (prefer-coding-system 'euc-jp) <--M-x -->eval-region(Enter) [ここまでを再評価] 環境変数 †csh系 環境変数の値を参照するには printenv かシェルで "$" 文字を使う % printenv DISPLAY % echo $DISPLAY 設定するためには setenv を使いう % setenv DISPLAY localhost:0.0 sh系 値を参照する場合は csh系と同様に printenv や "$" を用いる % printenv DISPLAY % echo $DISPLAY sh 系では、シェル変数を export することによって環境変数を設定 % DISPLAY=localhost:0.0; export DISPLAY または % export DISPLAY=localhost:0.0 SJIS等日本語ファイル名について †表示については .bashrcのaliasで alias ls='ls -F --color=auto --show-control-chars' に変更 --show-control-charsでteraterm等での漢字コードで表示する これでls表示は端末での設定文字コード依存になる cp,rm等コマンドでSJISファイルを指定するには環境変数LANGを export LANG=ja_JP.SJIS(またはeucはja_eucJP)で設定し、 端末の文字コードもSJISに切替えると利用できる scriptで動かすには export LANG=ja_JP.SJISをscriptのはじめに宣言すればよい このときはログインshellの文字コードどちらでも良い 注)SJISの入力において、時々文字確定後表示されない場合がある が次の半角を入力すると表示されるが半角文字が2重に入力されるようだ /sbin/nologinと/bin/falseの違い †/bin/false -> ステータスコード-1を返すだけ $ ssh test@localhost test@localhost's password: Last login: Mon Mar 6 11:43:40 2006 from vmvine32.mie-chukyo-u.ac.jp Connection to localhost closed. /sbin/nologin -> /etc/nologin.txtにメッセージを入れておくとそれを表示する $ ssh test@localhost's password: Last login: Mon Mar 6 11:36:50 2006 from vmvine32.mie-chukyo-u.ac.jp シェルアクセスできません!! <--この部分がnologin.txtの内容 Connection to localhost closed. ただし両方ともshadowファイルにパスワードを設定しておく必要がある。そうでないと Permission denied, please try again. なんていうメッセージになる .bash_profileと.bashrc †.bash_profileは、ログイン時だけに実行される設定ファイル .bashrcは別のシェルが起動したときにも実行される。login時も当然実行される suコマンドを使用できるユーザを設定する。 †/etc/pam.d/suの中の #auth required /lib/security/$ISA/pam_wheel.so use_uid のコメントをはずす。 /etc/group wheel:x:10:root,okada にsuでrootになれるユーザを指定する。 WindowMakerの設定のDefaultについて †~/GNUstep/Library/WindowMaker/ ~/GNUstep/Defaultsを保存しておく。 これがdefaultの設定。 ユーザごとのWindowマネージャは ~/.wm_styleに WindowMaker などと入っている。 Vine2.6r3のfsckトラブル回避方法 †最初に次のコマンドで各ファイルシステムから HTree インデックス機能の残りをすべて削除する。 このとき/パーティションをマウントしないようにレスキューモード で起動する レスキューモード起動の仕方 Vine 2.6 FTP CDROM を使って boot: linux rescue でレスキューモードで起動 ただし、Languageを「English」を選択しないとうまくいかない。 Rescueでmountはしないように「skip」を選択 # tune2fs -O ^dir_index /dev/(filesystemdevice) 次のコマンドを発行してディレクトリからインデックスを削除することが出来 ます。 # e2fsck -fD /dev/(filesystemdevice) (このコマンドで確認した。) [(e2fsck -f /dev/(filesystemdevice) のほうが良いという情報もある] # shutdown -r -F now でエラーが出ないこと確認。 レスキュー起動でliloの書き換え †起動用のFDを使用しないで、インストール用CDをレスキューモードで 起動し、HDD上のliloを書き変えるには 上の例の用にレスキューモードで立ち上げ # mkdir /home2 ← マウントポイント作成 (# mknod /dev/hda1 ← デバイスファイル作成) # mount /dev/hda1 /home2 ← マウント # chroot /home2 /bin/sh ← マウントポイントにchrootする ファイルシステムのルートディレクトリの位置を変更するというものです。 一度あるディレクトリへchrootすると、そのプロセスと全ての子プロセス はchrootしたディレクトリ階層より上のファイルを開くことができなく なります。 # /sbin/lilo ← ブートローダのインストール (# /sbin/grub-install /dev/hda GRUBのとき) (Vine4.xでは /usr/sbin/grub-install /dev/hda) # exit ← chroot環境を抜ける # umount /home2 (/bootが違うパーティションのときは chroot後 mount /dev/hda1 /bootでマウントしておく必要がある) chrootを行うとき、/bin/sh以外ではうまくいかない。 ちなみに、/bin/shは/usr/bin/shのシンボリックリンクで、/usr/bin/shは/usr/bin/bash(実態)のシンボリックリンク。 Vine4.xでインストール時にfdisk使用 Vine4.xからGUIではDisk Druidでしかパーティションが切れない。それでfdiskを利用するにはインストールをCUI(linux text)で行い、パーティションを決めるDisk Druidに入る前にALT+F2でVT画面を起動し、fdiskを行う。その後、Disk Druidでマウントポイントだけ決みてインストールする。 mknodコマンド mknod [オプション]... NAME TYPE [MAJOR MINOR] NAME: /dev/hda, /dev/hda1など HDDの場合はTYPEはブロック型 MAJOR MINOR番号はIDEの場合以下のようになる MAJOR MINOR /dev/hda 3 0 /dev/hda1 3 1 /dev/hdb 3 64 /dev/hdb1 3 65 /dev/hdc 22 0 /dev/hdc1 22 1 /dev/hdd 22 64 /dev/hdd1 22 65 マイナー番号の0,64はHDD全体を表しその次の番号からそのデバイスのパーティションを表す (e.g) mknod /dev/hda b 3 0 Vine4.2RC2 P5K-VMの場合 レスキューで起動すると画面が表示されない場合は lilo: linux rescue nofb とする。また、言語はJapaneseを、キーボードはjp106を選択英語環境ではうまく動作しなかった。ただし、nofbオプションを付けると日本語のメニューは文字化けで読めなくなるので、あとは感で設定する。基本的にはdefalutでOK。 また、通常起動時にXが表示されない場合がある場合は起動オプションにvga=normalをつけると良い。 lilo.conf image=/boot/vmlinuz-2.6.16-0vl76.26 label=linux initrd=/boot/initrd-2.6.16-0vl76.26.img read-only append="root=LABEL=/1" vga=normal <=ここに追加 sunrpcのポートの閉め方 †開いているポートで以下ポートについて 111/tcp open sunrpc を閉じるには portmapを起動させない。 イニシャルRAMDISKイメージ作成 †イニシャルRAMDISKイメージは起動時にファイルとして用意したファイルシステム をramdisk 上に展開するファイルで、そこを暫定的な ルートファイルシステムと してカーネルを立ちあげ、必要な処理をしてから実際のルートファイルシステム を再マウントする、というブー トを可能にしたシステムに利用される。 Vine3.0ではkernelをupdateしたとき、/bootの下に起動時に必要となる イニシャルRAMDISKイメージ(initrd-2.4.26-0vl16.img)が作成されない のでlilo.confの initrd=/boot/initrd-2.4.26-0vl16.img で起動時にエラーが出る。 コメントアウトしても良いがRAMDISKイメージを作成するには以下のようにする 注) SATAでのシステムはRAMDISKを必ず必要になるので、RAMDISKイメージ は必ず必要になる。ないとKernel Panicになる。 (# depmod -a <--必要な場合があるVine3.0では不要のようだ) # uname -r 2.4.26-0vl16 # /sbin/mkinitrd /boot/initrd-2.4.26-0vl16.img 2.4.26-0vl16 ramdiskイメージのミニlinuxの内容の表示方法(cpioフォーマット) mkinitrd 4.1以降等では、initrdのフォーマット(*.img)が従来のloopback mount imageからcpioフォーマットに変わったので以下のようにすると内容の確認及び変更が可能 # cd /boot # mkdir initrd-2.4.9 # cd initrd-2.4.9 # zcat ../initrd-2.4.9.img | cpio -i -c これでファイルに展開されるので、変更して以下のようにすればイメージが作成される # find . | cpio --quiet -c -o | gzip -c > ../initrd-2.4.9-new.img find .でカレントディレクトリ以下全てのファイルを選択 参考 ramdiskイメージのミニlinuxの内容の表示方法(loopback mount image 旧タイプ) HDDのFormat †# /sbin/mke2fs -j /dev/hda1 -j: ext3としてFormat HDDの検査 †# /sbin/e2fsck -c /dev/hdc1 e2fsck 1.29 (24-Sep-2002) Checking for bad blocks (read-only test): 1070128/ 5010264 その後結果を表示 Checking for bad blocks (read-only test): done Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/hdc1: ***** FILE SYSTEM WAS MODIFIED ***** /dev/hdc1: 11/2506752 files (0.0% non-contiguous), 86882/5010264 blocks
HDDのパーティション情報の表示 †# /sbin/dumpe2fs /dev/hdb1 dumpe2fs 1.29 (24-Sep-2002) Filesystem volume name: /test Last mounted on: Filesystem UUID: 0cdb4b4f-2f51-45e0-8f06-3dfb69a7fa26 Filesystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: dir_index filetype sparse_super Filesystem state: clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 51200 Block count: 204584 Reserved block count: 10229 Free blocks: 198108 Free inodes: 51189 First block: 1 Block size: 1024 Fragment size: 1024 Blocks per group: 8192 Fragments per group: 8192 Inodes per group: 2048 Inode blocks per group: 256 Last mount time: Thu Jan 1 09:00:00 1970 Last write time: Thu Mar 18 16:45:17 2004 Mount count: 0 Maximum mount count: 27 Last checked: Thu Mar 18 16:45:17 2004 Check interval: 15552000 (6 months) Next check after: Tue Sep 14 16:45:17 2004 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 Inode size: 128 Default directory hash: tea Directory Hash Seed: e70ead3c-fee4-41a9-aec0-74f8efccb09b Group 0: (Blocks 1-8192) Primary Superblock at 1, Group Descriptors at 2-2 Block bitmap at 3 (+2), Inode bitmap at 4 (+3) Inode table at 5-260 (+4) 7919 free blocks, 2037 free inodes, 2 directories Free blocks: 274-8192 Free inodes: 12-2048 Group 1: (Blocks 8193-16384) Backup Superblock at 8193, Group Descriptors at 8194-8194 Block bitmap at 8195 (+2), Inode bitmap at 8196 (+3) Inode table at 8197-8452 (+4) 7932 free blocks, 2048 free inodes, 0 directories Free blocks: 8453-16384 Free inodes: 2049-4096 (略) HDDのファイルシステムを検査し、状態を変更 †# /sbin/debugfs /dev/hdb1 debugfs 1.29 (24-Sep-2002) debugfs: ls 2 (12) . 2 (12) .. 11 (20) lost+found 12 (20) hello.txt 4097 (960) foo debugfs: cd foo debugfs: ls 4097 (12) . 2 (12) .. 4098 (1000) hello.link.txt debugfs: debugfs: stat hello.txt Inode: 12 Type: regular Mode: 0644 Flags: 0x0 Generation: 16301 User: 0 Group: 0 Size: 12 File ACL: 0 Directory ACL: 0 Links: 1 Blockcount: 2 Fragment: Address: 0 Number: 0 Size: 0 ctime: 0x40595438 -- Thu Mar 18 16:48:08 2004 atime: 0x40595431 -- Thu Mar 18 16:48:01 2004 mtime: 0x40595438 -- Thu Mar 18 16:48:08 2004 BLOCKS: (0):274 TOTAL: 1 2CPUの確認 †$ cat /proc/cpuinfo で bogomips:プロセッサが一秒間に何百万回無益な処理をできるかを計測した数値 がバランスよく同じ値を示していることを確認する syslogをリモートホスト上に転送及びその確認 †/etc/syslog.confに # Remote Send Test ftp.* @uso5001 と記入するとfacilityがftpについて、uso5001に転送される # Remote Send Test ftp.* @uso5001 ftp.* /var/log/messages とするとlocalの/var/log/messagesとホストuso5001に送られる。 全てを送るには *.* @uso5001 [#n241451a] とする 設定後、 # kill -HUP (syslogのPID) で設定の再読み込みを行う リモートホスト側でlogを受け付けるように /etc/sysconfig/syslogを SYSLOGD_OPTIONS="-m 0 -r" のように -r をつける 確認 $ logger -p ftp.info "CQ CQ CQ DE JE2ISM" で、リモートホスト側の/var/log/messagesに出力されることを確認 /var/log/messages ........... ........... Dec 18 11:36:20 10.99.99.132 okada: CQ CQ CQ DE JE2ISM VineのUpdate/Install(apt-get) †Update先のホスト、バージョン等の情報は/etc/apt/sources.listにある コマンドは # apt-get update # apt-get dist-upgrade でupdateする # apt-get update # apt-get install tcpdump パッケージリストを読みこんでいます... 完了 依存情報ツリーを作成しています... 完了 以下の追加パッケージがインストールされます: libpcap 以下のパッケージが新たにインストールされます: libpcap tcpdump アップグレード: 0 個, 新規インストール: 2 個, 削除: 0 個, 保留: 0 個 718kB のアーカイブを取得する必要があります。 展開後に 1538kB のディスク容量が追加消費されます。 続行しますか? [Y/n]Y 取得:1 http://updates.vinelinux.org 3.1/i386/plus libpcap 1:0.8.3-0vl1 [472kB] 取得:2 http://updates.vinelinux.org 3.1/i386/plus tcpdump 1:3.8.3-0vl1 [246kB] 718kB を 0s 秒で取得しました (1156kB/s) 変更を適用しています... Preparing... ########################################### [100%] 1:libpcap ########################################### [ 50%] 2:tcpdump ########################################### [100%] 完了 extrasの追加 デフォルトではextrasが追加されていないのでUpdateされないので追加する /etc/apt/sources.listに rpm [vine] http://updates.vinelinux.org/apt 3.2/$(ARCH) main devel plus updates extras rpm-src [vine] http://updates.vinelinux.org/apt 3.2/$(ARCH) main devel plus updates extras を追加しておく |