Er der en sikker, stabil applikation til læsning fra og skrivning til ext4 filsystemer på Mac OS X?
Hvis ikke, hvad er den bedste måde at få adgang til indholdet af et ext4-filsystem på Mac OS X?
Kommentarer
- Det ville være mere end nyttigt, hvis du angav, hvilken version af OS X du kører. Der er kompatibilitetsproblemer med de tilgængelige løsninger afhængigt af operativsystemrevision.
Svar
Svaret afhænger af din vilje til at investere i kommerciel software:
Hvis du har ikke noget imod at bruge nogle penge på et kommercielt produkt , Paragons extFS til Mac giver dig læse- og skriveadgang til ext2 / ext3 / ext4 filsystemer. Den aktuelle version understøtter s alle versioner af OS X / macOS fra 10.10 og opefter.
Hvis du er på udkig efter en gratis løsning , kan du konfigurere en virtuel Linux-maskine, montere din lydstyrke (r) der og dele den / dem via Samba eller (S) FTP. Dette indlæg har nogle detaljer om, hvordan du opnår dette ved hjælp af VirtualBox , en gratis applikation til virtuel maskine . Bemærk, dette er ikke ligefrem en letvægtsløsning, selvom brug af en forudbygget VirtualBox VM sparer dig for at installere og konfigurere en Linux distro fra bunden.
Kommentarer
- Der er helt sikkert ‘ en gratis nonvm-løsning?
- osboxes.org leverer nyere versioner vs virtualboxes.org.
Svar
Bygger på Kens svar: Jeg brugte fuse4x og fuse-ext2 med succes, og Jeg anbefaler fuse-ext2 over ext4fuse. Fuse-ext2 giver skriveadgang, mens ext4fuse kun giver læseadgang. Bemærk, at fuse-ext2 på trods af sit navn understøtter EXT2 / EXT3 / EXT4.
ext4fuse var et besvær for mig , fordi det kræver manuel kompilering og ikke understøtter fuse4x-muligheder, der giver mig mulighed for at indstille adgangskontrol. fuse-ext2 leverer pakker, der kan downloades, og versionen af 0.0.7 fungerede bare fi ne. Jeg kopierede et par store ISOer uden problemer.
Kommentarer
- kan fuse-ext2 montere tingene som skrivbare eller kun readonly?
Svar
Man kan også installere OSXFUSE fuldstændigt via brygge kommandolinjepakkehåndtering:
brew install homebrew/fuse/ext4fuse
Bemærk, at installationen fortæller, at visse kommandoer skal køres som “sudo” ud over dette.
Med Yosemite skal du kigge på dette . Og sørg derefter for, at biblioteket kan læses af din bruger ved at gøre dette . For at det skulle fungere, måtte jeg bruge hjulgruppen sådan:
sudo dscl . append /Groups/wheel GroupMembership $(whoami)
Svar
Med de seneste ændringer til hjemmebrygget skal dette være så simpelt som:
brew cask install osxfuse brew install ext4fuse
Du bliver muligvis genstartet.
ext4fuse er desværre skrivebeskyttet. Og du skal muligvis bruge et flag for at få det til at fungere som en normal bruger.
Andre, der ser dette spørgsmål, kan være interesseret i libguestfs . Jeg er ikke opmærksom på en OS X-port, men i betragtning af at VirtualBox har en API, er det ikke udelukket.
Jeg spekulerer på, hvorfor ingen har skrevet et kompatibilitetslag for at tillade Linux-kernefilsystem kode, der skal køres i userpace / sikring. Eller har nogen nogen?
Svar
Opdateret svar til (High) Sierra
For Sierra og High Sierra ext4fuse ser ud til at fungere godt for kun læseadgang og derfor det kunne sandsynligvis betragtes som den foretrukne mulighed. Mens andre svar allerede giver nogle brugseksempler, gentager jeg det igen med nogle vigtige detaljer:
Installer ext4fuse med:
brew install ext4fuse
Du kan montere som en normal bruger, men i så fald vil du kun kunne få adgang til verdenslæsbare filer, hvorfor det er nødvendigt for fuld adgang at bruge sudo
, fx:
sudo ext4fuse -o allow_other /dev/disk2s1
Her er et bash-script, der delvis automatiserer processen.Når den startes, opretter den automatisk monteringspunktet, når du “bliver bedt om at indtaste en af de viste enhedsidentifikatorer såsom 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 at afmontere kan du f.eks. bruge diskutil umount /dev/disk2s1
– hvis du får en besked om afmontering mislykkedes, så kan du tvinge afmontering med diskutil umount force /dev/disk2s1
, selvom det ville være renere at lukke de apps, der bruger filerne på disken og prøve at afmontere igen uden force
.
Hvis du tilfældigvis har filer, der ejes af _lpoperator
(tilsyneladende oprettes de, når du bruger rsync med bevar gruppeindstilling), så følgende kommando giver adgang til disse filer:
/usr/sbin/dseditgroup -o edit -a everyone -t group _lpoperator
Originalt svar til Yosemite og ældre * ( forældet)
T * wo-pakker er nødvendige for at muliggøre EXT2 / 3/4-understøttelse på OSX: OSXFUSE og FUSE-EXT2 .
homebrew formler til OSXFUSE og FUSE-EXT2 fungerede ikke for mig på enten mavericks eller yosemite.
Hvad fungerede var følgende:
- Manuelt download og installation af OSXFUSE DMG fra http://osxfuse.github.io/ . VIGTIGT : Når du starter PKG-installationsprogrammet, skal du sørge for at vælge MacFUSE-kompatibilitetslag i guiden (den er ikke aktiveret som standard) – uden den fik jeg en fejl, mens jeg forsøgte at montere.
- Download FUSE-EXT2 manuelt fra http://sourceforge.net/projects/fuse-ext2/ eller til Sierra / El Capitan fra https://github.com/gpz500/fuse-ext2/releases og kør PKG-installationsprogram.
Når du har installeret både OSXFUSE og FUSE-EXT2, kan du montere ext2 / ext3 / ext4-partitionerne som nævnt i andre svar:
-
Find enhedsnavnet til den EXT-partition, du vil montere (f.eks.
disk0s2
i eksemplet nedenfor, (UPDATE) i senere MacOS-versioner ext3 / ext4 partitioner kan være mærket Microsoft grundlæggende data og ikke Linux ):1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2
-
Monter partitionen til en eksisterende monteringspunkt:
sudo mount -t fuse-ext2 /dev/disk0s2 /Volumes/ext4
Montering som en almindelig bruger fungerede ikke for mig. Dette kan sandsynligvis løses ved at fikle med tilladelser, men jeg kiggede ikke på det.
Bemærk: Min mistanke er, at homebrew-formlerne ikke fungerede, fordi homebrew installerer osxfuse
uden MacFUSE-kompatibilitetslaget .
Der er to osxfuse
-pakker i hjemmebrygget:
# brew search osxfuse >>> osxfuse >>> Caskroom/cask/osxfuse
Begge versioner kan ikke montere EXT-partitioner. Mest sandsynligt er DMG-versionen (Caskroom/cask/osxfuse
) mislykkes, fordi homebrew installerer pakken med standardindstillinger, hvilket betyder, at MacFUSE-kompatibilitetslag ikke er inkluderet. Hoved osxfuse
-versionen har sandsynligvis brug for nogle specielle installationsparametre for at aktivere MacFUSE-kompatibilitet, så indtil dette er rettet i hjemmebrygget, skal manuel DMG-metode bruges.
Denne metode fungerede på mavericks, yosemite, el capitan og sierra.
EXT2 / 3/4-monteringsscript til ældre OSX-versioner (udfaset)
For at gemme lidt ekstra skrivning bruger jeg et lille script, der tager partitionsnavnet som disk0s2
og monterer det under /Volumes/disk0s2
, hvilket skaber mappen om nødvendigt:
### mount_ext4.sh sudo mkdir -p "/Volumes/$1" sudo mount -t fuse-ext2 "/dev/$1" "/Volumes/$1" open "/Volumes/$1"
Scriptet kaldes med det partitionsnavn, som du kigger op via diskutil list
, f.eks mount_ext4.sh disk2s3
.
Kommentarer
- Forsøgte dette, men få desværre fejlen
FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred:
(men der er ingen problembeskrivelse eller reference). Jeg har installeret tilføjelsen Compability Layer. Jeg ‘ m på macOS Sierra så prøvede Github gzp500 versionen.
Svar
Hvis du undrer dig over, hvad kommandolinjen er at montere en ext4-partition ved hjælp af sikring og ext2fuse (f.eks. når du installerer ved hjælp af MacPorts port install ext2fuse
) – så skal du først arbejde ud, hvor Linux-partitionen er:
diskutil list
Dette viser alle partitioner til alle diske, og blandt dem skal du se de relevante, der er anført under TYPE-kolonnen som Linux Kombiner diskX og partitionsnummer Y sådan / dev / diskXsY – e.g:
mount -t fuse-ext2 /dev/disk1s2 ~/my_mount_point
Det klager muligvis over ikke at kunne skrive til logfilen, men den skal stadig montere partitionen i dit hjemmemonteringspunkt. Men hvis du vil montere partitionen i et systemkatalog, skal du køre den som rod, f.eks.
sudo mount -t fuse-ext2 /dev/disk1s2 /sys_mount_point
Hvis det ikke virker, prøv:
sudo ext2fuse /dev/disk1s2 /sys_mount_point
Opdater : For nylig har jeg fundet at fuse-ext2 har problemer med visse nyere ext4-funktioner, så i stedet er det bedre at bruge ext4fuse (port install ext4fuse
eller brew install ext4fuse
). Brug kommandoen ext4fuse direkte:
ext4fuse /dev/disk1s2 ~/mount_point
Også som nævnt af Timothy i kommentarerne behøver du normalt kun at bruge sudo
hvis du monterer uden for dit hjemmekatalog eller disken (/ dev / diskX) kun er tilgængelig via root:
sudo ext4fuse /dev/disk1s2 /sys_mount_point
Det skal bemærkes, at du kan kun få adgang til det monterede filsystem som root / sudo. f.eks.
sudo ls /sys_mount_point
Og for at afmontere filsystemet bruger du bare normal umount
kommando (med sudo hvis den bruges til at montere partitionen):
umount ~/mount_point
Kommentarer
- Dig behøver kun at få adgang til drevet som root, hvis du monterer det uden for din hjemmemappe. Du kan
cd ~
,mkdir mnt
,ext4fuse /dev/diskXsY mnt
,ls -la mnt
uden sudo / root. - mount: exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/ mount_fuse-ext2 for …: Ingen sådan fil eller mappe
Svar
Bare for ordens skyld har jeg testet Paragon ExtFS-driver (prøveversion) på min MacBook Pro for at skrive til ext4-partition i Linux. Jeg fandt ud af, at driveren var meget ustabil, og det skabte korruptioner til filsystemet, som fsck
ikke kunne reparere hverken i Linux eller i Diskværktøj.
Min ideen var at have adgang til min /home
partition fra Mac OS X ved hjælp af denne Paragon-driver, men jeg foreslår ikke at gøre denne opsætning. Indtil videre har jeg min /home
partition i Linux formateret til hfsplus
uden journalføring, og så kan jeg få adgang til mine filer fra Mac OS X. Selvfølgelig får jeg fra tid til anden nogle problemer i min FS, men er ikke særlig hyppig. Imidlertid foreslår jeg heller ikke denne opsætning (i det mindste at du har en opdateret sikkerhedskopi til dit daglige arbejde).
Endelig tror jeg, at Paragon er måske bedre egnet til eksterne harddiske, men alligevel er det ikke meget pålideligt for at være software, hvilken licens er dyr.
Opdatering: Fra maj 2015 har jeg formateret mit / hjem til ext4, og jeg monterer filsystemet ved hjælp af fuse-ext2 i kombination med FUSE til OS X. Jeg kan få adgang til ext4-partitionen for at læse og skrive. Det er mere solid opsætning end den, jeg tidligere har beskrevet ovenfor.
Kommentarer
- Jeg kan bekræfte den sidste post her, hvor Paragon ExtFS-driveren kan gøre nogle dårlige problemer på dine linux-drev. For mig, der er dualbooting OSX og Linux, skabte paragon korruptioner på min / enhed. Dette var let at løse, men det er dog ikke en stabil løsning …
- Yderligere dårlig erfaring med Paragon ExtFS-driver. Konsekvente kernepanikker, der fører til genstart af systemet, korruption af filsystemet (heldigvis fungerede fsck på Linux-boksen). Forsøgte på to forskellige eksterne drev med samme resultater.
Svar
Du kan starte Linux VM hurtigt på dit OS X ved hjælp af Vagrant . Du skal installere VM-udbyder såsom VirtualBox og Vagrant enten via .dmg-fil fra websted eller ved hjælp af brygfad .
Når du har vagrant
kommando installeret, skal du køre dette i enhver valgt mappe:
vagrant init ubuntu/trusty64; vagrant up --provider virtualbox
Dette genererer Vagrantfile
konfigurationsfil og .vagrant
-mappe.
og du vil have startet Linux-boksen inden for få minutter (downloadet fra Atlas Hashicorp lager).
Derefter Opret forbindelse til boksen via kommando: vagrant ssh
og prøv at montere din enhed inde i Linux.
Som standard er din nuværende mappe synkroniseres med /vagrant
-mappen i VM. For mere avancerede indstillinger kan du ændre med ønsket konfiguration.
Så hvis du monterer dit filsystem i /vagrant
-mappen, synkroniseres det automatisk tilbage til din macOS.
Alternativt skal du bare installere en VirtualBox , køre GUI-appen, installere og starte en minimal version af Linux f.eks. Ubuntu for at opnå det samme som forklaret ovenfor.
Ovenstående ikke-native løsning er ikke ideel, men i det mindste din macOS ville være mere stabil i stedet for at installere ustabile kerneudvidelser, som kan forårsage mange systemnedbrud.
Kommentarer
- Kørte med
vagrant init ubuntu/xenial64; vagrant up --provider virtualbox
somubuntu/vivid64
er ikke tilgængelig mere. - Prøv at bruge
ubuntu/trusty64
i stedet.
Svar
Jeg havde et ext4-formateret USB-drev, som jeg kunne montere, efter at jeg havde installeret osxfuse . Læsning af det fungerer godt, men jeg er ikke sikker på, om det er sikkert at skrive.
Også til flytning af filer fra OS X “s filsystem ( HFS + ) til ext4, kan du først fjerne de skjulte .DS_Store-filer OS X-filsystemet sniger sig ind, da de lejlighedsvis forårsager dårlige inoder .
find /my/data/to/move -name "*.DS_Store" -type f -delete
Det er bedre end at skulle rette dem efter med en fsck -kommando.
Svar
Der er også e2fsprogs tilgængelige i MacPorts. Jeg har ikke t testede det endnu selv, men ser lovende ud.
Svar
Se på – > https://github.com/alperakcan/fuse-ext2
Dette er hvad jeg vil prøve næste.
Til ext2 er der en macports-version: https://ports.macports.org/port/ext2fuse/summary
Der er et ext4-modul til osxfuse (som du kan i stall via macports), men det er skrivebeskyttet!
Masser af versioner er lidt forvirrende, men på et tidspunkt var det lykkedes mig at få det til at fungere, jeg prøver igen og opdaterer dette svar, hvis det gør . 🙂
osxfuse er tilgængelig på macports og som en enkeltstående pakke. Jeg ved ikke, hvilken der fungerer bedst endnu på nyere OS X-versioner, men jeg foretrækker macports til min gratis software på OS X.