리눅스에서 외장fat32의 경우 fsck를 돌려야 할때를 어떻게 알죠?
글쓴이: doraq / 작성시간: 월, 2010/11/15 - 1:11오후
항상 하면 그만이겠지만....
리눅스 DVR관련 임베디드 시스템입니다. 가급적 빨리 정상 작동상태로 돌아와야죠.
외장USB를 붙일때마다 fsck.vfat을 하면 너무오래 걸립니다.
윈도우 같은경우 전원이 꺼진후 다시 켜면 윈도우가 chkdsk를 하잖습니까.
정상적인 종료일때는 안하구요(문제가 없어 너무 빨리끝난건진 모르겠음)
이런식으로 꼭 필료할때만 fsck를 하고 싶은데 그걸 알아내는 방법을 모르겠네요
모든 녹화시에 플레그를 두고 성공적으로 녹화를 종료했을때 ok표시를 하고, 머 이럴수도 있지만
윈도우가 그렇게 할거 같진 않구요.
뭔가 매번 아주 간단한 체크 방법이 있고 그걸로 chkdsk 실행여부를 판단하는걸로 보이는데
어떻게 하는지 아세요?
Forums:
지금 고민하시는 목적으로 저널링이 개발된 걸로 알고
지금 고민하시는 목적으로 저널링이 개발된 걸로 알고 있는데요.
저널링이 안되는 파일시스템을 사용하면..낭패를 볼듯 싶은데요.
공부한지 오래되서 잘 기억은 안나지만 저널링 원리를 보시면
정상 종료 로그를 판단해서 복구 여부를 판단하거나 그런것 들을 본것 같네요.
------식은이 처------
길이 끝나는 저기엔 아무 것도 없어요. 희망이고 나발이고 아무 것도 없어.
기존에..
기존에 사용되는 시스템인데다 여러 회사가 같이 개발하는터라
FAT32를 바꿔 버리긴 쉽지않은 상황입니다.
ext2 코드를 보면
수퍼 블럭 내에 마운트 상태를 저장하는 영역(ext2_super_block.s_state)을 할당하여
마운트 시에 이 값을 0으로 지우고 (정상적인) 언마운트 시에 이 값을 다시 1로 씁니다.
만일 언마운트가 되기 전에 시스템이 종료되었다면 이 값이 0으로 남아있을테니
다음 번 부팅 시에 이 값을 살펴보고 fsck를 실행할지 안 할지 판단할 수 있습니다.
실제로 Windows에서는 어떤 방식을 이용하는지 모르겠지만
FAT32에서도 BPB 내의 reserved 영역 중 한 바이트를 이용하여
위와 비슷한 방식으로 관리할 수 있을 것입니다.
FAT32 소스를 봤는데 그런건 없더라구요. 안쓰이는
FAT32 소스를 봤는데 그런건 없더라구요.
안쓰이는 변수를 잡아서 그렇게 사용도 가능은 할거같긴한데,
그러려면 mount, umount시점에 flag처리를 해야 하니까
mount/umount에 그 기능을 넣어주던가 아니면 flag처리를 하는 utility를
만들어 mount/umount직후에 처리를 해 주던가 해야겠네요.
구현은 되겠지만 깔끔하지 않은방식이라 고민좀 더 해보구요.
FAT 테이블 바로 옆에 섹터가 좀 남긴 할 겁니다.
>> 수퍼 블럭 내에 마운트 상태를 저장하는 영역
이 방식을 사용하신다면
FAT 테이블 바로 옆에 섹터가 좀 남긴 할 겁니다.
거기 이용하시면 될 듯..
=====================
늦었지만
혹시나 비슷한경우가 있는분이 있을지도 몰라 제 해결을 적어봅니다.
일단 제품은 PVR이라 파티션별로 녹화가 시작할때와 끝날때를 어딘가에(epprom) 적어뒀습니다.
부팅시에 그 곳에 open된걸로 적혀있으면 해당파티션을 fsck하고 아니면 pass..
간단하죠?
나름 파티션단위의 저널링이랄까요? 유치한 수준이긴하지만 만족해하더군요.
그 이전에는 켤때마다, HDD꽂을때마다 모든파티션을 항상 fsck했었거든요.
댓글 달기