僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
、遅い不満もう一つ。
$ date >hoge && w3m -dump_head http://host.domain.tld >& /dev/null \ && date >>hoge & $ cat hoge 2004年12月17日 (金) 03:17:34 JST 2004年12月17日 (金) 03:17:41 JST
遅い。一体どこでひっかかってるのか...と思いながらethereal。 行き先の名前解決は一秒もかかってない。が、その直後で詰まりかけている。 SYNビットのみが立ったパケットを2回送信している(3秒も待ってから)
No | Second | Source | Destination | Protocol | Info |
3 | 0.816999 | $LOCALHOST | $REMOTEHOST | TCP | 56635 > www [SYN] Seq=0 Win=5840 Len=0 MSS=1460 TSV=125147428 TSER=0 WS=2 |
4 | 3.815852 | $LOCALHOST | $REMOTEHOST | TCP | 56635 > www [SYN] Seq=0 Win=23360 Len=0 MSS=1460 TSV=125150428 TSER=0 WS=2 |
5 | 3.839298 | $REMOTEHOST | $LOCALHOST | TCP | www > 56635 [SYN,ACK] Seq=0 ACK=1 Win=16944 Len=0 MSS=1412 |
これだけではない。さらに細い(6秒って結構永い)ボトルネックがここ。
No | Second | Source | Destination | Protocol | Info |
8 | 3.861163 | $REMOTEHOST | $LOCALHOST | TCP | [TCP Dup ACK 5#1] www > 56635 [ACK] Seq=1 Ack=1 Win=16944 Len=0 |
9 | 4.998653 | ARP | |||
10 | 4.998787 | ARP | |||
11 | 9.837941 | $LOCALHOST | $REMOTEHOST | HTTP | GET /~hoge/hogehoge.html HTTP/1.0 |
12 | 9.944206 | $REMOTEHOST | $LOCALHOST | HTTP | HTTP/1.1 200 OK (text/html) |
何かがタイムアウトになるのを待っている感じだが、さて、どうしたものか。
例によってportsから make install。すぐ終った。
さしあたりこんだけ?いよいよセキュリティが...
$ mobileimap -a CRAM-MD5 \ -s HOSTNAME \ -i XXXXXXXX_XXXX.ezweb.ne.jp \ -x SOMETHING -p SOMEPORT -d
メールサーバの ~/.forwardに追記する。
ところで、携帯からはメールは消せない...か?
sshd-4.5p1かそのあたりにあげたあたりから、
デスクトップにリモートログインできなくなっていた。
デスクトップからサーバなどにはよくsshしているが、
逆はあまりやってなかったので、いつからか、は良く覚えてない。
拒否されたときのログ。
SERVER sshd[12065]: error: Bind to port 22 on 0.0.0.0 \ failed: Address already in use. SERVER sshd[12066]: refused connect from 0.0.0.0
/etc/ssh/sshd_configと睨めっこ。ソースツリーの
sshd_configも見た。Wiresharkでパケットをとってみた。
わからない。
ログのメッセージを携えて、Google紙に泣きつく。
ListenAddress 0.0.0.0して(もちろんkill -HUPして)
あっさり解決。
Realに限らず、ビデオ画像はxwd やimportなどではキャプチャできない。
でも ssh -X で接続したリモートホストなら、上記の方法で 絵を捕まえることができる(流石にいまどきTCP/6000でもないだろう)。
ただ、現在のLANでX11Forwardingすると、しばしば音声が(時には画像も)
途切れる。
HUBを見ると、音声の途切れている間、コリジョンのLEDが一ヶ所、
悲鳴をあげ続けていた。ホストの負荷も舞い上がっている。
元がタダ(前職の産廃)のHUBは、ポートのほとんどが半二重なのだ。。。
奇妙に低価格の
IEEE1394ケーブルをヨドバシ梅田で買ってきた。4ピン-6ピンで1m。
同じ机の上のMacとNote、というあたりなら、これで十分だろう。
有効にするのも簡単だった。双方でそれぞれmodprobe eth1394し、 IPを与えるだけである。
昼前にビルドが完了し、再起動に至る。が、ふつーにログインプロンプトが
見えるようには、ならなかった。
どうもChapter 7以降が何かまずかったようだ。/etc/sysconfig/network
のファイル名を間違えていたり、Linuxカーネルを入れる時点で
gawk のインストールがミスってたらしいことに気づいたりする。
grub-0.97をビルドしようとするとコケた("configure: error: C compiler
cannot create executables)。さて、なにがまずかったのか。
# uname -a Linux lfs64 2.6.27.8 #1 SMP Tue Dec 16 11:15:34 JST \ 2008 x86_64 x86_64 x86_64 GNU/Linux
lfs-6.4 and pkgsrc。
openexr-1.6.1 を bmake したら
"strcmp' was not declared in this scope"
で Error 1。
work/openexr-1.6.1/exrmaketiled/main.cpp と
work/openexr-1.6.1/exrenvmap/main.cpp に
"#include <string.h>" を追加してやるとうまくいったようだ。
etch の場合、/usr/share/webmin の下にあるフォルダを消すと、
関連する機能がなくなり、かつメニューにも表示されなくなるようだった。
消しすぎるとエラーメッセージしか表示されなくなるが。
また、各モジュールの中身(*.cgi)は、消すだけでは見えなくなってくれない。
どうにか峠は越えたようだ。
root:/sources/gcc-build# echo 'main(){}' > dummy.c root:/sources/gcc-build# cc dummy.c -v -Wl,--verbose &> dummy.log root:/sources/gcc-build# readelf -l a.out | grep ': /lib' [Requesting program interpreter: /lib/ld.so.1] root:/sources/gcc-build# grep -o '/usr/lib.*/crt[1in].*succeeded' \ dummy.log /usr/lib/gcc/powerpc-unknown-linux-gnu/4.3.2/../../../crt1.o succeeded /usr/lib/gcc/powerpc-unknown-linux-gnu/4.3.2/../../../crti.o succeeded /usr/lib/gcc/powerpc-unknown-linux-gnu/4.3.2/../../../crtn.o succeeded root:/sources/gcc-build# grep -B4 '^ /usr/include' dummy.log #include <...&g; search starts here: /usr/local/include /usr/lib/gcc/powerpc-unknown-linux-gnu/4.3.2/include /usr/lib/gcc/powerpc-unknown-linux-gnu/4.3.2/include-fixed /usr/include root:/sources/gcc-build# grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' SEARCH_DIR("/usr/powerpc-unknown-linux-gnu/lib") SEARCH_DIR("/usr/local/lib") SEARCH_DIR("/lib") SEARCH_DIR("/usr/lib"); root:/sources/gcc-build# grep "/lib.*/libc.so.6 " dummy.log attempt to open /lib/libc.so.6 succeeded root:/sources/gcc-build# grep found dummy.log found ld.so.1 at /lib/ld.so.1
昨日の続き。
非常に簡略、というより手抜きだけど。
#include <stdio.h> #include <unistd.h> #include <sys/types.h> int main() { truncate("hoge.txt", 10000); return 0; }
"hoge.txt" がカレントディレクトリになければ実行しても 何も変らない。
$ touch hoge.txt $ ls -alFh hoge.txt; du hoge.txt -rw-r--r-- 1 user group 0 2010-12-16 16:38 hoge.txt 0 hoge.txt $ ./truncate $ ./truncate $ ls -alFh hoge.txt; du hoge.txt -rw-r--r-- 1 user group 9.8K 2010-12-16 16:39 hoge.txt 0 hoge.txt
ファイル入出力の話なんて見当たらないので、
適当に検索して頂戴したソースを、若干加工したはずである。
ARGV相等の処理がうまくできなかったため、そのまま放置していた。
inFilename := '$DIR/$FILE'. inStream := FileStream open: inFilename mode: FileStream read. [ inStream atEnd ] whileFalse: [ temp := inStream upTo: Character cr. Transcript show: temp. ]
$ cat $DIR/$FILE と同じ結果になった(チェックサム確認)
GNU Smalltalk で動いた。Squeak3.9 ではダメだった。
st> 4611600000000000000 class SmallInteger st> 4611700000000000000 class LargePositiveInteger
さて、境目はどこなのか。2の冪乗じゃないようだ。
4611600000000000000 to: 4611700000000000000 do: [: x | Transcript show: x printString, ': ' . x class printNl ]" => 4611600000000000000: SmallInteger 4611600000000000001: SmallInteger 4611600000000000002: SmallInteger 4611600000000000003: SmallInteger . . .
駄目だ。時間掛り過ぎ、頭悪すぎ。
もう少し計算量の少ない方法でなんとかしなければ。
サーバの停止予定連絡が入った。
予定時刻の十分前にシャットダウンするように、
$ sudo at $MIN:$HOUR $MON $DAY $YEAR < shutdown_script
しておいた。もちろん、事前に仮想マシンで何度か テストしておいてから。
確認。パーティションテーブルを潰したUSBメモリをWinXPや7で
フォーマットすると、FAT32でもNTFSでもパーティションを切らない。
Linux(Jessieで確認)などでは
$ sudo parted -l | sed -n 13,20p Model: Sony Storage Media (scsi) Disk /dev/sdb: 15.6GB Sector size (logical/physical): 512B/512B Partition Table: loop Disk Flags: Number Start End Size File system Flags 1 0.00B 15.6GB 15.6GB fat32
$ sudo parted -l | sed -n '/Sony/, $p' Model: Sony Storage Media (scsi) Disk /dev/sdb: 15.6GB Sector size (logical/physical): 512B/512B Partition Table: loop Disk Flags: Number Start End Size File system Flags 1 0.00B 15.6GB 15.6GB ntfs
のように見える(fdiskでは EXT32 も、 NTFS も正常表示できない)。
Linux 上でパーティションを切って、NTFSやVFATなどに フォーマットすると、
$ sudo fdisk -l /dev/sdb Disk /dev/sdb: 15.6 GB, 15619588096 bytes ヘッド 64, セクタ 32, シリンダ 14896, 合計 30507008 セクタ Units = セクタ数 of 1 * 512 = 512 バイト セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスク識別子: 0xb05b7e13 デバイス ブート 始点 終点 ブロック Id システム /dev/sdb1 2048 20973567 10485760 7 HPFS/NTFS/exFAT /dev/sdb2 20973568 30507007 4766720 c W95 FAT32 (LBA)
のようになるが、これをWindowsPCに挿すと、最初のパーティションだけが
見えて、2つ目以降にアクセスできない。
一旦潰してフォーマット、する手段が標準で備わっているかは未確認。
少なくとも
「ディスクの管理」からは
手も足も出ないように見える。
8系は試していない。ともかく10は7以前と違うようだ。
管理画面を開くまで試行錯誤。diskmgmt.mscはなくなったみたい。
ファイルシステムを潰したUSBメモリをWin10に挿すと、ウィザードを経て
$ sudo fdisk -l /dev/sdb Disk /dev/sdb: 14.6 GiB, 15619588096 bytes, 30507008 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x3f3aa585 Device Boot Start End Sectors Size Id Type /dev/sdb1 2048 30502911 30500864 14.6G 7 HPFS/NTFS/exFAT
のようになった。
ファイルシステムをFAT32に指定しても、パーティションを
切ることは同じ。
~$ dd if=/dev/zero of=/dev/sdb bs=10M count=10 10+0 レコード入力 10+0 レコード出力 104857600 バイト (105 MB) コピーされました、 0.978156 秒、 107 MB/秒
なんか早すぎ。はたしてメモリへの書き込みはまだ続いているらしく、 LEDがずっと点滅している。
$ dd if=/dev/zero of=/dev/sdb bs=10M count=10; time sync 10+0 レコード入力 10+0 レコード出力 104857600 バイト (105 MB) コピーされました、 4.90365 秒、 21.4 MB/秒 real 0m6.553s user 0m0.000s sys 0m0.024s
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。