Există o aplicație sigură și stabilă pentru citirea și scrierea în sistemele de fișiere ext4 pe Mac   OS   X?

Dacă nu, care este cel mai bun mod de a accesa conținutul un sistem de fișiere ext4 pe Mac   OS   X?

Comentarii

  • Ar fi mai mult decât util dacă ați specifica ce versiune de OS X folosiți. Există probleme de compatibilitate cu soluțiile disponibile în funcție de revizuirea sistemului de operare.

Răspuns

Răspunsul depinde de disponibilitatea dvs. de a investi în software comercial:

Dacă nu vă deranjează să cheltuiți niște bani pe un produs comercial , extFS pentru Mac de la Paragon vă va oferi acces de citire și scriere la sistemele de fișiere ext2 / ext3 / ext4. Versiunea curentă acceptă s toate versiunile de OS X / macOS de la 10.10 în sus.

Dacă sunteți în căutarea unei soluții gratuite , puteți configura o mașină virtuală Linux, vă puteți monta volumul (volumele) acolo și le puteți partaja prin Samba sau (S) FTP. Această postare conține câteva detalii despre cum să realizați acest lucru folosind VirtualBox , o aplicație gratuită pentru mașini virtuale . Rețineți că aceasta nu este tocmai o soluție ușoară, chiar dacă utilizați o VirtualBox VM pre-construită vă va scuti de instalarea și configurarea unei distro Linux de la zero. > Comentarii

  • Sigur că există ‘ o soluție gratuită nonvm?
  • osboxes.org oferă versiuni mai noi față de virtualboxes.org.

Răspuns

Pe baza răspunsului lui Ken: am folosit cu succes fuse4x și fuse-ext2 și Recomand fuse-ext2 peste ext4fuse. Fuse-ext2 oferă acces la scriere în timp ce ext4fuse oferă acces doar la citire. Rețineți că, în ciuda numelui său, fuse-ext2 acceptă EXT2 / EXT3 / EXT4.

ext4fuse a fost o problemă pentru mine , deoarece necesită compilare manuală și nu are suport pentru opțiunile fuse4x care mi-ar permite să setez controlul accesului. fuse-ext2 oferă pachete descărcabile, iar versiunea 0.0.7 a funcționat doar fi ne. Am copiat câteva ISO mari, fără nicio problemă.

Comentarii

  • poate fuse-ext2 monta lucrurile ca fiind scrise sau numai citite?

Răspuns

Se poate instala OSXFUSE complet prin intermediul brew manager de pachete de linie de comandă:

brew install homebrew/fuse/ext4fuse 

Rețineți că instalarea spune că anumite comenzi trebuie executate ca „sudo” în plus față de aceasta.


Cu Yosemite aruncă o privire mai bună la aceasta . Și apoi asigurați-vă că directorul este lizibil de către utilizatorul dvs. făcând acest lucru . Pentru ca acesta să funcționeze a trebuit să folosesc grupul de roți astfel:

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

Răspuns

Cu modificările recente la homebrew, acest lucru ar trebui să fie la fel de simplu ca:

brew cask install osxfuse brew install ext4fuse 

Este posibil să trebuiască să reporniți.

ext4fuse este numai în citire, din păcate. Și poate că va trebui să utilizați un steag pentru a face ca acesta să funcționeze ca un utilizator normal.

Ceilalți care văd această întrebare ar putea fi interesați de libguestfs . Nu sunt conștient de un port OS X, dar având în vedere că VirtualBox are un API, nu este exclus.

Mă întreb de ce nimeni nu a scris un strat de compatibilitate pentru a permite sistemul de fișiere kernel Linux cod pentru a rula în spațiul utilizatorilor / siguranță. Sau are cineva?

Răspuns

Răspuns actualizat pentru (High) Sierra

Pentru Sierra și High Sierra ext4fuse pare să funcționeze bine pentru numai acces la citire și, prin urmare, probabil ar putea fi considerată opțiunea preferată. În timp ce alte răspunsuri oferă deja câteva exemple de utilizare, îl voi repeta încă o dată cu câteva detalii importante:

Instalați ext4fuse cu:

 brew install ext4fuse  

Puteți monta ca utilizator normal, dar în acest caz veți putea doar accesați fișiere lizibile în întreaga lume, de aceea pentru acces complet trebuie să utilizați sudo, de exemplu:

 sudo ext4fuse -o allow_other /dev/disk2s1  

Iată un script bash care automatizează parțial procesul.Când este lansat, acesta va crea automat punctul de montare după ce vi se va solicita să introduceți unul dintre identificatorii de dispozitiv afișați, cum ar fi 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}  

Pentru demontare puteți utiliza, de ex., diskutil umount /dev/disk2s1 – dacă primiți un mesaj care indică demontarea eșuat, atunci puteți forța demontarea cu diskutil umount force /dev/disk2s1, deși ar fi mai curat să închideți aplicațiile care utilizează fișierele de pe disc și să încercați din nou demontarea fără force.

Dacă se întâmplă să aveți fișiere deținute de _lpoperator (se pare că sunt create când utilizați rsync cu opțiunea de conservare a grupului), atunci următoarea comandă va permite accesarea acelor fișiere:

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

Răspuns original pentru Yosemite și mai vechi * ( depreciat)

Sunt necesare pachete T * wo pentru a permite suportul EXT2 / 3/4 pe OSX: OSXFUSE și FUSE-EXT2 .

homebrew formulele pentru OSXFUSE și FUSE-EXT2 nu au funcționat pentru mine, fie pe mavericks, fie pe yosemite.

Ceea ce a funcționat a fost următorul:

  1. Descărcarea și instalarea manuală a OSXFUSE DMG din http://osxfuse.github.io/ . IMPORTANT : Odată ce ați lansat programul de instalare PKG, asigurați-vă că ați selectat MacFUSE Compatibility Layer în vrăjitor (nu este activat în mod implicit) – fără ea am primit o eroare în timp ce încercam să montez.
  2. Descărcați manual FUSE-EXT2 din http://sourceforge.net/projects/fuse-ext2/ sau pentru Sierra / El Capitan de la https://github.com/gpz500/fuse-ext2/releases și rulați Programul de instalare PKG.

Odată ce ați instalat atât OSXFUSE, cât și FUSE-EXT2, puteți monta partițiile ext2 / ext3 / ext4 așa cum se menționează în alte răspunsuri:

  1. Găsiți numele dispozitivului pentru partiția EXT pe care doriți să o montați (de exemplu, disk0s2 în exemplul de mai jos, (UPDATE) în versiunile ulterioare ale MacOS, partițiile ext3 / ext4 ar putea fi etichetate Microsoft Basic Data și nu Linux ):

     1: Linux_Swap 8.2 GB disk0s1 2: Linux 119.9 GB disk0s2  
  2. Montați partiția pe un punct de montare existent:

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

Montare ca un utilizator obișnuit nu a funcționat pentru mine. Probabil că acest lucru poate fi rezolvat jucând permisiuni, dar nu l-am analizat.

Notă: Bănuiala mea este că formulele homebrew nu au funcționat deoarece homebrew instalează osxfuse fără MacFUSE Compatibility Layer .

Există două pachete osxfuse în homebrew:

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

Ambele versiuni nu montează partițiile EXT. Cel mai probabil, versiunea DMG (Caskroom/cask/osxfuse) nu reușește deoarece homebrew instalează pachetul cu setările implicite, ceea ce înseamnă că MacFUSE Compatibility Layer nu este inclus. Versiunea principală osxfuse are nevoie probabil de niște parametri speciali de instalare pentru a permite compatibilitatea MacFUSE, așa că până când acest lucru nu va fi remediat în homebrew, ar trebui utilizată metoda manuală DMG.

Această metodă a funcționat pe mavericks, yosemite, el capitan și Sierra.

Script de montare EXT2 / 3/4 pentru versiuni OSX mai vechi (depreciat)

Pentru a salva unele tastări suplimentare, folosesc un mic script care ia numele partiției, cum ar fi disk0s2 și îl montează sub /Volumes/disk0s2, creând folderul dacă este necesar:

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

Scriptul este apelat cu numele partiției care căutați prin diskutil list, de ex mount_ext4.sh disk2s3.

Comentarii

  • Am încercat acest lucru, dar, din păcate, am primit eroarea FUSE-EXT2 could not mount /dev/disk2s2 at /Volumes/ext4 because the following problem occurred: (dar nu există descriere sau referință a problemei). Am instalat suplimentul Compability Layer. Am ‘ m pe macOS Sierra, așa că am încercat versiunea Github gzp500.

Răspuns

Dacă vă întrebați care este linia de comandă pentru a monta o partiție ext4 folosind siguranța și ext2fuse (de exemplu, atunci când este instalat utilizând MacPorts port install ext2fuse) – atunci mai întâi trebuie să lucrați unde este partiția Linux:

diskutil list 

Aceasta va enumera toate partițiile pentru toate discurile și printre acestea ar trebui să le vedeți pe cele relevante listate în coloana TIP ca Linux Combinați discX și numărul de partiție Y astfel / dev / diskXsY – e.g:

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

S-ar putea plânge că nu se poate scrie în fișierul jurnal, dar ar trebui să monteze totuși partiția în punctul de montare de acasă. Dar dacă doriți să montați partiția într-un director de sistem, atunci trebuie să o rulați ca root, de exemplu:

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

Dacă asta nu funcționează, încercați:

sudo ext2fuse /dev/disk1s2 /sys_mount_point 

Actualizare : Mai recent am găsit că fuse-ext2 are probleme cu anumite funcții ext4 mai noi, deci este mai bine să folosiți ext4fuse (port install ext4fuse sau brew install ext4fuse). Utilizați direct comanda ext4fuse:

ext4fuse /dev/disk1s2 ~/mount_point 

De asemenea, așa cum este menționat de Timotei în comentarii, de obicei trebuie să utilizați doar sudo dacă montați în afara directorului dvs. de acasă sau discul (/ dev / diskX) este accesibil numai prin root:

sudo ext4fuse /dev/disk1s2 /sys_mount_point 

Trebuie remarcat faptul că poate accesa sistemul de fișiere montat numai ca root / sudo. ex.

sudo ls /sys_mount_point 

Și pentru a demonta sistemul de fișiere, folosiți doar umount (cu sudo dacă este utilizată pentru a monta partiția):

umount ~/mount_point 

Comentarii

  • Tu trebuie să accesați unitatea ca root dacă o montați în afara directorului dvs. de acasă. Puteți cd ~, mkdir mnt, ext4fuse /dev/diskXsY mnt, ls -la mnt fără sudo / root.
  • mount: exec /Library/Filesystems/fuse-ext2.fs/Contents/Resources/ mount_fuse-ext2 pentru …: Nu există un astfel de fișier sau director

Răspuns

Doar pentru înregistrare, am testat driverul Paragon ExtFS (versiunea de încercare) pe MacBook Pro pentru a scrie pe partiția ext4 în Linux. Am constatat că driverul era foarte instabil și a creat corupții la sistemul de fișiere care fsck nu a putut repara nici în Linux, nici în Utilitarul de disc.

ideea a fost să am acces la /home partiția mea de pe Mac OS X folosind acest driver Paragon, dar nu sugerez să fac această configurare. Până acum, am /home partiție în Linux formatată la hfsplus fără jurnalizare și apoi îmi pot accesa fișierele din Mac OS X. Desigur, din când în când primesc unele probleme în FS-ul meu, dar nu sunt foarte frecvente. Cu toate acestea, nici nu sugerez această configurare (cel puțin că aveți o copie de rezervă actualizată pentru munca dvs. zilnică).

În cele din urmă, cred că Paragon este mai potrivit, poate fi folosit pentru discuri externe, dar oricum nu este foarte fiabil pentru că este un software care are licență scumpă.

Actualizare: Începând cu mai 2015, mi-am formatat / acasă extensia, și montez sistemul de fișiere folosind fuse-ext2 în combinație cu FUSE pentru OS X. Pot accesa partiția ext4 pentru a citi și scrie. Este o configurare mai solidă decât cea pe care am descris-o mai sus.

Comentarii

  • Pot confirma ultima intrare aici, unde driverul Paragon ExtFS poate provoca probleme grave pe unitățile dvs. Linux. Pentru mine, care este dual-boot OSX și Linux, paragon a creat corupții pe dispozitivul meu. Acest lucru a fost ușor de rezolvat, dar nu este o soluție stabilă …
  • Experiență suplimentară proastă cu driverul Paragon ExtFS. Nucleul consecvent intră în panică, ducând la repornirea sistemului, corupția sistemului de fișiere (din fericire fsck pe cutia Linux a funcționat). Încercat pe două unități externe diferite cu aceleași rezultate.

Răspuns

Puteți porni Linux VM rapid pe OS X folosind Vagrant . Trebuie să instalați furnizorul VM, cum ar fi VirtualBox și Vagrant fie prin fișierul .dmg din site-ul sau folosind butoaie de preparare .

După ce ați instalat comanda vagrant, rulați acest lucru în orice folder selectat:

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

Acest lucru va genera Vagrantfile fișier de configurare și folder.

și veți avea boot Linux box în câteva minute (descărcat din Atlas Hashicorp depozit).

Apoi conectați-vă la caseta prin comandă: vagrant ssh și încercați să vă montați dispozitivul în Linux.

În mod implicit, folderul curent va fi sincronizat cu folderul /vagrant din VM. Pentru opțiuni mai avansate, puteți modifica cu configurația necesară.

Deci, dacă vă montați sistemul de fișiere în folderul /vagrant, acesta va fi automat sincronizat înapoi la MacOS-ul dvs.


Alternativ, trebuie doar să instalați un VirtualBox , să rulați aplicația GUI, să instalați și să porniți o versiune minimă de Linux, de ex. Ubuntu pentru a obține același lucru așa cum s-a explicat mai sus.


Mai sus, soluțiile non-native nu sunt ideale, dar cel puțin macOS ar fi mai stabil decât să instaleze extensii de kernel instabile, care ar putea cauza o mulțime de blocări ale sistemului.

Comentarii

  • A rulat cu vagrant init ubuntu/xenial64; vagrant up --provider virtualbox ca ubuntu/vivid64 nu mai este disponibil.
  • Încercați să utilizați ubuntu/trusty64 în schimb.

Răspuns

Am avut o unitate USB formatată ext4 pe care am putut să o montez după ce am instalat osxfuse . Citirea din acesta funcționează excelent, dar nu sunt sigur dacă scrierea este sigură.

De asemenea, pentru mutarea fișierelor din sistemul de fișiere al OS X ( HFS + ) la ext4, este posibil să doriți mai întâi să să eliminați acele fișiere ascunse .DS_Store sistemul de fișiere OS X se strecoară, deoarece acestea cauzează ocazional inodes .

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

Este mai bine decât să trebuiască să le remediați cu un comanda fsck .

Răspuns

Există, de asemenea, e2fsprogs disponibile în MacPorts. Nu am l-am testat încă eu, dar arată promițător.

Răspunde

Aruncă o privire la – > https://github.com/alperakcan/fuse-ext2

Acesta este ceea ce voi încerca în continuare.

Pentru ext2, există o versiune pentru macports: https://ports.macports.org/port/ext2fuse/summary

Există un modul ext4 pentru osxfuse (pe care îl puteți în stabilește prin macporturi), dar este doar citit!

Multitudinea de versiuni este puțin confuză, dar la un moment dat am reușit să o pun în funcțiune, voi încerca din nou și voi actualiza acest răspuns, dacă o va face. . 🙂

osxfuse este disponibil pe macports și ca pachet independent. Nu știu care dintre ele funcționează cel mai bine încă pe versiunile mai noi de OS X, dar prefer macporturile pentru software-ul meu gratuit pe OS X.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *