2009년 06월 18일
tar 사용시 주의사항
gzip은 여러개의 파일을 묶는 기능이 없다.
따라서 여러개의 파일을 묶어서 압축하려면 tar와 같이 사용하던가 zip같은 다른 압축포멧을 사용해야 한다.
꺼꾸로 tar는 묶는 기능만 있고 압축하는 기능이 없다. 물론 z 옵션을 주어 다 묶은후 gzip으로 압축하게 하는 기능은 있다.
그럼 왜 이렇게 불편한 tar를 쓸까?
tar는 해당 파일의 심볼릭 링크나, user id, group, permission등 파일 메타정보도 모두 저장하고 복구하게 되어있다.
그래서 유닉스 시스템의 파일들을 정상적으로 복구시키기 위해서 tar를 사용하게 된다.
그런데 리눅스에서 FAT32에 tar 파일을 풀때 문제가 발생한다.
문제는 FAT32 파티션을 마운트하면 해당 파티션은 마운트 한 유저의 권한, 소유로 마운트되게 된다. (user id, group id등) 일반적으로 root이다.
여기에 tar 파일을 풀려고 한다면 tar는 해당 파일에서 파일을 추출해 내고,
추출해 낸 파일을 tar에 기록된 원래 압축한 사용자의 user id, group으로 변경시키려고 시도한다.
그러나 FAT32 파일시스템은 소유에대한 정보를 저장하지 않는 파일 시스템이며 이에대한 변경시도는 실패하며 결국 root:root로 남아 있게 된다.
tar는 user id , group id 변경 시도가 실패했으므로 압축해제를 중단시키게 된다.
따라서 tar로 FAT32에 압축을 풀기 위해서는 원본이 root:root이 되어 있거나
풀기옵션에 소유권을 복구하지 않게하는 옵션을 주어야 한다.
# by | 2009/06/18 17:38 | 트랙백





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]