하드디스크 간 cp -a 할 때, failed to preserve ownership 에러

foruses의 이미지

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 로 마운트했었습니다.

혹시 해결방법 아시는 분 계시면 도움 부탁드립니다.

익명 사용자의 이미지

exFAT는 누가 만들었죠? FAT 계열 파일 시스템에는 유닉스 권한이나 사용자 정보를 저장할 수 없습니다.

해결 방법은 tar로 묶어서 저장하는 것 밖에는 없습니다. 아니면 대상 하드디스크를 ext4로 포맷하거나.

foruses의 이미지

Mac 과의 호환을 위해 부득이하게 exFAT를 선택했습니다.

exFAT는 root가 만들었죠.

제안에 따라, 구글링해서 아래처럼 해봐도, 문제가 해결되지 않았습니다.
$ tar cf - * | (cd /target; sudo tar xf - )

좀 더 보태면, source 하드디스크(1.7 TB)를 전체 그대로 target 하드디스크로 옮기려는 경우입니다.
소유자/그룹이름은 바뀌어도 상관은 없지만, 쓰기읽기실행 속성이 모두 chmod ugo+rwx 한 것 처럼 바뀌니 이것이 문제입니다.

익명 사용자의 이미지

아, 제 말의 뜻은 exFAT는 마이크로소프트가 주도해서 만들었다는 것을 강조하고 싶었던 겁니다. 그리고 역시 제 답글을 오해하신 것 같은데, tar 같은 압축 파일로 보관해 놓아야 메타데이터가 손실되지 않습니다.

foruses의 이미지

결국, ext 파일파일시스템 파일을 exFAT 등 유닉스 계열 파일시스템으로 속성을 유지하면서 바꾸는 방법은 있을 수 없다는 결론이지요?

 의 이미지

네 안 됩니다.

https://msdn.microsoft.com/en-us/library/windows/desktop/ee681827(v=vs.85).aspx

exFAT이 POSIX file permissions을 지원하지 않는 탓이죠. 없는 걸 달라고 할 수는 없는 거 아니겠어요?

어떻게든 파일 퍼미션 정보를 따로 기록해놨다가 나중에 복원하는 수밖에 없고, 앞서 다른 분이 알려드린 tar이 그런 방법 중 하나입니다. (이 포맷은 자체적으로 POSIX 파일 소유자 및 권한 정보를 기록합니다.)

foruses의 이미지

한가지 질문이 있는데요, 퍼미션 정보를 기록 후 복원하는 방법으로 tar 를 이용하는 방법을 말씀하셨는데요,

$ tar cf - * | (cd /target; sudo tar xf - )

해보았는데 여전히 퍼미션이 원래대로 되지 않았습니다. 다른 방법이 있는건지요, 아니면 제가 잘못 이해했을지도요.

익명 사용자의 이미지

잘못 이해하셨습니다. 권한 정보를 가지고 있어도, 그 정보를 기록해야 할 대상인 /target이 exFAT라면 무슨 방법을 써도 안 됩니다. 물컵이 아닌 평평한 접시에 물 부어봤자 다 넘치는 것처럼요.

foruses의 이미지

윗분 말씀이랑 같이 이해하면,
tar 로 묶어 놓으면 정보를 그대로 갖고 있지만, 그걸 exFAT에서 푸는 순간 권한 정보는 사라지는거란 것 같습니다. 그럼 결국 본질적으로 가능한 방법이 없는 것이겠고요.

맥에서 ext4 을 쓰기/읽기 할 수 있게 하는 방법이 있다고 하니, 그 방법을 사용해야겠습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.