Qual é a maneira mais rápida de extrair um ISO?

34

Atualmente, estou montando uma ISO em um diretório (somente leitura) (usando o mount -o loopcomando) e depois copiando o conteúdo para outro diretório normal. Isso leva muito tempo, pois o ISO é grande. Essa é a única maneira de fazê-lo ou existe alguma alternativa?

user13107
fonte
Você pode dar uma olhada na minha solução: superuser.com/a/1180728/541106
MewX
Isso não é ruim, pois o ISO é montado na RAM do sistema. A extração com uma ferramenta deve levar os mesmos tempos.
dubis 24/01

Respostas:

59

você pode fazer isso pelo software 7zip:

sudo apt-get install p7zip-full

7z x iso_file.iso

no Fedora:

7za x iso_file.iso

Hojat Taheri
fonte
11
Trabalhou para mim com uma ISO do Windows 8.1, para a qual (no Gnome) nem o Nautilus nem o Archive Manager conseguiram mostrar o conteúdo.
krlmlr
4
Cuidado, "7za x" não funciona, apenas "7z x". Obrigado!
Lzap
O 7za funciona no fedora, o 7z não
Adam Kurkiewicz
Conforme isso , 7znão extrairá todos os arquivos necessários.
Ploni 9/07
7

bsdtar(parte do libarchive portátil ) pode analisar muitos formatos de arquivo . Isso é útil para aqueles cujos dedos estão muito familiarizados com as opções do tar ( extrair, apenas inspecionar o conteúdo). bsdtar xfp foo.isobsdtar tf yoyoma.rpm

Há também um bsdcpio para aqueles que estão familiarizados com cpioo uso.

Muitas distribuições linux agora incluem bsdtar, bsdcpio e libarchive (geralmente como pacotes separados, embora tudo venha do código libarchive).

Juan
fonte
2

Montar a imagem ou usar o 7zip como já respondido são provavelmente as duas únicas soluções. Experimente e verifique se um é mais rápido que o outro.

Se você realmente precisa de algo mais rápido, provavelmente deve procurar uma direção diferente: em vez de alterar o software, tente usar discos diferentes: um para a imagem de origem e outro para o diretório de destino. Ou tente evitar copiar esses arquivos e apenas mantê-los na imagem ISO.

eppesuig
fonte
FYI: usando mount -o loope rsync -a /mnt/iso /root/isocopiando a ~ 100 MB / s de um disco rígido SATA interno para um SSD SATA interno.
Rwenz3l
2

O uniso é um script Python que utiliza o isoinfo para extrair o conteúdo de um fluxo ISO. Requer pythoric . É um pouco hacky, mas faz o trabalho.

Eu sou o autor de uniso e pythoric.

pooryorick
fonte
1

Se você deseja extrair apenas alguns arquivos em vez de todo o conteúdo, tente mctambém conhecido como MidnightCommander no shell. Também é legal investigar .zip/tar.gz/bz2.

ott--
fonte
1

Por que não usar:

isoinfo -R -X

extrair todos os arquivos ou

isoinfo -R -X -find find-options

extrair arquivos controlados pelas opções de localização?

esperto
fonte
2
Observe que ele assume o valor isoinfode schily's cdrtools. Isso não funcionará com o encontrado no Debian (a partir de cdrkitum fork do Debian cdrtools(por razões de licenciamento, AFAICT)).
Stéphane Chazelas
2
Correto, o Debian criou um fork em maio de 2004 e nunca fez nenhum progresso útil desde então. Todos os aprimoramentos no código original desde então foram ignorados e isso foi muito: mais de 60% do código atual no projeto cdrtools é do passado de 2004. Em outras palavras, faltam mais de 50% dos recursos de um cdrtools original recente no fork do Debian.
schily
11
BTW: o fork do Debian foi criado em maio de 2004, o nome cdrkit foi usado depois que eu pedi ao Debian em setembro de 2006 para não usar mais o nome original para um fork com mais de 100 bugs específicos do Debian. Dado que todas as distros que pediram a um advogado especializado enviam as cdrtools originais, não consigo ver uma prova de um problema de licença.
schily
Se tiver que confessar, não posso dizer que entendi o problema da licença.
Stéphane Chazelas
11
Como sigo cuidadosamente todos os requisitos das licenças (verifiquei isso com vários advogados), não consigo ver um problema de licença. Dado o fato de o Debian ter reivindicado um problema de licença muito antes de as licenças serem alteradas, suspeito que haja um "arenque vermelho" aqui. Para continuar com minha linha do tempo acima: O Debian reivindicou um problema de licença devido a uma alteração inexistente no outono de 2005, mas a alteração da licença ocorreu em 15 de maio de 2006 para se defender dos ataques de Eduard Bloch e Jörg Jaspert.
schily
1

Para quem usa o gerenciador de arquivos Thunar no linux e deseja uma solução fácil e rápida:

  1. Abra o thunar -> Editar -> Configurar ações personalizadas ...
  2. Crie um novo item:
    • Nome: Extraia o ISO aqui
    • Descrição: Extrai o arquivo ISO
    • Comando: xfce4-terminal -e "7z x %f"
  3. Guia Abrir Condições de aparência
    • Prefixo: *.iso
    • Marque apenas a Other files caixa de seleção
  4. Salve-o e você estará pronto para extrair usando o botão direito.

Note que este truque usa e depende dos pacotes xfce4-terminal e p7zip . Se você estiver usando um gerenciador de arquivos ou terminal diferente - substitua os comandos de acordo.

user3618431
fonte
1

As imagens do tipo 1 da AppImage são imagens ISO com arquivos compactados zisofs . É por isso que nem todo aplicativo que pode extrair arquivos ISO também pode extrair imagens do tipo 1 da AppImage.

probono
fonte
Ok, mas a pergunta era como extraí-los? + RÁPIDO.
LinuxSecurityFreak
Eu acho que a maneira mais rápida é usar o kernel para montar em loop e depois copiar os arquivos. Eu não fiz medições científicas, no entanto.
probono
0

Tente genisoimage. Tem tudo o que você precisa para lidar com ISOs. Após a instalação, você também poderá usar mcpara visualizar o conteúdo ISO.

oᴉɹǝɥɔ
fonte
Basta ler a página de manual para isso. Não foi possível encontrar nenhuma opção para extrair o conteúdo de uma ISO existente.
Alex Jansen
0

Comparei os utilitários sugeridos mais rapidamente:

FILE=some_file.iso
DIR="./unpacked"

# time 7z x $FILE -o$DIR # see note below
# real    0m0,656s

time xorriso -osirrox on -indev $FILE -extract / $DIR
# real    0m5,528s

mkdir $DIR
time bsdtar xp -C $DIR -f $FILE
# real    0m5,376s

# mkdir $DIR; cd $DIR
# time isoinfo -R -X -i ../$FILE # see note below
# real    0m0,446s

Eles foram testados no arquivo 780M no nvme ssd. Então, eu ficaria com o 7z, devido à conveniência da sinopse e à velocidade rápida.

Edit: Eu estava com pressa sobre 7z. 7z e isoinfo extrai arquivos, mas eles estão corrompidos. É por isso que eles trabalharam tão rápido, eu acho. Eu estava extraindo um arquivo AppImage. Então o bsdtar parece o melhor.

Um tubarão
fonte
Eu os comentei, mas deixei o local para que outros pudessem usar facilmente seus argumentos. Talvez também seja uma boa ideia tentar com outra imagem iso (ou seja, não uma AppImage).
Ashark