block size 를 알수 있는 방법이 있나요?

a287848의 이미지

파일 시스템 관련해서 일을 하고 있습니다.

저희가 만든 파일시스템의 슈퍼 블럭에서

배드 블럭이 발생했을때 백업된 슈퍼 블럭을 찾기위해서

block size 를 알고 싶은데 block size 를 알 수 있는

방법이 있나요?

서지훈의 이미지

$ man 2 statfs

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

a287848의 이미지

다만 여기에서 알려주는건 optimal blocksize 이네요. 2048bytes 로 포맷하고 돌려봐도 4096bytes 로 나오네요 page 크기와 같은 값이 최적의 block size 이 기때문에 4096bytes 를 return 하는 것 같습니다. 좋은 답변 감사드립니다.

Dig it.

pastime의 이미지

statfs() 시스템 콜은 단지 파일 시스템의 super_operations 에 등록된 statfs() 함수를 호출해서 결과값을 돌려줄 뿐입니다.
실제 파일 시스템의 statfs() 구현쪽을 살펴보시기 바랍니다.

jeweljar의 이미지

blockdev --getbsz /dev/foo

위의 명령어는 file system의 block size가 아닌
원래 block device의 block size를 얻습니다.
원하시는게 이것인지 모르겠군요. ^^