Che tipo di file system consigliate per l'unità flash USB?


18

Questo è un problema che sto riscontrando quando utilizzo Ubuntu: ho due computer su cui è installato Ubuntu (comp1 e comp2). Creo un documento con Ubuntu su comp1 e quindi copio il file su un'unità flash USB formattata FAT. Tramite l'unità flash ho incollato il documento su comp2. Il problema è che i permessi sui file non vengono mai conservati durante il trasferimento. Sto assumendo perché il FAT non supporta le autorizzazioni.

c'è una soluzione a questo? Devo continuare a utilizzare il file system FAT per le unità flash USB (perché FAT è il migliore per le unità flash) e vivere solo con questo problema di autorizzazioni? Oppure si consiglia di riformattare la mia unità flash con un file system più "Ubuntu Friendly" che conserverà le autorizzazioni?

Risposte:


11

ext4 è un filesystem journaling che significa che se il dispositivo viene scollegato prematuramente ha maggiori possibilità di recuperare il filesystem danneggiato. La parte del diario della scrittura contiene informazioni su ciò che sta per essere fatto e viene cancellata al termine dell'operazione. Se viene rilevato che esiste un journal non completato su un dispositivo quando è montato, il filesystem può essere ripristinato al suo stato precedente preservando così la sua integrità.

Sebbene ci sia un ulteriore sovraccarico in termini di spazio per avere un filesystem journaling su una chiavetta USB, in realtà è una buona scelta per la maggior parte delle cose.

Ovviamente, se hai bisogno di un dispositivo che può anche collegarsi a qualsiasi computer in qualsiasi momento, FAT sarebbe la strada da percorrere. Se si desidera un dispositivo che deve essere collegato a un computer Windows solo occasionalmente, è possibile installare i driver di dispositivo ext2 in Windows che gli consentiranno di leggere qualsiasi unità ext (x). Naturalmente, poiché Windows non è a conoscenza delle autorizzazioni e della proprietà di Linux, anche queste non verranno gestite.


Non avrei potuto dirlo meglio. +1
Luis Alvarado,

Il driver Ext2 per Windows dovrebbe essere in grado di leggere anche i filesystem Ext4: ignorerà semplicemente il journal.
Nathan Osman,

8

Puoi provare a formattare l'unità come UDF (Universal Disk Format). È il formato da utilizzare su CD e DVD. La maggior parte dei sistemi operativi moderni sarà in grado di leggere e scrivere su di esso.

In questo momento, guardando i miei dati sull'unità formattata UDF, le autorizzazioni per i file Linux sembrano essere preservate. Finora ha funzionato per me.

Un altro aspetto positivo dell'unità disco formattata UDF è che può archiviare un singolo file di grandi dimensioni fino a 16 Exabyte (correggimi se sbaglio), mentre Fat32 può memorizzare solo un file di dimensioni pari o inferiori a 4 GB e dimensioni di partizione MAX per FAT32 è solo 2 TB.

Funziona bene su Win7 e 8. Per i vecchi sistemi operativi Windows come XP e 2000, è possibile leggere dall'unità ma è necessario installare una sorta di driver per scrivere su di esso.

Per Mac, OS X 10.5 e versioni successive hanno piena compatibilità. Ecco una tabella di compatibilità completa. Tabella di compatibilità UDF

Su Ubuntu, segui questi passaggi per formattare un'unità come UDF.

sudo apt-get update
sudo apt-get install udftools

Bene, ora vuoi eliminare le partizioni correnti nell'unità di destinazione. È possibile utilizzare uno strumento GUI come Utility Disco o effettuare le seguenti operazioni.

sudo blkid

Trova il tuo disco nell'output. (assomigliano a / dev / sdb o / dev / sdc ) Ora fai quanto segue, ma sostituisci ' x ' in / dev / sdx per puntare all'unità che vuoi cancellare la sua partizione. Fallo per entrambe le righe di codice.

sudo dd if=/dev/zero of=/dev/sdx bs=1M count=1
sudo mkudffs -b 512 --media-type=hd --utf8 --lvid=DriveLabel --vid=DriveLabel --fsid=DriveLabel  /dev/sdx

Puoi modificare la posizione "DriveLabel" a tuo piacimento.

Questo dovrebbe essere.

In realtà, lo faccio in modo leggermente diverso, ma ho deciso che questo metodo era più facile da seguire. Ho fatto riferimento a questo metodo da questo sito .

Spero che questo aiuti qualcuno là fuori.


non funziona per me: errore durante il montaggio dell'unità USB
Louis

1
Grazie, approccio molto interessante. Funziona perfettamente con i sistemi operativi desktop (testato per Ubuntu 15.10+, Windows 7+), ma non per i dispositivi mobili (sicuramente non funziona per Android fino a 8.x). Mi aspetto un impatto di scrittura molto minore sull'unità flash rispetto al file system di journaling. Ecco una riga per questo:CreateUdfFlash(){ sudo wipefs "$1" ; sudo mkudffs --utf8 -b 512 --media-type=hdd --lvid="$2" --vid="$2" --fsid="$2" "$1" ; } ; CreateUdfFlash "/dev/sdX" "Some Disk Label"
Dess

7

Quando si utilizza un filesystem che conserva gli ID utente su un'unità USB, è possibile che si verifichino problemi causati dal fatto che gli ID utente sono assegnati nell'ordine in cui vengono creati gli account utente e che il file system in realtà memorizza gli ID numerici dei proprietari dei file, non i nomi utente. Quindi se, per esempio, la macchina A ha alicee bobconti, e la macchina B ha bruce, zoee aliceconti allora probabile che quando le copie Alice suo file a un ext (2/3/4) formattato per drive USB, passeggiate alla macchina B e tenta di accedere i file che scoprirà che sono tutti di proprietà brucee di sola lettura alice.

Naturalmente, se hai un solo utente su entrambe le macchine, questo non sarà un problema.

Il trasferimento di file compressi in un tararchivio, come proposto da @FSMaxB, può risolvere questo problema perché quando si scompatta un archivio i file verranno creati di proprietà del proprio ID utente.


0

Se si utilizza l'unità flash solo con sistemi Linux, è possibile utilizzare uno dei filesystem ext, ad esempio ext4, ma quando si utilizza con altri sistemi, FAT è l'unico file system compatibile.

Un modo di usare FAT e preservare le autorizzazioni (non la proprietà) sarebbe l'uso degli archivi tar!


1
decomprimere un archivio tar per rootpreservare la proprietà dei file, quindi gli archivi stessi memorizzano gli ID utente. Tuttavia, non è consigliabile farlo su macchine diverse perché gli ID utente possono differire.
Sergey,

Grazie. Penso che proverò la soluzione TAR per ora. Domanda: esiste un modo per creare il TAR e averlo creato sull'unità flash? Navigo nella directory in cui è il file che voglio TAR e quando eseguo il comando TAR l'archivio viene creato in quella directory. Posso invece creare l'archivio da creare sull'unità Flash?
Greg,

la creazione di TAR richiede BASH, giusto? O c'è un modo GUI per farlo?
Greg,

Se usi un Ubuntu normale, puoi fare clic con il pulsante destro del mouse su file o directory e fare clic su "comprimi" (non so se si chiama così, perché uso un sistema tedesco)
FSMaxB,

Non ho provato tar dalla gui ma ho usato tar.bz2 per comprimere dalla gui e bash con "tar -xf" per decomprimere, il che ha preservato i miei permessi.
FSMaxB,

0

Sto usando reiserfs da anni su chiavette USB senza problemi. Bene - solo che non sono leggibili dai sistemi Windows che potrebbero non essere male, se si perdono.

Se partizionate uno stick, per utilizzare parti con Windows per lo scambio di dati, assicuratevi che la partizione windows sia la prima, altrimenti non verrà identificata (almeno per XP ho fatto l'esperienza).

Puoi creare un file system fat (non sono abbastanza limitati per le dimensioni di stick di oggi?) E aggiungere un file grande ma vuoto ad esso, e montare quel file come dispositivo loop in Ubuntu. Quindi sarai in grado di preservare le tue autorizzazioni per i file e di aumentare o diminuire lo spazio riservato senza partizionamento o formattazione.

Come già accennato: Tars, Zip e così via sono un'altra possibilità.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.