Que tipo de sistema de arquivos você recomenda para a unidade flash USB?


18

Este é um problema que estou tendo ao usar o Ubuntu: tenho dois computadores com o Ubuntu instalado (comp1 e comp2). Crio um documento com o Ubuntu no comp1 e copio o arquivo em uma unidade flash USB formatada em FAT. Através da unidade flash, colo o documento no comp2. O problema é que as permissões de arquivo nunca são preservadas durante a transferência. Estou assumindo porque o FAT não suporta as permissões.

Existe uma solução para isso? Devo continuar usando o sistema de arquivos FAT para unidades flash USB (porque o FAT é melhor para unidades flash) e apenas viver com esse problema de permissões? Ou é recomendável reformatar minha unidade flash com um sistema de arquivos mais "amigável ao Ubuntu" que preservará as permissões?

Respostas:


11

O ext4 é um sistema de arquivos diário, o que significa que, se o dispositivo for desconectado prematuramente, ele terá mais chances de recuperar o sistema de arquivos danificado. A parte do diário da gravação contém informações sobre o que está prestes a ser feito e é limpa após a conclusão da operação. Se for constatado que há um diário incompleto em um dispositivo quando montado, o sistema de arquivos pode ser revertido para o estado anterior, preservando sua integridade.

Embora exista alguma sobrecarga extra em termos de espaço envolvido em ter um sistema de arquivos diário em um pendrive, na verdade é uma boa opção para a maioria das coisas.

Obviamente, se você precisar de um dispositivo que também possa ser conectado a qualquer computador a qualquer momento, o FAT será o caminho a seguir. Se você deseja que um dispositivo precise ser conectado a um computador Windows apenas ocasionalmente, é possível instalar drivers de dispositivo ext2 no Windows que permitirão ler toda e qualquer unidade ext (x). Obviamente, como o Windows não conhece as permissões e a propriedade do Linux, elas também não serão tratadas.


Eu não poderia ter dito melhor. +1
Luis Alvarado

O driver Ext2 para Windows também deve ler os sistemas de arquivos Ext4 - ele simplesmente ignora o diário.
Nathan Osman

8

Você pode tentar formatar sua unidade como UDF (Universal Disk Format). É o formato para uso em CD e DVD. Os sistemas operacionais mais modernos poderão ler e gravar nele.

Agora, olhando meus dados na unidade formatada em UDF, as permissões de arquivo do Linux parecem preservadas. Até agora, funcionou para mim.

Outra coisa boa da unidade formatada em UDF é que ela pode armazenar um único arquivo grande de até 16 Exabyte (corrija-me se estiver errado.), Enquanto o Fat32 pode armazenar apenas um arquivo de tamanho de 4 GB ou menos e o tamanho máximo da partição para FAT32 é de apenas 2 TB.

Funciona bem no Win7 e 8. Em sistemas operacionais Windows mais antigos, como XP e 2000, você pode ler a partir da unidade, mas é necessário instalar algum tipo de driver para gravar nela.

Para Mac, o OS X 10.5 e superior tem compatibilidade total. Aqui está um gráfico de compatibilidade completo. Tabela de compatibilidade UDF

No Ubuntu, siga estas etapas para formatar uma unidade como UDF.

sudo apt-get update
sudo apt-get install udftools

Ok, agora você deseja excluir as partições atuais na unidade de destino. Você pode usar uma ferramenta GUI como o Disk Utility ou fazer o seguinte.

sudo blkid

Encontre sua unidade na saída. (eles se parecem com / dev / sdb ou / dev / sdc ) Agora faça o seguinte, mas substitua o ' x ' em / dev / sdx para apontar para a unidade que você deseja limpar sua partição. Faça isso para as duas linhas de código.

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

Você pode alterar onde está escrito 'DriveLabel' ao seu gosto.

Deve ser isso.

Na verdade, faço isso de maneira um pouco diferente, mas decidi que esse método era mais fácil de seguir. Eu referenciei esse método neste site .

Eu espero que isto ajude alguém lá fora.


não funciona para mim: erro ao montar o drive USB
Louis

1
Obrigado, abordagem muito interessante. Funciona perfeitamente para sistemas operacionais de desktop (testados para Ubuntu 15.10+, Windows 7+), mas não para dispositivos móveis (definitivamente não funciona para Android até 8.x). Espero um impacto muito menor na unidade flash em comparação com o sistema de arquivos de registro no diário. Aqui está uma linha para isso: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 28/09

7

Ao usar um sistema de arquivos que preserva os IDs de usuário em uma unidade USB, você pode enfrentar problemas causados ​​pelo fato de os IDs de usuário serem atribuídos na ordem em que as contas de usuário são criadas, e o sistema de arquivos na verdade armazena IDs numéricos de proprietários de arquivos, e não de nomes de usuários. Então, se, digamos, máquina A tem alicee bobcontas, e máquina B tem bruce, zoee aliceresponde então provável que quando Alice cópias dela arquivos para um ramal (2/3/4) drive USB -formatted, caminha para a máquina B e tenta acessar os arquivos para os quais ela descobrirá que todos os arquivos pertencem brucee são somente leitura alice.

Obviamente, se você tiver apenas um usuário nas duas máquinas, isso não será um problema.

A transferência de arquivos compactados em um tararquivo morto, conforme proposto por @FSMaxB, pode resolver esse problema porque, quando você descompacta um arquivo morto, os arquivos serão criados pertencentes ao seu ID de usuário.


0

Se você usar sua unidade flash apenas com sistemas linux, poderá usar um dos sistemas de arquivos ext, por exemplo, ext4, mas ao usar com outros sistemas, o FAT é o único sistema de arquivos compatível.

Uma maneira de usar o FAT e preservar as permissões (não a propriedade) seria o uso de arquivos tar!


1
descompactar um arquivo tar como rootpreserva a propriedade dos arquivos; portanto, os próprios arquivos armazenam IDs de usuário. No entanto, fazer isso em máquinas diferentes não é realmente recomendado porque os IDs do usuário podem ser diferentes.
Sergey

Obrigado. Acho que vou tentar a solução TAR por enquanto. Pergunta: existe uma maneira de criar o TAR e tê-lo criado na unidade flash? Navego para o diretório em que arquivo está o TAR e quando executo o comando TAR, o arquivo morto é criado nesse diretório. Posso criar o arquivo morto no Flash Drive?
Greg

criar TAR requer BASH, certo? Ou existe uma maneira GUI de fazer isso?
Greg

Se você usar um ubuntu normal, você pode rightclick em arquivos ou diretórios e clique em "compressa" (Não sei se ele é chamado assim, porque eu uso um sistema alemão)
FSMaxB

Eu não tentei o tar do gui, mas usei o tar.bz2 para comprimir o gui e o bash com "tar -xf" para descompactar, o que preservou minhas permissões.
FSMaxB

0

Estou usando o reiserfs há anos em pen drives sem problemas. Bem - só que eles não são legíveis em sistemas Windows que podem não ser ruins, se se perderem.

Se você particionar um stick, para usar peças com o Windows para troca de dados, verifique se a partição do Windows é a primeira; caso contrário, ela não será identificada (pelo menos para o XP, experimentei).

Você pode criar um sistema de arquivos gordo (eles não são muito limitados para os tamanhos atuais de bastões?) E adicionar um arquivo grande, mas vazio, e montar esse arquivo como um dispositivo de loop no Ubuntu. Em seguida, você poderá preservar suas permissões de arquivo e aumentar ou diminuir o espaço reservado sem particionar ou formatar.

Como já mencionado: alcatrão, zíper e assim por diante são outra possibilidade.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.