Backup de arquivos para armazenamento NTFS com acesso rápido a arquivos individuais

1

Eu estou tentando fazer o backup do meu diretório / home do meu laptop Ubuntu para uma unidade de armazenamento externa formatada com o NTFS. Como o NTFS não suporta permissões de diretório, tentei usar o tar para criar o backup:

tar -cvpf backup.tar /home

Após concluir o backup, descobri que o acesso a partes do arquivo (por exemplo, listando o conteúdo de um único diretório no arquivo) terrivelmente lento.

tar -tf backup.tar someuser/Documents

Como o diretório geral / home não é tão pequeno (cerca de 120 GB) Presumo que isso é porque o alcatrão é otimizado para garantir arquivos para uma fita de backup e não para discos reais como nenhum índice é criado para os arquivos contendo [1] . Por favor, note que o espaço não é um problema e, portanto, eu não tenho comprimido o arquivo tar!

Como já existem arquivos na unidade NTFS, eu gostaria de evitar reformatar a unidade e criar uma partição ext4 para o backup.

Como posso armazenar e ler meus backups mais rapidamente?

O Zip e o 7z não parecem preservar as permissões do diretório, portanto, eles parecem não ser adequados para o trabalho. Não posso acreditar que não exista um formato de arquivo que suporte as permissões de estilo UNIX e permita o acesso rápido de arquivos únicos no arquivo ...

[1] ligação

    
por flammi88 07.04.2016 / 16:22

1 resposta

0

Eu tenho algumas idéias ...

Use ZIP

O formato ZIP faz armazenar informações de permissão (pelo menos as implementações do Info-ZIP, usadas pelo Mint / Ubuntu / Debian), mas aparentemente não usuários / grupos (pelo menos a versão no Mint "This é Zip 3.0 (05 de julho de 2008), por Info-ZIP. "). Se os arquivos pertencerem ao seu usuário sem nenhum usuário ou grupo especial, o zip deverá funcionar bem o suficiente.

Testado com um diretório, usando também o Archive Manager 3.10.2.1, e ele preservou as permissões dos arquivos & diretórios OK. O usuário: grupo aparentemente está configurado para você: você.

Veja Wikipedia sobre o formato de arquivo do Zip :

The Info-ZIP implementations of the .ZIP format adds support for Unix filesystem features, such as user and group IDs, file permissions, and support for symbolic links. The Apache Ant implementation is aware of these to the extent that it can create files with predefined Unix permissions. The Info-ZIP implementations also know how to use the error correction capabilities built into the .ZIP compression format. Some programs (such as IZArc) do not, and will fail on a file that has errors.

The Info-ZIP Windows tools also support NTFS filesystem permissions, and will make an attempt to translate from NTFS permissions to Unix permissions or vice versa when extracting files. This can result in potentially unintended combinations, e.g. .exe files being created on NTFS volumes with executable permission denied.

7z parece armazenar o arquivo & permissões de diretórios OK também, e nenhuma informação de usuário / grupo também.

Use um sistema de arquivos em um arquivo

Especialmente porque o espaço não é problema, você pode criar um único arquivo muito grande e tratá-lo como uma partição grande, formatá-lo para ext (ou seu formato linux favorito) para armazenar todos os seus arquivos.

Uma vez montado, o Linux tratará como outra partição e você poderá copiar & ler arquivos para ele preservando todas as permissões / usuários.

Os passos são basicamente

  1. Crie um arquivo grande vazio / zero. head works, ou dd etc. Este exemplo cria um arquivo 5M cheio de zeros:

    head -c 5M /dev/zero > bigfile
    

    (substitua 5M por qualquer tamanho desejado, usando o sufixo multiplicador desejado: "b 512, kB 1000, K 1024, MB 1000 * 1000, M 1024 * 1024, GB    1000 * 1000 * 1000, G 1024 * 1024 * 1024, e assim por diante para T, P, E, Z, Y. ")

  2. Formate o arquivo. Algumas instruções dizem para configurar primeiro um arquivo de loop, com losetup , mas as distribuições modernas podem fazer a parte do loop elas mesmas.

    $ mke2fs -v bigfile
    mke2fs 1.42.9 (4-Feb-2014)
    bigfile is not a block special device.
    Proceed anyway? (y,n) y
    ...
    Writing superblocks and filesystem accounting information: done
    
  3. Monte o sistema de arquivos & use-o

    $ sudo mount -v bigfile mountpoint
    mount: enabling autoclear loopdev flag
    mount: going to use the loop device /dev/loop1
    mount: you didn't specify a filesystem type for /dev/loop1
           I will try type ext2
    /home/user/bigfile on /home/user/mountpoint type ext2 (rw)
    

Eu vi alguns programas para Windows que podem ler partições ext, mas eu não sei ao certo se alguém pode fazer isso de um arquivo como este, então os arquivos podem não estar acessíveis no Windows.

    
por 07.04.2016 / 19:55

Tags