僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
を本で少し読んで来たので、早速 mknod hoge p やってみた。
$ls -alF hoge prw-r--r-- 1 hoge group 0 10月 10日 19:11 /home/hoge/junk/hoge| $ls -alF > hoge & $ cat -n hoge (ry
"ping source" でぐぐると、ping page なんてのがひっかかった。
そのリンク先にはThe Story of the Ping Programなるものがあり、ping.sharも拾えた。
流石に年代物らしく、アーカイブを開いてmake しただけでは(NetBSD,Plamo Linuxどちらでも)ダメだった。
どちらかといえば、netkit-comb に似ているっぽい。つーか、きっかけのパケット過大のエラー処理部分はほとんど同じ。ちなみにexit(1)だったが。
それにしても、後はブログばっかり。
日本語のサイトを探したが、キーワードに -trackback をつけても、こういう箇所に踏み込んだページは探し出せなかった。
を起動して、ping(1)をつつく。
間違ったオプションの返り値は、やっぱり2である。
今のところ、netkit-base0.10が出所であるとわかっただけ。
ソース取得法も、一から探り直さねばぁぁぁぁぁぁ。
CTRL + ALT + F?
で切り替えるのだそうだ。長いこと迷っていたが、ぐぐって氷解。
これもweb上の日記で拾った。要するにコピペ。
なんとか書いてみた。もう5時半近くだが、夜も長くなったようだ。
#!/bin/sh HOST=fuga NUM=65450 while : do ping -c 1 -n -s $NUM $HOST RES=$? if [ "$RES" == 0 ] ; then echo OK echo Packet size is $NUM + 8 else if [ "$RES" == 2 ]; then exit fi fi NUM=$(expr $NUM + 1) sleep 1 done
動くものにするだけで精一杯。
まだ午前3時なのに、ログ見たら今日だけでtdiaryにアクセスすること150回に及ぶ。
我ながら一体何やってるんだろうか。
SUPサーバが猛烈にデータを送り始めた。これまでかなり負荷が集中していた模様。
ダウンロードの完了したのは9時前らしい。
適当に変えながらLANの別ホストに打ってみた。
-s 65467(合計65475バイト)が最長らしい。それより大きくするとtoo largeといって止まってしまう。Plamo4.0とNetBSD1.6.2で、同じ結果になった。
しかしそんぐらいシェルスクリプトでやってしまうべきなんだろうが、、、
ただし、戻り値はPlamoLinuxが2で、NetBSDが1だった。意外なところに違いがあるものだ。
ついでにエラーメッセージからソースをつつく。
NETBSD:CVSで取ってきたソースの /usr/sbin/ping の下にping.cがあった。
エラーメッセージはerrxで出してるらしい。
$ grep errx ping.c したが、errx(2,"hoge");する箇所はないようだった。
Plamo: ちょっと手間取った。リングサーバのPlamo-srcの下に、
netkit-combo0.17というパッケージがあり、それを展開するとping.cが入ってた。
こっちはエラーメッセージをfprintfの引数にstderrと"hoge\n"をとる形で
実装している。該当箇所はその次の行でexit(2)していた。BSDとは反対に
exit(1)はないようだった。
そこはかとない文化の差異に酩酊した心境であった。
付記。どっちのping も0,1,2とも返す...らしい。勘違いだったようだorz
/dev/console見てると、緑色の警告が頻々と出てくる。 手打ちにて一部ログるとこんな風になるか。
wd0: (aborted command, interface CRC error) wd0: soft error (corrected) wd0a: error writing fsbn 339632 of 339632-339759 (wd0 bn 8372132;\ cn 8305 tn 10 sn 62), retrying)
ドキュメントを斜め読みして、さっそく sup (1) に挑戦した。
# sup -s -v SUP 8.26 (4.3 BSD) for system software at Oct 10 09:12:35 SUP Upgrade of current-pkgsrc at Sun Oct 10 09:12:35 2004 SUP Fileserver 8.13 (4.3 BSD) 2247 on sup.jp.netbsd.org at 09:12:35 SUP Requesting changes since Jan 1 09:00:00 1970
でずーっと止まってる。
んで、そっちは放置してpkgsrc.tar.gzを取って来る方に変えた。 適当にmakeして遊ぶ。FreeBSDのPortsとどう違うんだろなぁ。
emiclockをmake install しようとすると、「ライセンス上受け入れられないから、もし入れたかったらhogehogeを/etc/mk.confに書け」とかいった警告が。
w3m-img on NetBSD を、pkgsrcでmake install しようとすると、こんなエラーとともに止まった。
making all in tools... `libcrypto.so.300.1' is up to date. `libssl.so.300.1' is up to date. => Fixing buildlink references in files-to-be-installed. ===> Installing for openssl-0.9.6m ===> openssl-0.9.6l is already installed - perhaps an older version? *** If so, you may use either of: *** - "pkg_delete openssl-0.9.6l" and "/usr/bin/make reinstall" to \ upgrade properly *** - "/usr/bin/make update" to rebuild the package and all of its \ dependencies *** - "/usr/bin/make replace" to replace only the package without \ re-linking *** dependencies, risking various problems. *** Error code 1 Stop.
なかなか親切だ。他にも色々なパッケージの衝突を告知してきた。
opensshを入れると、果して違うバージョンがふたつ入ってしまったようだ。
# which ssh /usr/bin/ssh # ssh -V OpenSSH_3.4 NetBSD_Secure_Shell-20030917, SSH protocols 1.5/2.0, \ OpenSSL 0x0090607f # /usr/pkg/bin/ssh -V OpenSSH_3.8p1, SSH protocols 1.5/2.0, OpenSSL 0.9.6m 17 Mar 2004
さあどうする。/etc/rc.confの記述では当然古いのがあがってしまうが。
FreeBSD4.xは/usr/local/etc/の下に実行可能なスクリプトを置いてたっけ。
ディスクイメージにFreeDOSは簡単に入った。 十年前同様 fdiskとformat C: /s 。適当に ソフトを入れて、config.sysにautoexec.bat。 あんまり環境を作りこみたいわけでもないので、 適当にちょいちょいでぱっ。
でも依然としてUS-ASCIIの世界のまま。ぐぐると 色々あるようだけど。
qemuのFreeDOSで、外とデータをやりとりする手段は
さしあたりフロッピーだけ。シリアルやネットワーク
デバイスはそう簡単ではないだろう。
まずはフロッピーイメージの出し入れを。
Ctrl+Alt+2でqemuモニターに切り替わる(Ctrl+Alt+1で復帰)。
QEMU 0.7.1 monitor - type 'help' for more \ information (qemu) eject fda (qemu) change fda floppy.img
ejectとchangeの間に親環境でもげもげ。真っ先にフロッピーに 入れたのは当然:
B:FD\>dir Volume in drive B has no label Volume Serial Number is 4349-E57B Directory of B:\FD . <DIR> 10-10-2005 12:59p .. <DIR> 10-10-2005 12:59p FD CFG 5,512 09-24-1995 3:12a FD COM 1,598 12-12-1996 3:13a FD DOC 52,697 12-12-1996 3:13a FD55 COM 36,932 12-12-1996 3:13a FD55_313 DOC 3,840 12-12-1996 3:13a FD55_313 LZH 61,578 10-10-2005 12:59p FDCUST COM 6,389 12-12-1996 3:13a FDCUST DOC 8,194 05-31-1992 2:40a FDEMS COM 1,023 06-17-1993 1:01a FDEMS101 DOC 2,195 06-17-1993 1:01a FDEMS101 LZH 1,941 06-17-1993 1:01a HOGE TXT 0 10-10-2005 1:03p 12 file(s) 181,899 bytes 2 dir(s) 1,270,272 bytes free
起動はするけど、当然日本語化け化け。
それより、qemuのFreeDOS、CPU常時喰いまくり?
改善ツールを入れてやる。と、ぐっとおとなしくなった。
B:FD\>dosidle.exe CPUidle for DOS V2.10 [Build 0077] Copyright (C) by Marton Balog, 1998. DETECTING... [Processor]: Intel Pentium II. [Power/Man]: APM V1.2 [Enabled]. [Op/System]: MS-DOS V7.10 [Windows 95/98]. [32-bit mode]: 16-bit MS-DOS interface. DOSidle installed successfully.
なにげにFreeDOS。
FreeDos-Boot-CD-With-Sources-2005-09-07.iso を
貰ってqemu環境でブートしてみる。軽い。
さて、次は?日本語環境も調べてみよう。
一年近く過ぎてはいるが、File and Directory toolの作者に追悼。
background-color: black; する。
qemu環境下の仮想マシン達に同じネットワークアドレスを 振るようにしてみたが失敗。
/etc/qemu-ifupを変えて、
ネットワークアドレスを統一し、仮想マシンに違うIPを
手動で振った。が、後から起動したマシンがつながらない。
qemuの起動時オプションで -macaddr してみてもダメ。
結局仮想マシンはtun毎に別々のネットワークに入れる
ようにする。
彼らにもdhcpを喰わせてやりたいものだが、tunが 追加される度にdhcpdをその都度再起動させる...?
さっきに関連した作業若干。
以前も試したが、ちょっと考えてもう少し。
knoppixのターミナルクライアント専用CD、といっていいだろうか。
入ってるNICのドライバがちと少ないのではないだろうか。
B44なNICのついたPCは制限されたシェルが立ち上がっただけ。
Loading network device module(s) Found network device(s) handled by 3c59x.ko. Found network device(s) handled by 8139too.ko. Found network device(s) handled by e100.ko. Found network device(s) handled by e1000.ko. Found network device(s) handled by ne2k-pci.ko. Found network device(s) handled by pcnet32.ko. Found network device(s) handled by r8169.ko. Found network device(s) handled by sis900.ko. Found network device(s) handled by tulip.ko. Found network device(s) handled by via-rhine.ko. DHCP Broadcasting for IP address(1)... Operation failed. (ry
CDイメージの中身を覗いてみる。まずisoをループバックマウント。
root@0[loop1]# ls -lR .: 合計 2 dr-xr-xr-x 3 root root 2048 2005-08-29 17:00 boot ./boot: 合計 4 dr-xr-xr-x 2 root root 4096 2005-08-31 14:26 isolinux ./boot/isolinux: 合計 4302 -r--r--r-- 1 root root 139 2005-08-29 17:00 boot-en.msg -r--r--r-- 1 root root 2048 2005-08-31 14:27 boot.cat -r--r--r-- 1 root root 128 2005-08-30 15:43 boot.msg -r--r--r-- 1 root root 139 2005-08-29 17:00 boot.msg.orig -r--r--r-- 1 root root 1532 2005-08-29 17:00 f2 -r--r--r-- 1 root root 1532 2005-08-29 17:00 f2-en -r--r--r-- 1 root root 1675 2005-08-29 17:00 f3 -r--r--r-- 1 root root 1675 2005-08-29 17:00 f3-en -r--r--r-- 1 root root 256 2005-08-29 17:00 german.kbd -r--r--r-- 1 root root 9404 2005-08-31 11:28 isolinux.bin -r--r--r-- 1 root root 1702 2005-08-29 17:00 isolinux.cfg -r--r--r-- 1 root root 2569 2005-08-29 17:00 isolinux.cfg.orig -r--r--r-- 1 root root 1531698 2005-08-29 17:00 linux -r--r--r-- 1 root root 7472 2005-08-29 17:00 logo.16 -r-xr-xr-x 1 root root 86980 2005-08-29 17:00 memtest -r--r--r-- 1 root root 2751580 2005-08-29 17:00 minirt.gz
boot/isolinux/minirt.gzを開くと、minirtというイメージになった。
root@0[test]# ls -l minirt -r--r--r-- 1 root root 8388608 2006-10-10 10:45 minirt root@0[test]# file minirt minirt: Linux rev 1.0 ext2 filesystem data
これをさらにループバックとしてマウントして覗く。
ひととおりのファイルシステムがずらり。
modulesの下を見たが、やっぱりb44は入ってなかった。
長くなりそうなので一行あける。
ddとmkfsでminirtと同じ形式の少し大きいファイルを作り、マウント。minirtの中身を
まるごとそっちにコピーする。
fuseのカーネルは2.6.11だった。
同じバージョンのカーネルソースを取ってきてmake。b44.koを探し出し、
新しいイメージにコピーする。
そしてisoに丸める。mkisofsのオプションは
KNOPPIXリマスタリングの奴を使いまわす。なぜかファイルサイズは少し小さくなった。
CDに焼いて、今度は無事起動できた。
雑感。サーバが以前よりずっと少なくなった、気が、する。日本や韓国の鯖より、
カリフォルニアやテキサスの方が速いようだ。実験は既に下火になっているのだろうか。
それとも混みすぎ?
でFreeBSDのソースをcvsupし、手順に手を抜いたスクリプトでmake。
うまく行ったらお慰み、かと思う間もなく、
(ry Stop in /usr/src. *** Error code 1
では、日を改めて。
あばよ。
2003Serverからキーボードとマウスを抜いて起動させたら(必要なとき挿せばたくさんだ)、
システムスタートアップの最中、少なくとも一つのサービスまたは
ドライバにエラーが発生しました。詳細はイベントビューアのイベ
ントログを参照してください。
と叱られる(ログオン前にスクリーンショットを撮る方法が思いつかない)。
見たところで何が原因かなんてわかるものか。
ぐぐった方が確実だ。
kernel-2.4.35.3をビルドしてみる。
カーネルソースは/usr/src/linuxの下にあること。make menuconfigに
続いて make dep && make clean && make bzImage。
そして カーネルを適当な位置にコピーして make modules &&
make modules_install。alsaにpcmcia-csにと。あ、madwifiもだ。
ちょっと懐かしいような、面倒なような...
知らないところの知らない香具師からウィルスつきとおぼしき メールが来た。
Return-Path: <bpbwufd@borjan.com.pk> X-Original-To: user@domain.tld Delivered-To: user@domain.tld Received: from alpha.goodfoodssa.com (alpha.chocolates.\ com.pe [200.62.231.50]) by host.domain.tld (Postfix) with ESMTP id 72F4C9B1A4 for <user@domain.tld>; Fri, 10 Oct 2008 01:10:54 +0900 (JST) Received: from [200.62.231.50] by smtp.borjan.com.pk; \ Thu, 9 Oct 2008 11:10:54 -0500 Subject: Your bill $myname. From: "Cassie Montoya" <bpbwufd@borjan.com.pk> To: <$myname@domain.tld> Date: Thu, 9 Oct 2008 11:10:54 -0500 X-Mailer: Microsoft Outlook Express 4.71.2244.8
message には、"The bill is attached. Password 123" とある。
付いてきたファイルはbill9.zip。unzip するとパスワードを要求される。
上記の連番を入力すると、bill9.exe とかいうのが出た。
このexeファイルの md5 は、
ぐぐって出たページ同様、9afa237911a31722d21b73e8a49d6239 だった。
ついでに SHA1(b49a953888537544caf20eee7f98c8188a6c4f6b)も。
LFS SVN 20081008 続く。昨日は Chapter 6.37(Gawk-3.1.6)まで。
Chapter 6.42 でコケた。
make[2]: Entering directory `/sources/inetutils-1.5/libicmp' if gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -MT \ icmp_timestamp.o -MD -MP -MF ".deps/icmp_timestamp.Tpo" \ -c -o icmp_timestamp.o icmp_timestamp.c; \ then mv -f ".deps/icmp_timestamp.Tpo" \ ".deps/icmp_timestamp.Po"; else rm -f \ ".deps/icmp_timestamp.Tpo"; exit 1; fi icmp_timestamp.c: In function 'icmp_timestamp_encode': icmp_timestamp.c:46: error: 'NULL' undeclared (first \ use in this function) icmp_timestamp.c:46: error: (Each undeclared identifier \ is reported only once icmp_timestamp.c:46: error: for each function it appears in.) make[2]: *** [icmp_timestamp.o] Error 1 make[2]: Leaving directory `/sources/inetutils-1.5/libicmp' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/sources/inetutils-1.5' make: *** [all] Error 2
"site:linuxfromscratch.org: icmp_timestamp.c"
でぐぐると、少し前のバージョン(SVN-20080928) では、
libicmp/icmp_timestamp.c に
"#include <stdlib.>" を追加していることが
わかった。gcc4.3で小さな問題があるとか書いてある。
その通りにして make すると、無事に通った。
inetutilsの問題を調べている最中、LFSの直下に変な名前のディレクトリ "bin --enable-html"(間にスペースが入っている)を発見。中にsedが入っていた。
function mkinst { ./configure --prefix=/usr "$*" && \ make && \ make install && \ cd ../ && echo OK. ; };
で手間を省いたつもりが、どうもとんでもないことになっていたらしい。
(./configure --prefix=/usr --bindir=/bin --enable-html)
GNU Sed 4.1.5 なら 's/^$PATTERN/# &/' とか。
実はカーネルはDebianからの借り物。
一応ログインプロンプトだけは拝めることを確認。
さて、さっさと自前でカーネルをビルドせねば。
でも、なかなかUSBブートはうまくいかない。
対応はWindowsしか書いてなかったが、 Debian Wheezy であっさり動いた。
[ 861.552083] usb 1-2: new high-speed USB device \ number 3 using ehci_hcd [ 861.686171] usb 1-2: New USB device found,\ idVendor=174c, idProduct=55aa [ 861.686183] usb 1-2: New USB device strings: Mfr=2, \ Product=3, SerialNumber=1 [ 861.686193] usb 1-2: Product: ASMT1051 [ 861.686201] usb 1-2: Manufacturer: asmedia [ 861.686209] usb 1-2: SerialNumber: XXXXXXXXXXXX [ 861.692653] scsi3 : usb-storage 1-2:1.0 [ 862.693148] scsi 3:0:0:0: Direct-Access ASMT \ 2105 0 PQ: 0 ANSI: 6 [ 862.698204] sd 3:0:0:0: Attached scsi generic sg3 type 0 [ 866.978628] sd 3:0:0:0: [sdc] 977580033 512-byte \ logical blocks: (500 GB/466 GiB) [ 866.979481] sd 3:0:0:0: [sdc] Write Protect is off [ 866.979493] sd 3:0:0:0: [sdc] Mode Sense: 43 00 00 00 [ 866.983474] sd 3:0:0:0: [sdc] Write cache: enabled,\ read cache: enabled, doesn't support DPO or FUA [ 867.045402] sdc: sdc1 sdc2 sdc4 < sdc5 sdc6 > [ 867.049452] sd 3:0:0:0: [sdc] Attached SCSI disk
借りていたVPSにFreeBSDで少し遊んでいたが、
そろそろ消すか。
FreeBSDで本格運用はちょっと...
見様見真似のpf。最初の一行ですべてブロック、
最後の一行で、外向けのトラフィックと、
それに連なる内向けトラフィックを許可、らしい。
リスト、マクロ、テーブルで一応の通信はできてたはず。
$ cat /etc/pf.conf block in all pass inet proto icmp from any to any keep state pass in from localhost to any keep state tcp_client = "{ssh, imaps, submission }" tcp_serv = "{http, https, smtp}" table <mynodes> const { $IP1, $IP2 } table <myglobal> const { $IP/MASK1, $IP/MASK2 } pass inet proto tcp from <mynodes> to port $tcp_client keep state pass inet proto tcp from <mynodes> to port $tcp_serv keep state pass inet proto tcp from <myglobal> to port $tcp_client keep state pass inet proto tcp from $IP to port smtp keep state pass out all keep state
pf(1)と書いていたが、間違いだろう。
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。