Linux에서 읽기/쓰기 권한으로 HFSPlus 디스크 마운트

Linux에서 읽기/쓰기 권한으로 HFSPlus 디스크 마운트

나는 이 질문이 본질적으로 다음과 유사하다는 것을 알고 있습니다.이 질문, 하지만 다음 댓글 중 하나에서 추가적인 문제에 대해 더 많은 관심을 집중시키고 싶습니다.그 질문에 대한 이 대답.

오래된 MacbookPro의 하드 드라이브를 꺼내서 Elementary OS 상자에 마운트하려고 합니다. 그러면 자동으로 읽기 전용으로 마운트됩니다. 이 드라이브에 대한 rw 액세스 권한을 얻고 싶습니다.

위에 링크된 답변에 제공된 절차에 따라 실행한 후

sudo mount -t hfsplus -o remount,force,rw /dev/sdc2 /media/myharddrive

나는 얻다

mount: warning: /media/myharddrive seems to be mounted read-only.

이는 해당 질문에 대한 의견에서 언급되었지만 답변에 대한 보상을 받을 만큼 충분한 관심을 얻지 못했습니다.왜 아직도 읽기 전용인가요? 그게 보장되는 것 아닙니까 force?

다음은 관련될 수도 있고 관련되지 않을 수도 있습니다.

나도 sudo fsck.hfsplus -f /dev/sdc2따라 달려갔다.답변에 링크된 블로그 게시물저널링된 시스템 검사를 수행하고 싶지 않은 -f후에 플래그를 추가했습니다 . fsck이 때까지는 잘 돌아갔어

** /dev/sdc2 ** Checking HFS Plus volume. ** Checking Extents Overflow file. ** Checking Catalog file. ** Checking multi-linked files. Orphaned indirect node iNode28863935 ** Checking Catalog hierarchy. ** Checking Extended Attributes file. ** Checking volume bitmap. ** Checking volume information. ** Repairing volume. ** Rechecking volume. ** Checking HFS Plus volume. ** Checking Extents Overflow file. ** Checking Catalog file. ** Checking multi-linked files. ** Checking Catalog hierarchy. ** Checking Extended Attributes file. ** Checking volume bitmap. ** Checking volume information. ** The volume myharddrive was repaired successfully. *** glibc detected *** fsck.hfsplus: munmap_chunk(): invalid pointer: 0x00000000022f9e30 ***

역추적과 메모리 맵이 뒤따릅니다. 그 fsck전화는 내 운전에 좋지도 나쁘지도 않은 영향을 끼친 것 같습니다.

내 드라이브에 대한 읽기-쓰기 액세스 권한을 얻는 방법에 대한 조언,OSX를 부팅하지 않고, 정말 감사하겠습니다.

편집하다 Michael Kjörling의 의견과답변내 데이터에 액세스하는 근본적인 문제를 해결했습니다. 그러나 위에서 굵은 글씨로 표시된 질문은 아직 해결되지 않았으므로 이 문제를 강조하기 위해 질문을 편집하여 향후 사용자를 위해 질문을 열어 두었습니다.

답변1

의견에서 알 수 있듯이 여기에는 두 가지 가능한 문제가 있습니다.

  1. 일반 사용자로 복사본을 실행하려고 합니다. 이로 인해 소스 파일에 대한 읽기 권한이 없기 때문에 소스 파일을 읽는 데 실패할 수 있습니다. 이는 sudo마운트를 수행한 것처럼 복사를 실행하면 쉽게 수정됩니다 .
  2. cp: omitting directory Documents/을 통해 복사를 실행하려고 하면 나타납니다 sudo. 이는 전혀 권한 문제가 아니며 cp하위 디렉터리를 포함하도록 지시함으로써 간단히 해결할 수 있습니다.

sudo cp -av /media/myharddrive /somewhere/else이 두 가지를 함께 사용하면 /somewhere/else가 존재하고 쓰기 가능한 와 같은 명령을 사용하여 파일을 복사할 수 있습니다 .

매개 -v변수가 꼭 필요한 것은 아니지만 30분 또는 1시간 정도 기다리면 복사되는 동안 나열되는 파일을 감상할 수 있습니다. 작은 파일 수가 매우 많은 경우 화면 새로 고침으로 인해 복사 처리량이 줄어들 수 있습니다. 그런 경우에는 창을 최소화하고 가끔씩 확인하면 됩니다.

-acp는 하위 디렉토리를 포함하여 복사 중인 파일을 최대한 보존하면서 "보관" 모드에서 작동하도록 지시합니다. 또는 -r디렉토리 구조만 보존하도록 지시할 수도 있습니다.

이를 사용하면 HFS+ 파일 시스템 지원의 읽기 전용 제한에 의해 제한되지 않고 보다 자유롭게 작업할 수 있는 보다 적합한 위치에 파일을 복사할 수 있습니다.

답변2

귀하의 문제는 기본적으로 OSX를 사용하지 않고 저널링을 끄는 방법이라고 생각합니다.

이를 위해서는 디스크 헤더의 바이너리 편집(해킹)이 필요하며 결과적으로 저널이 차지하는 디스크 공간이 손실될 수 있습니다.

다음은 이를 수행한다고 주장하는 다소 유사한 두 개의 C 프로그램에 대한 포인터입니다.

이러한 프로그램이 디스크를 파괴하지 않는다고 보장할 수 없으므로 디스크의 백업 이미지에서 이 프로그램을 시도해 보시기 바랍니다.

이 게시물이 유용할 수 있습니다. 디스크 이미지를 어떻게 마운트할 수 있나요?.

답변3

나는 같은 문제를 많이 겪었고 지금까지 배운 것은 성공적인 fsck를 수행하는 것이 필수적이라는 것입니다. 이것이 귀하의 컴퓨터에서 작동하지 않기 때문에 이것이 해결 방법이 되어야 한다고 생각합니다.

  • 어떤 버전의 hfsprogs / fsck.hfsplus를 설치하셨나요?
  • 내 컴퓨터에서 (Debian을 실행 중) I소스에서 설치했습니다(다른 소스의 다운로드 사용)

    wget "http"://"gentoo.osuosl.org/distfiles/diskdev_cmds-332.14.tar.gz"

    wget "http"://"gentoo.osuosl.org/distfiles/diskdev_cmds-332.14_p1.patch.bz2"

    tar xzf diskdev_cmds-332.14.tar.gz

    bunzip2 -c diskdev_cmds-332.14_p1.patch.bz2 | 패치 -p0

    CD diskdev_cmds-332.14

    make -f Makefile.lnx

    cp fsck_hfs.tproj/fsck_hfs /sbin/fsck.hfsplus

    cp newfs_hfs.tproj/newfs_hfs /sbin/mkfs.hfsplus

    ln -s /sbin/fsck.hfsplus /sbin/fsck.hfs

    ln -s /sbin/mkfs.hfsplus /sbin/mkfs.hfs

이런 식으로 fsck는 이제 내 hfs+ 디스크에서 항상 작동했습니다.

답변4

Mac에서 부팅할 수 있는 방법이 있는 경우환경저널링을 적절하게 비활성화하여 이 문제를 해결해야 합니다. 그건환경, 즉 실제 macOS가 아닙니다. 디스크가 더 이상 Mac에 없지만 Mac이 부팅되는 경우 디스크를 외부 인클로저에 넣고(또는 다시 설치) 인터넷 복구로 부팅합니다. RIntel Mac의 전원을 켜는 동안과 전원을 켠 후에 잠시 기다리세요.

당신의 기계가 더 새로운 것이라면 그런 D라서 안타깝지만 당신은 그것이 가고 있는 길을 목격한 후에 Apple에서 계속 구매하면서 이것을 스스로 가져왔습니다.

디스크 유틸리티를 사용하거나 diskutil(위 메뉴 중 하나에서 터미널에 액세스할 수 있음) 디스크에 일부 TLC를 제공한 다음 저널링을 비활성화합니다.저널링 비활성화에 있어야합니다파일메뉴디스크 유틸리티숨겨져 있을 가능성이 높으므로 을 눌러 공개하세요.

diskutil list또는 터미널에서디스크 용량을 누른 다음 볼륨이 마운트 해제되었는지 확인하세요.

  • diskutil unmountDisk disk1s7또는 전체 디스크가 마운트 해제되었습니다
  • diskutil unmountDisk disk1또는
  • diskutil unmountDisk /dev/disk1하지만 배출되지는 않았습니다.
  • diskutil eject <any-of-the-above>아니면 다시 연결해야 합니다. 그리고 저널링을 제거하세요.
  • diskutil disableJournal disk1s7또는
  • diskutil disableJournal force disk1s7 ...물론 데이터도 마찬가지입니다.

새로운 파일 시스템을 결정했다면 다음을 사용하세요.NTFSWindows를 사용하는 경우, 그렇지 않은 경우ext4. ZFS는 현재 대부분의 OS에 있으며 어떤 이유로 APFS도 마찬가지입니다. Btrfs도 훌륭하고 사용하기 쉽지만 에서 문제를 처리하는 것이 더 쉽고 ext4ZFS 및 Btrfs와 달리 이식 가능하지만 다른 것들은 풀 및 가져오기를 필요로 합니다. 추가 지원 및 메타데이터 오류로 인해 모든 것이 중단될 수 있습니다.

또는 이 환경에 있는 동안 디스크에 대한 전체 액세스 권한이 있어야 합니다. 그리고 큰 문제 없이 CLI를 사용하는 것 같으므로 어쨌든 계획 A에 대한 백업이 있을 것입니다. 즉, 다른 인클로저에 있는 두 번째 디스크를 사용하여 첫 번째 파일을 복사하기 전에 파일을 복사하는 것입니다. 첫 번째를 수정합니다.

설치 프로그램이나 복구 모드 또는 표준 macOS가 아닌 다른 형식으로 부팅하는 동안 파일 시스템의 구조에 주의하세요. 복구로 부팅한 지 꽤 시간이 지났지만 /라이브 환경의 파일 시스템을 참조하는 것으로 생각됩니다. 실제 디스크는 ~에/Volumes/<your-volume-name>

Mac이 부팅되지 않거나 더 이상 존재하지 않는 경우 Mac을 빌릴 수 있습니다! 왜 아무도 이것을 제안하지 않았는지 모르겠습니다.

마지막 노력 상황

데이터를 이동할 디스크나 네트워크 공유가 없으면 어떻게 됩니까?

시도하면 GUI에서 실패할 가능성이 매우 높습니다. 한 번에 하나씩 수정하고 적용하고 인내심을 가지십시오.

저널링 없이 HFS 볼륨을 생성하는 디스크를 분할할 수 있습니다.연결된 디스크 세트(JBOD)거기로 최대한 많은 데이터를 이동하면 원래 볼륨 파티션의 다른 청크가 다시 해제되고 새 볼륨으로 JBOD가 확장됩니다. 완료될 때까지 반복하세요. 항상 각 볼륨에 약간의 여유 공간을 두십시오. *200-400MB이면 충분히 안전합니다. 볼륨을 다시 늘릴 수는 없지만 JBOD에는 규칙이 거의 없습니다.

대안적으로 그리고Linux에서는 인식되지 않을 수 있으므로 Linux에서는 테스트해 본 적이 없습니다.JBOD는 잊어버리세요. 현재 36개 볼륨으로 제거되었더라도 해당 볼륨에서 데이터를 가져오면 다음 단계를 계획할 수 있는 여유가 생길 것입니다.

아마도 JBOD-it는 Linux를 사용하여 ext4를 Btrfs로 직접 변환할 수 있으며 Btrfs는 ZFS 주변에서 순환하는 영역인 다른 어떤 것보다 더 유연합니다. 마지막 마이그레이션( hfsext4)이 있을까요? 이것은 위험하지만 적어도 또 다른 옵션입니다. macOS에 계속 머물렀다면 그렇게 많지 않을 것입니다. (좋은 결정입니다. 저는 아직 macOS, Mojave를 사용하고 있지만 Mac이 죽으면 버릴 준비가 되어 있습니다.) .

"민감한 디스크"로 디스크 유틸리티 사용

디스크 유틸리티가 무언가를 인식하지 못하면 디스크가 손상되었거나 무언가가 있음을 나타낼 수 있습니다. 한 번에 너무 많은 작업을 수행하면 자체적으로 손상될 수 있습니다. 디스크를 분할하기 위한 파이 그래픽이 표시되면 이름 추가, 파티션 설정 추가, 크기 조정 등은 모두 개별 작업입니다. 이러한 작업 중 상당수는 디스크 유틸리티가 실패하게 만드는 이유는 디스크가 충분히 빠르게 응답하지 않을 수 있고 다음과 같이 해석하기 때문이라고 가정합니다. 디스크가 불량하거나 참을성이 없어집니다.말하자면nad는 실제로 불량 디스크로 끝나는 어리석은 일을 만듭니다.

앞서 언급했어야 할 작업을 수행하기 전에 생명을 구할 수 있는 또 다른 일은 다음과 같습니다.단말기을 실행 gpt show -l /dev/disk1하고 gpt show /dev/disk1해당 테이블을 텍스트 파일에 복사한 다음 플래시 드라이브에 저장하거나 화면 사진을 찍습니다(IDK). 파일에 직접 넣고 gpt show -l /dev/disk1 > gpt-tables.txt ; gpt show /dev/disk1 >> gpt-tables.txt파일을 컴퓨터 밖으로 옮깁니다.

디스크 유틸리티가 문제를 일으키면 파티션 테이블을 다시 만들 수 있습니다. 비상용 부츠에는 매뉴얼 페이지가 없습니다.사용 방법은 다음과 같습니다 ( gpt).

한 번에 하나씩 파티션을 추가하고, 추가 시 필요에 따라 크기가 지정되지 않은 경우에만 크기를 변경하고, 파일 시스템을 변경하고, 숨겨진 파티션을 표시하려면 드롭다운을 클릭하세요. 새 볼륨의 이름을 변경하지 마십시오. 볼륨이 생성된 후에 변경하면 모든 작업이 실패할 수 있습니다. 첫 번째 오류 이후에는 모든 문제가 발생하며 재부팅 후 복구되는 경우도 있지만 밀어붙이지 않는 것이 좋습니다. CEO 전환과 동시에 High Sierra/Mojave 주변에서 의 품질 관리가 중단되었습니다. 당신 맥은 전형적인 꽤 멍청한 금발이고 *엘 우즈^로 꽃피우지는 못할 겁니다. 아니… 그녀는 멍청해요.

관련 정보