[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: (iBook) fsck problem just after base.tgz
> Wed Sep 6 21:54:20 2000
> 千葉市中央区長洲
> 藤原 誠
> makoto@ki.nu
makoto> fsck は直接読むけれど通常の disk I/O は cache 経由ですよね。
我ながら変なことを書いたと思っているのですが、一応その方向で、
例えば、
read() で (とても大きな区画の) /dev/rwd0a の初めの 1.5MBytes
くらいを読むとします。
この時に、特に何か書いたりしなければ、初めの方は内容は一定のはずで
すよね。(この仮定が違っていると以下は意味がありません)
ちょっと C で書く元気はなかったので(元気がないというよりも知恵が
ない方かも知れませんが) perl で添付のようなものを書いて見ます。
256k bytes づつ読んで書き出します。
これを (root で) ./read-small-blocks /dev/rwd0a と実行すると、
/tmp/a0 ... /tmp/a7 のような譜が出来るので、それらの md5 を見て
見ると、0k -- 256 k -- 512k のところでもう内容が変化しています。
これは正常でしょうか。他の機械だと一定だったような気がするのですが。
iBook/1.5_ALPHA + (1.5E + ADBpatch) + 1.5E libc
root@nazuha 7:00:37/000907(/tmp)# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/wd0a 4060487 205970 3651492 5% /
pid150@nazuha:/automount 0 0 0 100% /automount
ci.ki.nu.:/export 3899976 1719020 1985957 46% /amd/ci.ki.nu./export
root@nazuha 7:00:40/000907(/tmp)# disklabel wd0
# /dev/rwd0c:
type: ESDI
disk: FUJITSU MHK2060A
label: fictitious
......
7 partitions:
# size offset fstype [fsize bsize cpg]
a: 8396800 1544 4.2BSD 0 0 0 # (Cyl. 1*- 8887*)
b: 614400 8398344 swap # (Cyl. 8887*- 9537*)
c: 11733120 0 unused 0 0 # (Cyl. 0 - 12415)
d: 200 320 unknown # (Cyl. 0*- 0*)
e: 65536 9012744 HFS # (Cyl. 9537*- 9606*)
f: 2654208 9078280 HFS # (Cyl. 9606*- 12415*)
g: 632 11732488 unknown # (Cyl. 12415*- 12415)
disklabel: boot block size 0
disklabel: super block size 0
root@nazuha 7:00:42/000907(/tmp)#
# やはり確認用の専用の区画を作っておいた方が良さそう。
---
(藤原)
#!/usr/local/bin/perl
# 一回に 256k bytes づつ。
$count = 1024*256;
open(FD, $ARGV[0]) || " print ** Problem opening: $!\n";
$i = 8;
while ( $i-- > 0 ) {
read(FD,$buffer,$count);
$name = '/tmp/a'.$i;
open(OUT,">$name");
print OUT $buffer;
close(OUT);
}
close(FD);
__END__
root@nazuha 6:50:40/000907(/tmp)# ~makoto/perl/practice/read-small-blocks /dev/rwd0a ; md5 *
MD5 (a0) = fb4d9d3a2037087171b9a0f807c94304
MD5 (a1) = 27ada29ebf2bbb48f5336a41c7cf3057
MD5 (a2) = 18254fe8a462b72c5b0d8a056dde7c0c
MD5 (a3) = 574e87a494bf14ef8eebaa0eb0b0b5b0
MD5 (a4) = c4195dea6f2f12ecef03ae16f465f37d
MD5 (a5) = 015f343a5f7af8743771b1e7ed2a34aa
MD5 (a6) = 8f39d9298ab7877b01654d75e20a0fcf
MD5 (a7) = 375f57eb57e1a0d2fcb7ab43d95f15ac
root@nazuha 6:50:44/000907(/tmp)# ~makoto/perl/practice/read-small-blocks /dev/rwd0a ; md5 *
MD5 (a0) = ef9d0b87def485b74a6bdd49ef44b2ef
MD5 (a1) = 27ada29ebf2bbb48f5336a41c7cf3057
MD5 (a2) = 18254fe8a462b72c5b0d8a056dde7c0c
MD5 (a3) = 574e87a494bf14ef8eebaa0eb0b0b5b0
MD5 (a4) = c4195dea6f2f12ecef03ae16f465f37d
MD5 (a5) = 015f343a5f7af8743771b1e7ed2a34aa
MD5 (a6) = 8f39d9298ab7877b01654d75e20a0fcf
MD5 (a7) = 375f57eb57e1a0d2fcb7ab43d95f15ac
root@nazuha 6:50:46/000907(/tmp)# ~makoto/perl/practice/read-small-blocks /dev/rwd0a ; md5 *
MD5 (a0) = fb4d9d3a2037087171b9a0f807c94304
MD5 (a1) = 564d8de6840a482134d19eac71b0513f
MD5 (a2) = 18254fe8a462b72c5b0d8a056dde7c0c
MD5 (a3) = 574e87a494bf14ef8eebaa0eb0b0b5b0
MD5 (a4) = c4195dea6f2f12ecef03ae16f465f37d
MD5 (a5) = 015f343a5f7af8743771b1e7ed2a34aa
MD5 (a6) = 11d3e0980c7fc7978118999deab47eab
MD5 (a7) = 0861de5a7dc7fb1d47bc0579a2d7e817
root@nazuha 6:50:48/000907(/tmp)# ~makoto/perl/practice/read-small-blocks /dev/rwd0a ; md5 *
MD5 (a0) = fb4d9d3a2037087171b9a0f807c94304
MD5 (a1) = 4ad094d1ded3b587d488cdf3eb0beee2
MD5 (a2) = 18254fe8a462b72c5b0d8a056dde7c0c
MD5 (a3) = 574e87a494bf14ef8eebaa0eb0b0b5b0
MD5 (a4) = c4195dea6f2f12ecef03ae16f465f37d
MD5 (a5) = 015f343a5f7af8743771b1e7ed2a34aa
MD5 (a6) = 11d3e0980c7fc7978118999deab47eab
MD5 (a7) = 0861de5a7dc7fb1d47bc0579a2d7e817
root@nazuha 6:50:51/000907(/tmp)# ~makoto/perl/practice/read-small-blocks /dev/rwd0a ; md5 *
MD5 (a0) = fb4d9d3a2037087171b9a0f807c94304
MD5 (a1) = 27ada29ebf2bbb48f5336a41c7cf3057
MD5 (a2) = 18254fe8a462b72c5b0d8a056dde7c0c
MD5 (a3) = 574e87a494bf14ef8eebaa0eb0b0b5b0
MD5 (a4) = 339cf04eb262c30d72a797f041d34547
MD5 (a5) = 015f343a5f7af8743771b1e7ed2a34aa
MD5 (a6) = 11d3e0980c7fc7978118999deab47eab
MD5 (a7) = 0861de5a7dc7fb1d47bc0579a2d7e817
root@nazuha 6:50:54/000907(/tmp)#