[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bfree-prj 145] Re: mkfs ができない問題
- To: bfree-prj@iijnet.or.jp
- Subject: [bfree-prj 145] Re: mkfs ができない問題
- From: Tomohide Naniwa <naniwa@mechgw.mech.yamaguchi-u.ac.jp>
- Date: Sun, 18 Apr 1999 18:10:25 +0900 (JST)
- Cc: bfree-kernel@tron-net.gr.jp
- In-Reply-To: Your message of "Sat, 17 Apr 1999 16:52:36 +0900".<37183DC432.8674JNETWORK@smtp.network.or.jp>
- Reply-To: bfree-prj@iijnet.or.jp
- Sender: owner-bfree-prj@iijnet.or.jp
浪花です.
Kernel ML にも送っています.
In "[bfree-prj 143] mkfs ができない問題", Sat, 17 Apr 1999 16:52:36 JST
jnetwork@network.or.jp writes:
> Linuxの再インストールにとまどって遅れました。
>
> ./mkfs /dev/hda3 80640 512 11484(成功)
>
> ./mkfs /dev/hda3 80640 512 11483(失敗)
> superblock = 1, bitmap block = 20, inode block = 45932
> Segmentation fault (core dumped)
有難うございました.このメッセージをベースに mkfs.c を見直したとこ
ろ,怪しげなところを見つけたので修正してみました.
kernel/POSIX/mkfs の下で下記の patch を当ててみてください.
# 漢字が入っていますので,念のため EUC コードに変換した上でご利用
# ください.
----------------------------
*** mkfs.c.orig Tue Sep 9 22:51:20 1997
--- mkfs.c Sun Apr 18 17:54:45 1999
***************
*** 168,187 ****
char *buf;
int i;
! buf = alloca (blocksize * 10);
! bzero (buf, blocksize * 10);
lseek (formatfd, blocksize * (super_block + boot_block), 0);
for (i = 0; i < bitmap_block; i++)
{
write (formatfd, blocksize, buf);
}
lseek (formatfd, blocksize * (super_block + boot_block), 0);
for (i = 0; i < (boot_block + super_block + bitmap_block + inode_block + 2); i++)
{
set_bit (buf, i);
}
! write (formatfd, buf, blocksize * 10);
}
--- 168,189 ----
char *buf;
int i;
! buf = alloca (blocksize * bitmap_block);
! bzero (buf, blocksize * bitmap_block);
! /* この部分は本当に必要? ここから */
lseek (formatfd, blocksize * (super_block + boot_block), 0);
for (i = 0; i < bitmap_block; i++)
{
write (formatfd, blocksize, buf);
}
+ /* ここまで */
lseek (formatfd, blocksize * (super_block + boot_block), 0);
for (i = 0; i < (boot_block + super_block + bitmap_block + inode_block + 2); i++)
{
set_bit (buf, i);
}
! write (formatfd, buf, blocksize * bitmap_block);
}
----------------------------
以下 Kerlne ML 向けです.コメントにも書きましたが,上記のコードで
は bzero した bitmap block を一旦全てディスクに書き出した後で,再
度,利用されているブロックに 1 を立てた bitmap block を書き出すこ
とになります.オリジナルのコードもそうなってますが,最後に一回だけ
書き出せば良いような気がするんですが....
この修正で間違っていなければ,どなたかソースにマージしてください
(^^;).
---
(putprop '浪花 智英
'affiliation '(山口大学大学院 理工学研究科 環境共生工学専攻)
'e-mail '(naniwa@mechgw.mech.yamaguchi-u.ac.jp))