Finnes det et trygt, stabilt program for å lese fra og skrive til ext4 filsystemer på Mac   OS   X?

Hvis ikke, hva er den beste måten å få tilgang til innholdet i et ext4-filsystem på Mac   OS   X?

Kommentarer

  • Det ville være mer enn nyttig hvis du spesifiserte hvilken versjon av OS X du kjører. Det er kompatibilitetsproblemer med de tilgjengelige løsningene, avhengig av operativsystemrevisjon.

Svar

Svaret avhenger av at du er villig til å investere i kommersiell programvare:

Hvis du har ikke noe imot å bruke litt penger på et kommersielt produkt , Paragons extFS for Mac gir deg lese- og skrivetilgang til filsystemene ext2 / ext3 / ext4. Den nåværende versjonen støtter s alle versjoner av OS X / macOS fra 10.10 og oppover.

Hvis du er ute etter en gratis løsning , kan du sette opp en virtuell Linux-maskin, montere volumet ditt der og dele det / dem via Samba eller (S) FTP. Dette innlegget har noen detaljer om hvordan du kan oppnå dette ved å bruke VirtualBox , et gratis applikasjon for virtuell maskin . Merk at dette ikke akkurat er en lett løsning, selv om du bruker en forhåndsbygd VirtualBox VM , vil du spare deg for å installere og konfigurere en Linux-distro fra bunnen av.

Kommentarer

  • Sikkert er det ‘ en gratis nonvm-løsning?
  • osboxes.org gir nyere versjoner vs virtualboxes.org.

Svar

Bygger på Kens svar: Jeg brukte fuse4x og fuse-ext2 med suksess, og Jeg anbefaler fuse-ext2 over ext4fuse. Fuse-ext2 gir skrivetilgang mens ext4fuse bare gir lesetilgang. Vær oppmerksom på at fuse-ext2 til tross for navnet støtter EXT2 / EXT3 / EXT4.

ext4fuse var et problem for meg fordi det krever manuell kompilering og ikke har støtte for fuse4x-alternativer som tillater meg å sette tilgangskontroll. fuse-ext2 gir nedlastbare pakker, og 0.0.7-versjonen fungerte bare fi ne. Jeg kopierte noen få store ISO-er uten problemer.

Kommentarer

  • kan fuse-ext2 montere ting som skrivbare eller bare skrivebeskyttet?

Svar

Man kan også installere OSXFUSE fullstendig via brygge kommandolinjepakkebehandling:

brew install homebrew/fuse/ext4fuse 

Merk at installasjonen forteller at visse kommandoer må kjøres som «sudo» i tillegg til dette.


Med Yosemite må du ta en titt på dette . Og sørg for at katalogen er lesbar av brukeren din ved å gjøre dette . For at det skulle fungere måtte jeg bruke hjulgruppen slik:

sudo dscl . append /Groups/wheel GroupMembership $(whoami) 

Svar

Med nylige endringer i hjemmebryggingen, bør dette være så enkelt som:

brew cask install osxfuse brew install ext4fuse 

Du må kanskje starte på nytt.

ext4fuse er dessverre skrivebeskyttet. Og du må kanskje bruke et flagg for å få det til å fungere som en vanlig bruker.

Andre som ser på dette spørsmålet, kan være interessert i libguestfs . Jeg er ikke klar over en OS X-port, men med tanke på at VirtualBox har en API, er det ikke utelukket.

Jeg lurer på hvorfor ingen har skrevet et kompatibilitetslag for å tillate Linux-kjernefilsystem kode som skal kjøres i brukerområdet / sikringen. Eller har noen?

Svar

Oppdatert svar for (High) Sierra

For Sierra og High Sierra ext4fuse ser ut til å fungere bra for bare lesetilgang og derfor det kan trolig betraktes som det foretrukne alternativet. Mens andre svar allerede gir noen brukseksempler, gjentar jeg det igjen med noen viktige detaljer:

Installer ext4fuse med:

 brew install ext4fuse  

Du kan montere som en vanlig bruker, men i så fall vil du bare kunne få tilgang til verdenslesbare filer, det er derfor for full tilgang du trenger å bruke sudo, f.eks:

 sudo ext4fuse -o allow_other /dev/disk2s1  

Her er et bash-skript som delvis automatiserer prosessen.Når den startes, vil den automatisk opprette monteringspunktet etter at du blir bedt om å angi en av de viste enhetsidentifikatorene, for eksempel disk2s1:

 diskutil list read -p "Please type the EXT4 device identifier: " disk_id MOUNT_POINT=~/mnt/$disk_id mkdir -p ${MOUNT_POINT} sudo ext4fuse -o allow_other /dev/$disk_id ${MOUNT_POINT} echo "***TO UNMOUNT USE***: "diskutil umount ${MOUNT_POINT}"" open ${MOUNT_POINT}  

For å demontere kan du bruke f.eks. diskutil umount /dev/disk2s1 – hvis du får en melding om at demontering mislyktes, kan du tvinge demontering med diskutil umount force /dev/disk2s1, selv om det ville være renere å lukke appene som bruker filene på disken og prøve å demontere på nytt uten force.

Hvis du tilfeldigvis har filer som eies av _lpoperator (tilsynelatende blir de opprettet når du bruker rsync med bevar gruppealternativet), så følgende kommando vil gi tilgang til disse filene:

 /usr/sbin/dseditgroup -o edit -a everyone -t group _lpoperator  

Originalt svar for Yosemite og eldre * ( utdatert)

T * wo-pakker er nødvendig for å aktivere EXT2 / 3/4-støtte på OSX: OSXFUSE og FUSE-EXT2 .

homebrew formler for OSXFUSE og FUSE-EXT2 fungerte ikke for meg på enten mavericks eller yosemite.

Det som fungerte var følgende:

  1. Manuell nedlasting og installering av OSXFUSE DMG fra http://osxfuse.github.io/ . VIKTIG : Når du har startet PKG-installasjonsprogrammet, må du sørge for at du valgte MacFUSE Compatibility Layer i veiviseren (den er ikke aktivert som standard) – uten den fikk jeg en feil mens jeg prøvde å montere.
  2. Last ned FUSE-EXT2 manuelt fra http://sourceforge.net/projects/fuse-ext2/ eller for Sierra / El Capitan fra https://github.com/gpz500/fuse-ext2/releases og kjør PKG-installasjonsprogram.

Når du har installert både OSXFUSE og FUSE-EXT2, kan du montere ext2 / ext3 / ext4-partisjonene som nevnt i andre svar:

  1. Finn enhetsnavnet til EXT-partisjonen du vil montere (f.eks. disk0s2 i eksemplet nedenfor, (UPDATE) i senere MacOS-versjoner ext3 / ext4 partisjoner kan være merket Microsoft grunnleggende data og ikke Linux ):

     1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2  
  2. Monter partisjonen til en eksisterende monteringspunkt:

      sudo mount -t fuse-ext2 /dev/disk0s2 /Volumes/ext4  

Montering som en vanlig bruker fungerte ikke for meg. Sannsynligvis kan dette løses ved å fikle med tillatelser, men jeg så ikke på det.

Merk: Min mistanke er at homebrew-formlene ikke fungerte fordi homebrew installerte osxfuse uten MacFUSE Compatibility Layer .

Det er to osxfuse pakker i hjemmebrygget:

 # brew search osxfuse >>> osxfuse >>> Caskroom/cask/osxfuse  

Begge versjonene klarer ikke å montere EXT-partisjoner. Mest sannsynlig er DMG-versjonen (Caskroom/cask/osxfuse) mislykkes fordi homebrew installerer pakken med standardinnstillinger, noe som betyr at MacFUSE Compatibility Layer ikke er inkludert. Hoved osxfuse -versjonen trenger sannsynligvis noen spesielle installasjonsparametere for å aktivere MacFUSE-kompatibilitet, så inntil dette er løst i hjemmebryggingen, bør den manuelle DMG-metoden brukes.

Denne metoden fungerte på mavericks, yosemite, el capitan og sierra.

EXT2 / 3/4 monteringsskript for eldre OSX-versjoner (utfaset)

For å spare litt ekstra skriver jeg et lite skript som tar partisjonsnavnet som disk0s2 og monterer det under /Volumes/disk0s2 mappen om nødvendig:

 ### mount_ext4.sh sudo mkdir -p "/Volumes/$1" sudo mount -t fuse-ext2 "/dev/$1" "/Volumes/$1" open "/Volumes/$1"  

Skriptet kalles med partisjonsnavnet som du ser opp via diskutil list, f.eks mount_ext4.sh disk2s3.

Kommentarer

  • Prøvde dette, men få dessverre feilen FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred: (men det er ingen problembeskrivelse eller referanse). Jeg har installert Addability for Compability Layer. Jeg ‘ m på macOS Sierra så prøvde Github gzp500-versjonen.

Svar

Hvis du lurer på hva kommandolinjen er å montere en ext4-partisjon ved hjelp av sikring og ext2fuse (f.eks. når du installerer med MacPorts port install ext2fuse) – så må du først jobbe ut hvor Linux-partisjonen er:

diskutil list 

Dette vil liste opp alle partisjoner for alle disker, og blant dem bør du se de aktuelle som er oppført under TYPE-kolonnen som Linux Kombiner diskX og partisjonsnummer Y slik / dev / diskXsY – e.g:

mount -t fuse-ext2 /dev/disk1s2 ~/my_mount_point 

Det kan klage på at den ikke kan skrive til loggfilen, men den skal fortsatt montere partisjonen i ditt hjemmepunkt. Men hvis du vil montere partisjonen i en systemkatalog, må du kjøre den som root, for eksempel:

sudo mount -t fuse-ext2 /dev/disk1s2 /sys_mount_point 

Hvis det ikke fungerer, prøv:

sudo ext2fuse /dev/disk1s2 /sys_mount_point 

Oppdater : Mer nylig har jeg funnet at fuse-ext2 har problemer med visse nyere ext4-funksjoner, så i stedet er det bedre å bruke ext4fuse (port install ext4fuse eller brew install ext4fuse). Bruk ext4fuse-kommandoen direkte:

ext4fuse /dev/disk1s2 ~/mount_point 

Også som nevnt av Timothy i kommentarene trenger du vanligvis bare å bruke sudo hvis du monterer utenfor hjemmekatalogen eller disken (/ dev / diskX) bare er tilgjengelig via root:

sudo ext4fuse /dev/disk1s2 /sys_mount_point 

Det bør bemerkes at du har bare tilgang til det monterte filsystemet som root / sudo. f.eks.

sudo ls /sys_mount_point 

Og for å demontere filsystemet bruker du bare normal umount kommando (med sudo hvis den brukes til å montere partisjonen):

umount ~/mount_point 

Kommentarer

  • Du trenger bare å få tilgang til stasjonen som root hvis du monterer den utenfor hjemmekatalogen. Du kan cd ~, mkdir mnt, ext4fuse /dev/diskXsY mnt, ls -la mnt uten sudo / root.
  • mount: exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/ mount_fuse-ext2 for …: Ingen slik fil eller katalog

Svar

Bare for ordens skyld, har jeg testet Paragon ExtFS-driver (prøveversjon) på min MacBook Pro for å skrive til ext4-partisjon i Linux. Jeg fant ut at driveren var veldig ustabil, og det skapte korrupsjon i filsystemet som fsck ikke klarte å reparere verken i Linux eller i Diskverktøy.

Min ideen var å få tilgang til /home -partisjonen fra Mac OS X ved hjelp av denne Paragon-driveren, men jeg foreslår ikke å gjøre dette oppsettet. Så langt har jeg min /home partisjon i Linux formatert til hfsplus uten journalføring, og da får jeg tilgang til filene mine fra Mac OS X. Selvfølgelig får jeg selvfølgelig innimellom noen problemer i FS, men er ikke veldig hyppig. Imidlertid foreslår jeg ikke dette oppsettet heller (i det minste at du har en oppdatert sikkerhetskopi for ditt daglige arbeid).

Til slutt tror jeg at Paragon er mer egnet, kanskje til bruk for eksterne harddisker, men uansett er det ikke veldig pålitelig for å være programvare som har lisenser som er dyre.

Oppdatering: Fra og med mai 2015 har jeg formatert mitt / hjem til ext4, og jeg monterer filsystemet ved hjelp av fuse-ext2 i kombinasjon med FUSE for OS X. Jeg har tilgang til ext4-partisjonen for å lese og skrive. Det er mer solid oppsett enn det jeg tidligere har beskrevet ovenfor.

Kommentarer

  • Jeg kan bekrefte den siste oppføringen her hvor Paragon ExtFS-driveren kan gjøre noen dårlige problemer på linux-stasjonene dine. For meg, som er dualbooting OSX og Linux, skapte paragon korrupsjon på min / enhet. Dette var lett å løse, men det er ikke en stabil løsning …
  • Ytterligere dårlig erfaring med Paragon ExtFS-driver. Konsekvente kjernepanikker som fører til omstart av systemet, korrupsjon av filsystemet (heldigvis fungerte fsck på Linux-boksen). Prøvd på to forskjellige eksterne stasjoner med samme resultater.

Svar

Du kan starte Linux VM raskt på OS X ved hjelp av Vagrant . Du må installere VM-leverandør som VirtualBox og Vagrant enten via .dmg-fil fra nettsted eller bruker bryggefat .

Når du har vagrant kommando installert, kjør dette i hvilken som helst valgt mappe:

vagrant init ubuntu/trusty64; vagrant up --provider virtualbox 

Dette genererer Vagrantfile konfigurasjonsfil og .vagrant -mappe.

og du vil starte Linux-boksen innen få minutter (lastet ned fra Atlas Hashicorp repository).

Deretter koble til boksen via kommando: vagrant ssh og prøv å montere enheten i Linux.

Som standard din nåværende mappe vil bli synkronisert med /vagrant -mappen i VM. For mer avanserte alternativer kan du endre med ønsket konfigurasjon.

Så hvis du monterer filsystemet ditt i /vagrant -mappen, blir det automatisk synkronisert tilbake til MacOS.


Alternativt trenger du bare å installere en VirtualBox , kjøre GUI-appen, installere og starte en minimal versjon av Linux f.eks. Ubuntu for å oppnå det samme som forklart ovenfor.


Ovennevnte løsningen er ikke ideell, men i det minste din macOS ville være mer stabilt i stedet for å installere ustabile kerneutvidelser som kan forårsake mange systemkrasj.

Kommentarer

  • Kjørte med vagrant init ubuntu/xenial64; vagrant up --provider virtualbox som ubuntu/vivid64 er ikke tilgjengelig lenger.
  • Prøv å bruke ubuntu/trusty64 i stedet.

Svar

Jeg hadde en ext4-formatert USB-stasjon som jeg klarte å montere etter at jeg installerte osxfuse . Å lese fra det fungerer bra, men jeg er ikke sikker på om skriving er trygt.

Også for å flytte filer fra OS Xs filsystem ( HFS + ) til ext4, kan det være lurt å fjerne de skjulte .DS_Store-filene OS X-filsystemet smyger seg inn når de noen ganger forårsaker dårlig inoder .

find /my/data/to/move -name "*.DS_Store" -type f -delete 

Det er bedre enn å måtte fikse dem etter med en fsck -kommando.

Svar

Det er også e2fsprogs tilgjengelig i MacPorts. Jeg har ikke t testet det ennå selv, men ser lovende ut.

Svar

Ta en titt på – > https://github.com/alperakcan/fuse-ext2

Dette skal jeg prøve neste.

For ext2 er det en macports-versjon: https://ports.macports.org/port/ext2fuse/summary

Det er en ext4-modul for osxfuse (som du kan i stall via macports), men det er skrivebeskyttet!

Mangfoldet av versjoner er litt forvirrende, men på et tidspunkt hadde jeg klart å få det til å fungere, jeg vil prøve igjen og oppdatere dette svaret hvis det gjør det . 🙂

osxfuse er tilgjengelig på macports og som en frittstående pakke. Jeg vet ikke hvilken som fungerer best ennå på nyere OS X-versjoner, men jeg foretrekker macports for min gratis programvare på OS X.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *