Jak zamontować partycję HFS w Ubuntu jako odczyt / zapis?

169

Podłączyłem zewnętrzny dysk twardy (sformatowany na moim komputerze Mac do HFS + z kronikowaniem) na moim komputerze Ubuntu 9.04 64bit. Nie jestem w stanie zmusić napędu do zamontowania z możliwością zapisu, jak to zrobić? W tej chwili dostaję tylko dostęp do odczytu, próbowałem

sudo mount -t hfsplus /dev/sdf2 /media/"Portable HD"

ale to wciąż dało mi tylko dostęp do odczytu ... pomysły?

GiH
źródło
Wydaje mi się, że odpowiedzi na to pytanie są o wiele lepsze, łatwiejsze i bezpieczniejsze niż odpowiedzi tutaj podane.
Mike Williamson

Odpowiedzi:

75

Musisz wyłączyć kronikowanie, jeśli chcesz pisać do niego z Ubuntu. Ubuntu obsługuje tylko pisanie na niefunkcjonowanych woluminach HFS +.

Na komputerze Mac:

  • Otwórz Narzędzie dyskowe w obszarze Aplikacje -> Narzędzia
  • Wybierz wolumin, aby wyłączyć kronikowanie.
  • Wybierz Wyłącz kronikowanie z menu Plik. (W późniejszych wersjach systemu Mac OS będziesz musiał przytrzymać przycisk opcji po kliknięciu menu Plik. Lub jeśli lubisz Apple+ J)

Wyłączanie kronikowania z HFS + jest nadal możliwe do OS X Yosemite 10.10

John T.
źródło
4
Należy pamiętać, że „Wyłączanie kronikowania na głównej partycji OS X nie jest zalecane, ponieważ kronikowanie jest ważną funkcją każdego systemu plików, która może zapobiegać uszkodzeniom i utracie danych” ( help.ubuntu.com/community/hfsplus )
Hay
@Hay możesz ponownie włączyć rejestrowanie. Pomaga to systemowi szybciej zregenerować się w takim przypadku (np. Nieprawidłowe zamknięcie). To nie koniec świata.
John T
11
Nie, to nie wszystko. Pomaga również zapobiegać uszkodzeniom systemu plików, które mogą być na tyle poważne, że można je naprawić tylko za pomocą sformatowania.
Wade Williams,
8
w macos 10.6.8, w kroku 3, otwórz menu plików z wciśniętym „
Option
2
@JohnT Czy możesz podać źródło faktu, że „Ubuntu obsługuje tylko pisanie na nierejestrowanych woluminach HFS +”? Robię badania nad HFS + i byłoby to bardzo przydatne. Dziękuję Ci.
kalaracey
187

Najpierw upewnij się, że masz zainstalowane hfsprogs . Przykładowe polecenie instalacji:

sudo apt-get install hfsprogs

Następnie zamontuj lub ponownie podłącz dysk HFS +; polecenia muszą być następujące:

sudo mount -t hfsplus -o force,rw /dev/sdx# /media/mntpoint

lub

sudo mount -t hfsplus -o remount,force,rw /dev/sdx# /mount/point

Wreszcie, jeśli dysk został nieprawidłowo odmontowany lub w inny sposób został częściowo uszkodzony, uruchom fsck.hfsplus (udostępniony tutaj przez Jaysona) jako taki:

sudo fsck.hfsplus /dev/sdx#
Digiground
źródło
7
Dziękujemy bardzo za dostarczenie rozwiązania opartego tylko na systemie Linux! ^ _ ^
FCTW
13
Używam Ubuntu 12.04, polecenie remount powinno wyglądać tak sudo mount -t hfsplus -o remount,force,rw /dev/sdx# /mount/point. Następnie należy użyć roota do odczytu / zapisu danych.
Coc
19
Dlaczego nie jest to oznaczone jako odpowiedź?
Sheljohn,
4
Zarówno @Digiground, jak i @Coc kończą się niepowodzeniem mount: warning: /media/mount/point seems to be mounted read-only.w systemie Ubuntu 13.04 z zainstalowanym programem hfsprogs.
tutaj
1
@tutaj zadałem pytanie, aby rozwiązać tylko ten problem.
kinbiko
27

Możesz włączyć zapisywanie do HFS + w systemie Linux, nawet jeśli nie wyłączyłeś kronikowania. Oprócz programu hfsplus, który już masz, musisz mieć zainstalowany program hfsprogs:

sudo apt-get install hfsprogs

Następnie użyj -o forceopcji:

sudo mount -o force /dev/sdX /your/mount/point

Jeśli dysk został zamontowany automatycznie (tak jak powinien być w systemie stacjonarnym takim jak Ubuntu), możesz włączyć zapis za pomocą

sudo mount -o remount,rw,force /mount/point

lub

sudo mount -o remount,rw,force /dev/sdx

/ mount / point to zwykle / media / Your_drive_label / dev / sdx to twoje urządzenie HFS +

Służy mount -ldo znajdowania, które urządzenie jest już zamontowane w którym punkcie montowania.

mivk
źródło
1
z odpowiedzi Digiground, czy nie brakuje ci części rw polecenia? Udało mi się z jego opcjami.
meduz
@meduz: Nie potrzebowałem „rw” w Ubuntu 10.04. Wydaje mi się, że potrzebuję go teraz w 12.04. Zredagowałem więc odpowiedź, aby ją dodać.
mivk
13

Czy próbowałeś dopasować uprawnienia?

Domyślnie Mac OS X formatuje woluminy w kronikowanych woluminach HFS +. Kronikowanie to funkcja, która poprawia niezawodność danych i niestety sprawia, że ​​dyski HFS są tylko do odczytu w systemie Linux.

Aby wyłączyć kronikowanie, po prostu uruchom system OS X i uruchom Narzędzie dyskowe. Kliknij partycję HFS, przytrzymaj klawisz Opcja i kliknij Plik na pasku menu. W menu pojawi się nowa opcja Wyłącz kronikowanie. Kliknij i zrestartuj system Linux. Powinieneś mieć dostęp do odczytu i zapisu do partycji HFS - jednak uprawnienia do folderu domowego użytkownika komputera Mac uniemożliwiają odczyt lub zapis tych plików. musimy tylko zmienić nasz UID w jednym systemie operacyjnym, aby pasował do UID w drugim. O ile nie masz powodu, aby wybrać inaczej, zmienimy nasz identyfikator Linux UID, aby pasował do naszego OS X, ponieważ jest to trochę łatwiejsze. Domyślnie pierwszy użytkownik w systemie OS X ma identyfikator UID 501, ale możesz to dwukrotnie sprawdzić, przechodząc do Preferencji systemowych w OS X, klikając prawym przyciskiem myszy użytkownika i naciskając Opcje zaawansowane.

Uruchom system Linux (w tym przykładzie używamy Ubuntu) i uruchom terminal. Najpierw dodamy tymczasowego użytkownika, ponieważ nie chcemy edytować użytkownika, do którego jesteśmy obecnie zalogowani. Tak więc uruchom następujące polecenia w terminalu, naciskając Enter po każdym:

sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser

sudo passwd tempuser

Po wyświetleniu monitu wpisz nowe hasło dla użytkownika tymczasowego. Uruchom ponownie i zaloguj się jako tempuser. Następnie otwórz Terminal i wpisz następujące polecenia, po raz kolejny naciskając Enter (i zamieniając swoją nazwę użytkownika na nazwę użytkownika Linux):

sudo usermod --uid 501 yourusername

sudo chown -R 501:yourusername /home/yourusername

Spowoduje to zmianę UID użytkownika Linuksa na 501 i naprawi uprawnienia do folderu domowego, abyś nadal był ich właścicielem. Teraz powinieneś być w stanie czytać i zapisywać zarówno w folderze domowym użytkownika komputera Mac, jak i Linuksa, bez względu na system operacyjny, w którym jesteś zalogowany.

Możesz także naprawić ekran logowania, ponieważ domyślnie Ubuntu nie wyświetla listy użytkowników o UID mniejszym niż 1000. Aby to zrobić, po prostu otwórz Terminal i uruchom gksudo gedit /etc/login.defs i wyszukaj UID_MIN w plik tekstowy. Zmień tę wartość z 1000 na 501, a po ponownym uruchomieniu użytkownik zostanie wyświetlony na ekranie logowania.

http://lifehacker.com/5702815/the-complete-guide-to-sharing-your-data-across-multiple-operating-systems

Steve Alfano
źródło
1
świetne rozwiązanie! właśnie zaoszczędziłeś mi kilka godzin :) jedyną rzeczą do dodania jest usunięcie tempuser -> sudo userdel tempuser
Feida Kila