[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)#