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?


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


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).


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.


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.


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.


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?


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.


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.


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.


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.


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
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.