Er 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 volumene dine der og dele den / dem via Samba eller (S) FTP. Dette innlegget har noen detaljer om hvordan du kan oppnå dette ved hjelp av 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
Bygget videre på Kens svar: Jeg brukte fuse4x og fuse-ext2 med hell, 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 bør 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 du trenger å bruke sudo
for full tilgang, 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 diskutil umount /dev/disk2s1
– hvis du får en melding om demontering mislyktes, så kan du tvinge avmontering 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 .
hjemmebrygget formler for OSXFUSE og FUSE-EXT2 fungerte ikke for meg på enten mavericks eller yosemite.
Det som fungerte var følgende:
- Manuell nedlasting og installering av OSXFUSE DMG fra http://osxfuse.github.io/ . VIKTIG : Når du starter 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.
- 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:
-
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
-
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. Den viktigste 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 skriving bruker 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 der 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 bør fortsatt montere partisjonen i ditt hjemmepunkt. Men hvis du vil montere partisjonen i en systemkatalog, må du kjøre den som root, f.eks.
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 Timoteus 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 vanlig 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 å ha 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 så kan jeg få tilgang til filene mine fra Mac OS X. Selvfølgelig får jeg fra tid til annen 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 lisenser 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). Forsøkt 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 installert vagrant
, kan du kjøre 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 kobler til boksen via kommando: vagrant ssh
og prøv å montere enheten i Linux.
Som standard din nåværende mappe blir 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 den automatisk synkronisert 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
somubuntu/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 + ) for å utvide4, 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 vil jeg prøve neste gang.
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.