Is er een veilige, stabiele applicatie voor het lezen van en schrijven naar ext4 bestandssystemen op Mac   OS   X?

Zo nee, wat is de beste manier om toegang te krijgen tot de inhoud van een ext4-bestandssysteem op Mac   OS   X?

Opmerkingen

  • Het zou meer dan nuttig zijn als u specificeert welke versie van OS X u gebruikt. Er zijn compatibiliteitsproblemen met de beschikbare oplossingen, afhankelijk van de OS-revisie.

Answer

Het antwoord hangt af van uw bereidheid om in commerciële software te investeren:

Als je vindt het niet erg om wat geld uit te geven aan een commercieel product , Paragons extFS voor Mac geeft je lees- en schrijftoegang tot ext2 / ext3 / ext4 bestandssystemen. De huidige versie wordt ondersteund s alle versies van OS X / macOS vanaf 10.10.

Als u op zoek bent naar een gratis oplossing , je kunt een virtuele Linux-machine opzetten, je volume (s) daar aankoppelen en deze / ze delen via Samba of (S) FTP. Dit bericht bevat enkele details over hoe u dit kunt bereiken met VirtualBox , een gratis virtuele machine-applicatie . Merk op dat dit niet bepaald een lichtgewicht oplossing is, zelfs als het gebruik van een vooraf gebouwde VirtualBox VM u zal besparen bij het installeren en configureren van een Linux-distro vanaf het begin.

Opmerkingen

  • Er is zeker ‘ een gratis non-vm-oplossing?
  • osboxes.org biedt nieuwere versies dan virtualboxes.org.

Antwoord

Voortbouwend op het antwoord van Ken: ik heb fuse4x en fuse-ext2 met succes gebruikt, en Ik raad fuse-ext2 aan boven ext4fuse. Fuse-ext2 biedt schrijftoegang terwijl ext4fuse alleen leestoegang biedt. Merk op dat fuse-ext2 ondanks zijn naam EXT2 / EXT3 / EXT4 ondersteunt.

ext4fuse was een gedoe voor mij , omdat het handmatige compilatie vereist en geen ondersteuning biedt voor fuse4x-opties waarmee ik toegangscontrole kan instellen. fuse-ext2 biedt downloadbare pakketten, en de 0.0.7-versie werkte precies goed. ne. Ik heb probleemloos een paar grote ISOs gekopieerd.

Opmerkingen

  • kan fuse-ext2 dingen aankoppelen als beschrijfbaar of alleen als alleen-lezen?

Antwoord

Men kan OSXFUSE ook volledig installeren via het brouwsel opdrachtregelpakketbeheerder:

brew install homebrew/fuse/ext4fuse 

Merk op dat de installatie vertelt dat bepaalde opdrachten daarnaast als “sudo” moeten worden uitgevoerd.


Met Yosemite kun je beter dit bekijken. En zorg er vervolgens voor dat de directory leesbaar is voor uw gebruiker door dit te doen. Om het te laten werken, moest ik de wielgroep als volgt gebruiken:

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

Antwoord

Met recente wijzigingen in homebrew zou dit zo simpel moeten zijn als:

brew cask install osxfuse brew install ext4fuse 

Mogelijk moet u opnieuw opstarten.

ext4fuse is helaas alleen-lezen. En misschien moet u een vlag gebruiken om het als een normale gebruiker te laten werken.

Anderen die deze vraag bekijken, zijn wellicht geïnteresseerd in libguestfs . Ik ben niet op de hoogte van een OS X-poort, maar aangezien VirtualBox een API heeft, is dit niet uitgesloten.

Ik vraag me af waarom niemand een compatibiliteitslaag heeft geschreven om het Linux-kernelbestandssysteem toe te staan code die moet worden uitgevoerd in gebruikersruimte / fuse. Of heeft iemand?

Antwoord

Bijgewerkt antwoord voor (High) Sierra

Voor Sierra en High Sierra ext4fuse lijkt goed te werken voor alleen leestoegang en daarom het zou waarschijnlijk als de voorkeursoptie kunnen worden beschouwd. Terwijl andere antwoorden al enkele gebruiksvoorbeelden geven, zal ik het nog een keer herhalen met enkele belangrijke details:

Installeer ext4fuse met:

 brew install ext4fuse  

U kunt mounten als een normale gebruiker, maar in dat geval kunt u alleen toegang tot wereldwijd leesbare bestanden, daarom moet u voor volledige toegang sudo gebruiken, bijvoorbeeld:

 sudo ext4fuse -o allow_other /dev/disk2s1  

Hier is een bash-script dat het proces gedeeltelijk automatiseert.Wanneer het wordt gestart, wordt automatisch het koppelpunt gemaakt nadat u “wordt gevraagd om een van de weergegeven apparaat-IDs in te voeren, zoals 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}  

Om te ontkoppelen kun je bijvoorbeeld diskutil umount /dev/disk2s1 gebruiken – als je een bericht krijgt dat het ontkoppelen mislukt, kunt u het ontkoppelen forceren met diskutil umount force /dev/disk2s1, hoewel het schoner zou zijn om de apps te sluiten die de bestanden op de schijf gebruiken en opnieuw te proberen het ontkoppelen zonder force.

Als je bestanden hebt die eigendom zijn van _lpoperator (blijkbaar zijn ze gemaakt als je rsync gebruikt met de optie behouden groep), dan is het volgende commando geeft toegang tot die bestanden:

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

Oorspronkelijk antwoord voor Yosemite en ouder * ( verouderd)

T * wo-pakketten zijn nodig om EXT2 / 3/4-ondersteuning op OSX in te schakelen: OSXFUSE en FUSE-EXT2 .

De homebrew formules voor OSXFUSE en FUSE-EXT2 werkten niet voor mij op een van beide buitenbeentjes of yosemite.

Wat wel werkte, was het volgende:

  1. Handmatig downloaden en installeren van de OSXFUSE DMG van http://osxfuse.github.io/ . BELANGRIJK : Nadat u het PKG-installatieprogramma heeft gestart, moet u ervoor zorgen dat u MacFUSE-compatibiliteitslaag in de wizard hebt geselecteerd (het is standaard niet ingeschakeld) – zonder dit kreeg ik een foutmelding tijdens het koppelen.
  2. Download FUSE-EXT2 handmatig van http://sourceforge.net/projects/fuse-ext2/ of voor Sierra / El Capitan van https://github.com/gpz500/fuse-ext2/releases en voer de PKG-installatieprogramma.

Als je zowel OSXFUSE als FUSE-EXT2 hebt geïnstalleerd, kun je de ext2 / ext3 / ext4-partities mounten zoals vermeld in andere antwoorden:

  1. Zoek de apparaatnaam voor de EXT-partitie die je wilt aankoppelen (bijv. disk0s2 in het onderstaande voorbeeld, (UPDATE) in latere MacOS-versies kunnen ext3 / ext4 partities gelabeld zijn met Microsoft Basic Data en niet Linux ):

     1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2  
  2. Koppel de partitie aan een bestaand koppelpunt:

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

Montage als een gewone gebruiker werkte niet voor mij. Waarschijnlijk kan dit worden opgelost door met permissies te spelen, maar ik heb er “niet naar gekeken.

Opmerking: Mijn vermoeden is dat de homebrew-formules niet werkten omdat homebrew osxfuse zonder de MacFUSE Compatibility Layer .

Er zijn twee osxfuse pakketten in homebrew:

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

Beide versies kunnen geen EXT-partities aankoppelen. Hoogstwaarschijnlijk is de DMG-versie (Caskroom/cask/osxfuse) mislukt omdat homebrew het pakket installeert met de standaardinstellingen, wat betekent dat MacFUSE-compatibiliteitslaag niet is opgenomen. De hoofdversie osxfuse heeft waarschijnlijk een speciale installatieparameter om MacFUSE-compatibiliteit mogelijk te maken, dus totdat dit in homebrew is opgelost, moet de handmatige DMG-methode worden gebruikt.

Deze methode werkte op mavericks, yosemite, el capitan en sierra.

EXT2 / 3/4 mount script voor oudere OSX versies (verouderd)

Om wat extra typewerk te besparen, gebruik ik een klein script dat de partitienaam zoals disk0s2 aanneemt en koppelt onder /Volumes/disk0s2, waardoor de map indien nodig:

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

Het script wordt aangeroepen met de partitienaam die je zoekt op via diskutil list, bijv mount_ext4.sh disk2s3.

Reacties

  • Heb dit geprobeerd, maar krijg helaas de fout FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred: (maar er is geen probleemomschrijving of referentie). Ik heb de Compability Layer-add-on geïnstalleerd. Ik ‘ m op macOS Sierra, dus heb de Github gzp500-versie geprobeerd.

Antwoord

Als je je” afvraagt wat de opdrachtregel is om een ext4-partitie te mounten met fuse en ext2fuse (bijv. wanneer geïnstalleerd met MacPorts port install ext2fuse) – dan moet je eerst werken uit waar de Linux-partitie is:

diskutil list 

Dit zal alle partities voor alle schijven weergeven en onder hen zou je de relevante onder de TYPE-kolom moeten zien als Linux Combineer diskX en partitienummer Y op deze manier / dev / diskXsY – e.g:

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

Het kan klagen over het niet kunnen schrijven naar het logbestand, maar het zou de partitie toch moeten mounten in je home mount point. Maar als je de partitie in een systeemmap wilt mounten, moet je deze als root draaien, bijvoorbeeld:

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

Als dat niet werkt, probeer dan:

sudo ext2fuse /dev/disk1s2 /sys_mount_point 

Update : meer recent heb ik gevonden die fuse-ext2 heeft problemen met bepaalde nieuwere ext4-functies, dus in plaats daarvan is het beter om ext4fuse (port install ext4fuse of brew install ext4fuse). Gebruik het ext4fuse commando direct:

ext4fuse /dev/disk1s2 ~/mount_point 

Zoals ook vermeld door Timothy in de commentaren hoef je meestal alleen sudo als je “aan het mounten bent buiten je homedirectory of de schijf (/ dev / diskX) is alleen toegankelijk via root:

sudo ext4fuse /dev/disk1s2 /sys_mount_point 

Opgemerkt moet worden dat je heeft alleen toegang tot dat aangekoppelde bestandssysteem als root / sudo. bijv.

sudo ls /sys_mount_point 

En om het bestandssysteem te ontkoppelen, gebruik je gewoon normaal umount commando (met sudo indien gebruikt om de partitie te mounten):

umount ~/mount_point 

Reacties

  • Jij u heeft alleen toegang tot de schijf als root nodig als u deze buiten uw homedirectory koppelt. U kunt cd ~, mkdir mnt, ext4fuse /dev/diskXsY mnt, ls -la mnt zonder sudo / root.
  • mount: exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/ mount_fuse-ext2 voor …: bestand of directory bestaat niet

Antwoord

Voor de goede orde, ik heb de Paragon ExtFS-driver (proefversie) op mijn MacBook Pro getest om naar de ext4-partitie in Linux te schrijven. Ik ontdekte dat de driver erg onstabiel was, en het veroorzaakte beschadigingen in het bestandssysteem die fsck niet in staat was om te repareren, noch in Linux, noch in Schijfhulpprogramma.

Mijn idee was om toegang te hebben tot mijn /home partitie van Mac OS X met deze Paragon-driver, maar ik stel niet voor om deze setup uit te voeren. Tot dusver heb ik mijn /home partitie in Linux geformatteerd naar hfsplus zonder journaling, en dan heb ik toegang tot mijn bestanden vanuit Mac OS X. Natuurlijk krijg ik van tijd tot tijd sommige problemen in mijn FS, maar komt niet vaak voor. Ik raad deze setup echter ook niet aan (tenminste dat je een up-to-date back-up hebt voor je dagelijkse werk).

Ten slotte geloof ik dat Paragon is misschien geschikter om te gebruiken voor externe harde schijven, maar het is in elk geval niet erg betrouwbaar omdat het software is waarvan de licentie duur is.

Update: Sinds mei 2015 heb ik mijn / home geformatteerd naar ext4, en ik mount het bestandssysteem met fuse-ext2 in combinatie met FUSE voor OS X. Ik heb toegang tot de ext4-partitie om te lezen en te schrijven. Het is een meer solide setup dan degene die ik eerder hierboven heb beschreven.

Opmerkingen

  • Ik kan de laatste invoer hier bevestigen waar de Paragon ExtFS-driver wat grote problemen kan veroorzaken op uw linux-schijven. Voor mij, die OSX en Linux dualboot, creëerde paragon corrupties op mijn / apparaat. Dit was gemakkelijk op te lossen, maar dat is echter geen stabiele oplossing …
  • Verdere slechte ervaringen met de Paragon ExtFS-driver. Consistente kernelpanics die leiden tot het opnieuw opstarten van het systeem, corruptie van het bestandssysteem (gelukkig werkte fsck op de Linux-box). Geprobeerd op twee verschillende externe schijven met dezelfde resultaten.

Antwoord

Je kunt Linux VM snel op uw OS X met Vagrant . U moet een VM-provider zoals VirtualBox en Vagrant installeren via een .dmg-bestand van de site of gebruik brew cask .

Zodra je vagrant commando hebt geïnstalleerd, voer je dit uit in elke geselecteerde map:

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

Dit genereert Vagrantfile configuratiebestand en .vagrant map.

en je zult” Linux box binnen enkele minuten opgestart hebben (gedownload van Atlas Hashicorp repository).

Vervolgens maak verbinding met de box via het commando: vagrant ssh en proberen je apparaat in Linux te mounten.

Standaard je huidige map wordt gesynchroniseerd met de map /vagrant in VM. Voor meer geavanceerde opties kunt u met de vereiste configuratie.

Dus als je je bestandssysteem koppelt in de /vagrant map, wordt het automatisch terug gesynchroniseerd naar uw macOS.


Als alternatief hoef je alleen maar een VirtualBox te installeren, de GUI-app uit te voeren, een minimale versie van Linux te installeren en op te starten, bijv. Ubuntu om hetzelfde te bereiken als hierboven uitgelegd.


Bovenstaande niet-native oplossing is niet ideaal, maar uw macOS zou stabieler zijn in plaats van onstabiele kernelextensies te installeren, wat veel systeemcrashes kan veroorzaken.

Opmerkingen

  • Liep met vagrant init ubuntu/xenial64; vagrant up --provider virtualbox aangezien ubuntu/vivid64 niet meer beschikbaar is.
  • Gebruik in plaats daarvan ubuntu/trusty64.

Answer

Ik had een ext4 geformatteerde USB-drive die ik kon koppelen nadat ik osxfuse . Het lezen ervan werkt prima, maar ik weet niet zeker of schrijven veilig is.

Ook voor het verplaatsen van bestanden van het OS X-bestandssysteem ( HFS + ) naar ext4, wil je misschien eerst die verborgen .DS_Store-bestanden verwijderen die het OS X-bestandssysteem binnensluipt omdat ze af en toe slechte inodes .

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

Het is beter dan ze achteraf te repareren met een fsck -opdracht.

Answer

Er is ook e2fsprogs beschikbaar in MacPorts. Ik heb “t heb het zelf al getest, maar ziet er veelbelovend uit.

Antwoord

Kijk eens naar – > https://github.com/alperakcan/fuse-ext2

Dit is wat ik hierna ga proberen.

Voor ext2 is er een macports-versie: https://ports.macports.org/port/ext2fuse/summary

Er is een ext4-module voor osxfuse (die u kunt in stall via macports) maar het is alleen-lezen!

De veelheid aan versies is een beetje verwarrend, maar op een gegeven moment was het me gelukt om het aan de praat te krijgen, ik zal het opnieuw proberen en dit antwoord updaten als dat zo is . 🙂

osxfuse is beschikbaar op macports en als een op zichzelf staand pakket. Ik weet nog niet welke het beste werkt op nieuwere OS X-versies, maar ik geef de voorkeur aan macports voor mijn gratis software op OS X.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *