FSDB(8)

명칭
fsdb - FFS 디버그/편집 툴

서식
fsdb [-d] [-f] [-r] fsname

해설
fsdb 유틸리티는 fsname (통상은 raw 디스크 패티션)(을)를 open 해, 그 파일 시스템의 inode 데이터를 조작하기 위한 명령을 받아들입니다. 커멘드는 fsdb (inum X)> 의 prompt에 대해서 입력합니다. 여기서의 X (은)는 현재 선택되고 있는 i-number 가 됩니다. 최초로 선택되고 있는 inode (은)는 파일 시스템의 루트 (i-number 2)가 됩니다. 명령 프로세서에는 editline(3) 프로그램 라이브러리를 사용하고 있어, 명령행을 편집하는 것에 의해 타이핑의 양을 줄일 수가 있습니다. 명령 루프로부터 빠져 종료할 때에는, 파일 시스템의 슈퍼 블록 하지만 dirty 와 마크 되어 버퍼링 되고 있는 블록이 있으면 파일 시스템에 기입해집니다.

이하의 옵션을 사용 가능합니다:

-d  디버그 정보 (원래는 fsck(8) 의 코드에 유래하는 것)를 출력합니다.

-f  역사적인 이유에 의해 남아 있는 것으로, 특히 의미는 가지지 않습니다.

-r  파일 시스템을 읽어내 전용으로 오픈해, 기입을 실시하는 명령을 억제합니다.

명령
편입의 editline(3) 의 명령 외에 fsdb (은)는 이하의 명령을 서포트하고 있습니다:

help
    입력할 수 있는 명령의 리스트를 표시합니다.

inode i-number
    새로운 현재의 inode 로서 inode i-number (을)를 선택합니다.

back
    이전의 inode 로 돌아옵니다.

clri i-number
    i-number (을)를 클리어 합니다.

lookup name
cd name
    name (을)를 현재의 디렉토리 중(안)에서 찾아, 그 inode 를 현재의 inode 로 설정합니다. name (은)는 멀티 컴퍼넌트의 이름인가, slash로 시작해 검색을 루트의 inode (으)로부터 시작하는 것을 지정할 수 있습니다. 패스명안의 컴퍼넌트가 보고 익지 않는 경우, 마지막에 유효함 디렉토리가 액티브한 inode 와 해 사용됩니다.

    이 명령은 개시하는 inode 가 디렉토리의 경우만 유효합니다.

active
print
    액티브한 inode 를 표시합니다.

blocks
    액티브한 inode 의 블록 리스트를 표시합니다. 큰 파일에 대해서는 표시 출력이 길어지는 것에 주의해 주세요. 모든 간접 블록 포인터도 또 표시되기 때문입니다.
uplink
    액티브한 inode 의 링크수를 인크리먼트(increment) 합니다.

downlink
    액티브한 inode 의 링크수를 감소 합니다.

linkcount number
    액티브한 inode 의 링크수를 number (으)로 설정합니다.

ls  현재의 inode 의 디렉토리 엔트리를 리스트 합니다. 이 명령은 현재 의 inode 가 디렉토리인 경우만 유효합니다.

rm name
del name
    현재의 디렉토리 inode 로부터 엔트리 name (을)를 없앱니다. 이 명령은 현재의 inode 가 디렉토리에서 어느 경우만 유효합니다.

ln ino name
    현재의 디렉토리 inode 에 inode ino 에의 링크를 name 의 이름으로 작성합니다. 이 명령은 현재의 inode 가 디렉토리인 장소 합 마셔 유효합니다.

chinum dirslot inum
    디렉토리 엔트리 dirslot 안의 i-number 를 inum (으)로 변경합니다.

chname dirslot name
    디렉토리 엔트리 dirslot 안의 이름을 name (으)로 변경합니다. 이 명령에서는 디렉토리 엔트리를 확장할 수 없습니다. 이름이 현재 존재하는 디렉토리 슬롯에 들어가는 경우에게만, 엔트리의 이름의 변 갱이 가능합니다.

chtype type
    현재의 inode 의 타입을 type (으)로 변경합니다. type 에는 file, dir, socket, fifo 중 한쪽이 지정할 수 있습니다.

chmod mode
    현재의 inode 의 모드 비트를 mode (으)로 변경합니다. 이 서브 명령에서는 파일의 타입을 변경할 수 없습니다. 그 자리 합은 chtype (을)를 사용해 주세요.

chflags flags
    현재의 inode 의 파일 플래그를 flags (으)로 변경합니다.

chown uid
    현재의 inode 의 소유자를 uid (으)로 변경합니다.

chgrp gid
    현재의 inode 의 그룹을 gid (으)로 변경합니다.

chgen gen
    현재의 inode 의 세대 번호 (generation number)를 gen (으)로 변경합니다.

mtime time
ctime time
atime time
    각각, 현재의 inode 의 수정 시간, 변경 시간, 액세스 시간을 time (으)로 변경합니다. time 하 YYYYMMDDHHMMSS[.nsec] 의 형식이 아니면 안됩니다. 여기서, nsec (은)는 옵션으로 지정할 수 있는 나노초의 값이 됩니다. 만약, 나노초가 지정되어 없으면 mtimensec, ctimensec, atimensec 의 각각의 필드에는 제로가 세트 됩니다.

quit, q, exit, <EOF>
    프로그램을 종료합니다.

관련 항목
editline(3), fs(5), clri(8), fsck(8)

버그
``short''의 기호 연결의 조작은 동작하지 않습니다. (특히, 기호 연결의 타입은 변경하지 말아 주세요. )

모드는 심볼명은 아니고 숫자로 지정해 주세요.

아마 fsdb 에 실장되어 있지 않은 것으로, 좀 더 하고 싶은 것이 많이 있겠지요.

역사
fsdb 유틸리티는 fsck(8) 의 원시 코드를 사용해 파일 시스템의 조작의 코드의 대부분을 실장해 (이)라고 있습니다. fsdb 의 나머지의 부분은, 최초 NetBSD 에 두어 John T. Kohl 에 의해 쓰여졌습니다.

FreeBSD 에의 이식은 Peter Wemm 에 의해 행해졌습니다.

경고
이 툴은 최대한으로 주위를 기울여 사용해 주세요. fsck(8) (을)를 사용해도 수복할 수 없을 정도 FFS 파일 시스템을 부술 우려가 있습니다.