하드디스크 간 cp -a 할 때, failed to preserve ownership 에러
글쓴이: foruses / 작성시간: 수, 2017/11/15 - 8:39오후
sudo \cp -a source/* target/
속성을 보존하려고 위처럼 실행시키면, 아래와 같은 에러 메세지가 뜹니다.
그리고 target내 모든 파일 속성이 drwxrwxrwx 로 바뀌어 복사가 됩니다.
cp: failed to preserve ownership for `/source/file1.dat': Operation not permitted
source 의 하드디스크는 ext4 파일 시스템이고, target 하드디스크는 mkfs.exfat 로 생성되었고, mount.exfat 로 마운트했었습니다.
혹시 해결방법 아시는 분 계시면 도움 부탁드립니다.
Forums:
exFAT는 누가 만들었죠? FAT 계열 파일
exFAT는 누가 만들었죠? FAT 계열 파일 시스템에는 유닉스 권한이나 사용자 정보를 저장할 수 없습니다.
해결 방법은 tar로 묶어서 저장하는 것 밖에는 없습니다. 아니면 대상 하드디스크를 ext4로 포맷하거나.
감사합니다..
Mac 과의 호환을 위해 부득이하게 exFAT를 선택했습니다.
exFAT는 root가 만들었죠.
제안에 따라, 구글링해서 아래처럼 해봐도, 문제가 해결되지 않았습니다.
$ tar cf - * | (cd /target; sudo tar xf - )
좀 더 보태면, source 하드디스크(1.7 TB)를 전체 그대로 target 하드디스크로 옮기려는 경우입니다.
소유자/그룹이름은 바뀌어도 상관은 없지만, 쓰기읽기실행 속성이 모두 chmod ugo+rwx 한 것 처럼 바뀌니 이것이 문제입니다.
아, 제 말의 뜻은 exFAT는 마이크로소프트가
아, 제 말의 뜻은 exFAT는 마이크로소프트가 주도해서 만들었다는 것을 강조하고 싶었던 겁니다. 그리고 역시 제 답글을 오해하신 것 같은데, tar 같은 압축 파일로 보관해 놓아야 메타데이터가 손실되지 않습니다.
감사합니다. ^^
결국, ext 파일파일시스템 파일을 exFAT 등 유닉스 계열 파일시스템으로 속성을 유지하면서 바꾸는 방법은 있을 수 없다는 결론이지요?
네 안 됩니다.
네 안 됩니다.
https://msdn.microsoft.com/en-us/library/windows/desktop/ee681827(v=vs.85).aspx
exFAT이 POSIX file permissions을 지원하지 않는 탓이죠. 없는 걸 달라고 할 수는 없는 거 아니겠어요?
어떻게든 파일 퍼미션 정보를 따로 기록해놨다가 나중에 복원하는 수밖에 없고, 앞서 다른 분이 알려드린 tar이 그런 방법 중 하나입니다. (이 포맷은 자체적으로 POSIX 파일 소유자 및 권한 정보를 기록합니다.)
상세한 설명 감사합니다.
한가지 질문이 있는데요, 퍼미션 정보를 기록 후 복원하는 방법으로 tar 를 이용하는 방법을 말씀하셨는데요,
$ tar cf - * | (cd /target; sudo tar xf - )
해보았는데 여전히 퍼미션이 원래대로 되지 않았습니다. 다른 방법이 있는건지요, 아니면 제가 잘못 이해했을지도요.
잘못 이해하셨습니다. 권한 정보를 가지고 있어도, 그
잘못 이해하셨습니다. 권한 정보를 가지고 있어도, 그 정보를 기록해야 할 대상인 /target이 exFAT라면 무슨 방법을 써도 안 됩니다. 물컵이 아닌 평평한 접시에 물 부어봤자 다 넘치는 것처럼요.
네.
윗분 말씀이랑 같이 이해하면,
tar 로 묶어 놓으면 정보를 그대로 갖고 있지만, 그걸 exFAT에서 푸는 순간 권한 정보는 사라지는거란 것 같습니다. 그럼 결국 본질적으로 가능한 방법이 없는 것이겠고요.
맥에서 ext4 을 쓰기/읽기 할 수 있게 하는 방법이 있다고 하니, 그 방법을 사용해야겠습니다.
댓글 달기