RESTORE(8)

명칭
restore, rrestore - dump 명령로 만든 백업으로부터 파일이나 파일 시스템을 restore 한다

서식
restore -i [-cdhkmNuvy] [-b blocksize] [-f file] [-s fileno] restore -R [-cdkNuvy] [-b blocksize] [-f file] [-s fileno] restore -r [-cdkNuvy] [-b blocksize] [-f file] [-s fileno] restore -t [-cdhkNuvy] [-b blocksize] [-f file] [-s fileno] [file ...] restore -x [-cdhkmNuvy] [-b blocksize] [-f file] [-s fileno] [file ...]

rrestore 하 restore 의 별명입니다.

( 4.3BSD 옵션 문법은 백 워드 컴패터빌리티 (호환성)을 위해서(때문에) 실장되고 있습니다만, 여기에는 기재하고 있지 않습니다. )

해설
restore 유틸리티는 dump(8) (와)과 역의 동작을 실시합니다. 파일 시스템의 완전한 restore를 실시하려면 , 우선, 풀백 업의 restore로부터 시작해 계속되어 그 위에 인크리멘타르박크압을 restore 합니다. 풀 또는 부분 백업으로부터, 단일의 파일이나 디렉토리의 부분 트리 만을 restore 하는 일도 가능합니다. restore 유틸리티는, 네트워크를 개입시킨 동작도 가능합니다. 이것을 실시하려면 , 이하로 설명되고 있다 -f 플래그를 참조해 주세요. 명령에게 주는 그 외의 인수는, restore 되는 파일을 지정하기 위한 파일이나 디렉토리명입니다. -h 플래그를 지정하고 있지 않는 한 (아래와 같이 참조), 디렉토리명을 지정하는 것으로, 그 디렉토리안의 파일이나 (재귀적으로) 서브 디렉토리를 지정하게 됩니다.

이하의 어느쪽이든 1 개 (복수 지정 불가)의 플래그가 필요합니다:

-i  백업으로부터의 대화적인 restore를 실시합니다. 백업으로부터 디렉토리 정보 (을)를 읽어내면(자), restore (은)는 유저에게 전개해야 할 파일을 선택시키기 위해서(때문에), 쉘을 닮은 인터페이스로 명령을 받아들입니다. 이하의 명령이 사용 가능합니다. 인수가 필요한 커멘드에 대해 인수를 생략 하면(자), 디폴트로서 커런트 디렉토리가 사용됩니다.

    add [arg]
        커런트 디렉토리 또는 지정한 인수의 파일을, restore 하는 파일의 리스트에 덧붙입니다. 디렉토리명을 지정했을 경우에는, 그 디렉토리아래의 모든 파일이 전개 리스트에 더해집니다 (명령행에 -h 플래그가 지정되지 않았던 경우). ls 그리고 파일의 리스트를 표시할 경우에, 전개 리스트에 포함되어 있는 파일의 머리 에는 ``*''가 붙여져 있습니다.

    cd arg
        커런트 디렉토리를 지정한 디렉토리로 이동합니다.

    delete [arg]
        커런트 디렉토리 또는 인수로 지정한 파일명의 파일을, 전개한다 파일의 리스트로부터 삭제합니다. 디렉토리명을 지정했을 경우에는, 그 디렉토리아래의 모든 파일이 전개 리스트로부터 삭제됩니다 (명령행에 -h 플래그가 지정되지 않았던 경우). 디렉토리안의 대부분의 파일을 전개하는 경우에는, 디렉토리 전체를 전개 리스트에 가세한 후에 불필요한 파일만을 삭제하는 것이 제일 편리한 사용 방법입니다.

    extract
        전개 파일 리스트에 있는 모든 파일을 백업으로부터 전개합니다. restore 유틸리티는, 어느 볼륨을 mount 하고 싶은가를 유저에게 묻습니다. 몇 개의 파일만을 전개하는데 가장 빠른 방법은, 최종 볼륨으로부터 개시해 최초의 볼륨으로 돌아오는 것입니다.

    help
        이용할 수 있는 명령의 간단한 설명을 표시합니다.

    ls [arg]
        커런트 디렉토리 또는 지정된 디렉토리의 리스트를 표시합니다. 디렉토리명의 뒤에는 ``/''가 덧붙일 수 있어 전개 리스트에 있는 파일의 전에 (은)는 ``*''가 더해집니다. 장황 플래그가 세트 되고 있었을 경우에는, 각 디렉토리 엔트리에 맞추어 inode 번호도 표시됩니다.

    pwd 커런트 디렉토리의 풀 패스명을 표시합니다.

    quit
        즉석에서 중단합니다. 전개 리스트에 무엇인가 파일이 있었다고 해도 종료합니다.

    setmodes
        전개 리스트에 있는 모든 디렉토리의 소유자, 모드, 시각이 세트 된다 만으로, 백업으로부터는 아무것도 전개되지 않습니다. 이것은, restore를 도중에 중단해 버렸을 때의 뒤처리에 유용합니다.

    verbose
        장황 플래그 -v 의 의미를 반전합니다. 장황 플래그가 세트 되고 있는 경우에는, ls 명령은, 모든 엔트리에 대해서 그 inode 번호를 표시합니다. 또, restore 명령은, 파일을 전개할 때마다 그 정보를 표시합니다.

    what
        덤프 헤더 정보를 표시합니다. 이것에는, 일자, 레벨, label, 덤프의 원이 된 파일 시스템과 호스트가 포함됩니다.

-R  full restore를 재개하기 위해서, 멀티 볼륨의 테이프 중 특정의 것을 restore 하는 것을 요구합니다 (아래와 같이 -r 플래그를 참조). 이것은 restore 동작을 중단했을 때에 사용됩니다.

-r  restore (파일 시스템의 재구축)를 실시합니다. 레벨 0 백업의 restore의 전에는, restore처가 되는 파일 시스템은 newfs(8) 그리고 초기화해 두어, mount 해, 그 디렉토리에 cd 그리고 이동해 둘 필요가 있습니다. 레벨 0 백업의 restore에 성공하면(자), -r 플래그를 지정하는 것으로, 거기에 더해 필요한 인크리멘타르박크압을 restore 할 수가 있습니다. -r 플래그는 대화적인 파일 restore를 실시하지 않기 때문에, 주의해 취급하지 않으면 손해를 주는 일이 있습니다 (디스크는 말하는에 이르지 않고, 정신적으로도). 다음과 같이 실행합니다:

        newfs /dev/da0s1a
        mount /dev/da0s1a /mnt
        cd /mnt
        restore rf /dev/sa0

    restore (은)는, 인크리멘타르리스트아를 위한 정보를, 루트 디렉토리의 restoresymtable 에 기록합니다. 이 파일은, 모든 증분을 restore 한 후에 삭제해야 합니다.

    restore 유틸리티를, newfs(8) (이)나 dump(8) (와)과 조합하는 것으로, 파일 시스템의 사이즈나 블록 사이즈라고 했다 파라미터를 변경하는데 사용할 수가 있습니다.

-t  지정한 파일명의 파일이 백업중에 있으면, 그 이름을 표시합니다. 파일명 인수가 없는 경우에는 루트 디렉토리를 표시하기 위해(때문에), -h 플래그를 지정하고 있지 않는 한, 백업중의 모든 파일을 표시하는 것에 됩니다. 이 플래그는, 옛부터 있었다 dumpdir(8) 의 차이의 기능을 가지는 것에 주의해 주세요.

-x  미디어로부터, 지정한 파일이 읽어내집니다. 지정 파일이 디렉토리에서, 그 디렉토리의 내용이 백업중에 존재해, 한편 -h 플래그가 지정되어 있지 않을 때에는, 디렉토리의 내용이 재귀적으로 전개됩니다. (가능하면) 파일의 소유자, 수정 일시, 모드도 restore 됩니다. 만약 인수가 주어지지 않으면 루트 디렉토리를 전개하기 위해(때문에), -h 플래그를 지정하고 있지 않는 한, 결과적으로 백업 전체가 전개됩니다.

이하의 추가 옵션을 지정 가능합니다:

-b blocksize
    덤프 레코드 근처의 킬로바이트수입니다. -b 하지만 지정되지 않을 때는, restore (은)는 미디어의 블록 사이즈를 동적으로 요구하려고 합니다.

-c  통상 restore (은)는, 덤프 대상의 파일 시스템 포맷이 새로운가 낡은 (4.4 이전)인지를 동적으로 결정합니다. -c 플래그는 이 체크를 무효로 해, 낡은 포맷의 덤프로부터 마셔 읽어들이는 것을 허락합니다.

-d  장황한 디버그 출력을 표준 에러에 보냅니다.

-f file
    백업을 file (으)로부터 읽어들입니다; file (은)는, /dev/sa0 (테이프 드라이브)(이)나 /dev/da1c (디스크 드라이버)(이)라고 하는 스페셜 디바이스 파일, 통상의 파일, ‘-’ (표준 입력)의 머지않아인가입니다. 파일명이 “host:file” (이)나 “user@host:file” 그렇다고 하는 형식인 경우는, restore 하 rmt(8) (을)를 이용해 지정한 파일을 지정의 호스트로부터 읽어냅니다.

-k  리모트 테이프 서버와의 통신시에 Kerberos 인증을 사용합니다 ( restore 의 컴파일시에 유효하게 되고 있는 경우만 사용 가능합니다. )

-h  디렉토리명을 지정되었을 경우에, 그 중의 파일이 아니고, 디렉토리 그 자체를 전개하도록(듯이) 합니다. 이것에 의해, 덤프로부터 디렉토리의 서브 트리를 계층적으로 전개해 버리는 것을 막습니다.

-m  전개를, 파일명은 아니고 inode 번호에 의해 실시합니다. 이것은 몇 개의 파일만을 전개하고 싶은 경우로, 파일의 완전한 패스명을 재생하는 것을 막고 싶은 경우에 유용합니다.

-N  통상 대로 전개합니다만, 실제로는 변경을 디스크에 기입하지 않습니다. 덤프 미디어의 완전성의 확인이나 다른 테스트 목적으로 사용 가능합니다.

-s fileno
    멀티 파일 테이프의 fileno (으)로부터 읽습니다. 파일 번호는 1 으로부터 시작됩니다.

-u  특정의 타입의 파일을 작성할 때에, restore처 디렉토리에 이미 동명의 파일이 존재하는 경우에는, restore는 경고 진단을 생성 할 수 있습니다. 이 동작을 억제하기 위해서, -u (안린크) 플래그를 지정하면(자), restore는 낡은 엔트리를 삭제하고 나서 새로운 엔트리를 작성하려고 합니다.

-v  보통, restore (은)는 아무것도 표시하지 않고 restore 동작을 실시합니다. -v (verbose, 장황) 플래그를 지정하면(자), 취급하는 파일의 타입과 파일명이 표시됩니다.

-y  에러가 발생했을 때에, restore 동작을 중단하는지 어떤지의 문의를 실시하지 않습니다. 이것에 의해, 불량 블록을 스킵 해, 가능한 한동작을 계속합니다.

진단
read error가 발생하면(자) restore 유틸리티는 메세지를 표시합니다. 만약, -y 하지만 지정되어 있든가, 혹은 유저가 ‘y’ 의 응답을 했다면, restore (은)는 restore를 속행하려고 합니다.

백업이 1 권보다 많은 테이프 볼륨에 격납되고 있었다면, restore (은)는 다음의 볼륨을 mount 해야 할 시점에서 그것을 유저에게 알립니다. 만약, -x 혹은 -i 플래그가 지정되어 있으면(자), restore (은)는, 유저가 mount 하고 싶은 것은 어느 볼륨일까를 문의합니다. 소수의 파일을 가장 빨리 전개하는 방법은, 최종 볼륨으로부터 개시해, 최초의 볼륨에 향하여 작업을 진행시키는 것입니다.

restore (은)는 수많은 일관성 검사를 실시하고 있어, 그것을 표시합니다. 대부분의 검사 결과의 표시는 자명한가, 혹은 「결코 일어나지 않는다」 것입니다. 잘 있는 에러를 이하에 나타냅니다.

Converting to new file system format.
    낡은 형식의 파일 시스템으로 만들어진 덤프 테이프가 로드 되었습니다. 그 경우, 자동적으로 새로운 파일 시스템의 형식에 변환됩니다.

<filename>: not found on tape
    지정한 파일명은 테이프의 디렉토리에는 기록되고 있었습니다만, 테이프 속에 본체가 눈에 띄지 않았습니다. 이러한 사태가 일어나는 것은, 파일을 찾고 있는 동안에 테이프의 read error 하지만 발생했을 경우나, 가동중의 파일 시스템에 대해 작성한 덤프 테이프 (을)를 사용했을 경우입니다.

expected next file <inumber>, got <inumber>
    디렉토리에 기록되어 있지 않았던 파일이 나타납니다. 가동중의 파일 시스템에 대해 작성한 덤프를 사용했을 경우에 발생하는 것이 있습니다.

Incremental dump too low
    인크리멘타르리스트아를 실시할 때에, 덤프가 직전의 인크리멘타르단프 보다 이전에 쓰여진 것이거나 증분 레벨이 너무 낮은 덤프가 로드 되었을 경우에 표시됩니다.

Incremental dump too high
    인크리멘타르리스트아를 실시할 때에, 덤프가 직전의 인크리멘타르단프 의 계속의 범위로부터 개시하고 있지 않기도 하고, 혹은 증분 레벨이 너무 높다 덤프가 로드 되었을 경우에 표시됩니다.

Tape read error while restoring <filename>
Tape read error while skipping over inode <inumber>
Tape read error while trying to resynchronize
    테이프 (혹은 그 외의 매체)의 read error가 발생했습니다. 파일명이 표시되고 있었다면, 그 내용은 아마 부분적으로 부정한 것에 되어 있겠지요. 만약 inode 가 스킵 되거나 테이프의 resynchronize (재동기)가 시도등 라고 아픈 , 전개된 파일에는 문제는 없습니다. 그러나, 테이프 위로부터 몇개의 파일을 찾아낼 수가 없을지도 모릅니다.

resync restore, skipped <num> blocks
    덤프의 read error가 발생한 후에, 아마 restore (은)는 자기 자신으로 재동기를 잡지 않으면 안됩니다. 이 메세지는 스킵 한 블록의 개수를 표시합니다.

관련 파일
/dev/sa0
    디폴트의 테이프 드라이브
/tmp/rstdir*
    테이프중의 디렉토리를 보관 유지하는 파일
/tmp/rstmode*
    디렉토리의 소유자, 모드, 타임 스탬프
. /restoresymtable
    인크리멘타르리스트아간에 건네받는 정보

관련 항목
dump(8), mount(8), newfs(8), rmt(8)

버그
사용중의 파일 시스템으로부터 작성된 덤프로부터 인크리멘타르리스트아를 실시하면, restore 유틸리티가 오동작을 일으키는 일이 있습니다.

full restore의 종료후에는 레벨 0 덤프를 실시할 필요가 있습니다. restore (은)는 유저 코드로 동작하므로, inode 의 할당을 제어할 수가 없습니다. 따라서, 파일의 내용이 변경되어 있지 않은 경우에서도, 새로운 inode 할당을 새로운 디렉토리 집합에 반영시키기 위해서(때문에)는, 풀 덤프를 실시하지 않으면 안됩니다.

네트워크를 개입시킨 restore를 실시하는 경우, root 권한으로 restore 를 실행할 필요가 있습니다. 이것은, 이전의 dump 와 restore 의 보안상의 역사에 의하는 것입니다. (restore 는 root 에 setuid 되어 사용되도록(듯이) 쓰여져 있습니다만, restore 의 코드로부터 모든 버그가 잡히고 있다고는 생각하지 않기 때문에, setuid 에서 사용하는 경우는 자기의 책임에 대해 가 주세요. )

일시파일 /tmp/rstdir* (와)과 /tmp/rstmode* (은)는, 덤프의 일자와 프로세스 ID 에 근거해, 독특하게 생성됩니다 ( mktemp(3) (을)를 참조해 주세요). 다만 -r 또는 -R 하지만 사용되었을 경우는 예외입니다. 이것은, 중단되었다 -r 의 동작을 -R 에 의해 재개 가능과 하기 위한(해)여, 다른 처리에 대해 동일한 일시파일을 사용하는 것이 필요하기 때문에입니다. 다른 경우에는, 파일은 독특합니다. 이것은, 동시에 2 개가 다른 덤프가 개시할 가능성이 있기 때문에 있어, 다른 처리가 충돌하지 않게 해야 하기 때문에입니다.

역사
restore 유틸리티는 4.2BSD (으)로부터 등장했습니다.