Extrai arquivos dos ISOs do FreeBSD - como saber localizações?

1

Como eu posso extrair algumas das pastas de uma instalação do FreeBSD do ISO sem realmente instalar o FreeBSD?

Eu estou tentando construir um número de compiladores cruzados para várias versões principais do FreeBSD e preciso obter o libc e alguns inclui e gostaria de poder extrair /usr/include e /usr/lib ou partes de eles ...

Editar: dada a primeira resposta, sinto que tenho que elaborar um pouco. É trivial montar um arquivo ISO e sei como fazer isso em várias plataformas (por exemplo, na minha caixa Linux: mount -o loop FreeBSD-7.0-RELEASE-amd64-disc1.iso freebsd7/ ). No entanto, quando você montar os ISOs de instalação para o FreeBSD, você notará que eles não contêm uma pasta usr , como pode ser facilmente visto na saída de find -type d -name usr enquanto dentro da pasta na qual o ISO está montado. Evidentemente, os arquivos são armazenados em algum formato e eu preciso ser capaz de analisar qualquer meta-informação existente para encontrar qual arquivo é o arquivo que contém as coisas que eu preciso extrair e extraí-lo.

    
por 0xC0000022L 15.02.2012 / 17:15

2 respostas

1

Se você fizer o download dos arquivos de, por exemplo, ftp://ftp.fr.freebsd.org/pub/FreeBSD/releases /amd64/8.2-RELEASE/base/ (provavelmente você pode encontrá-los no seu ISO), você pode extraí-los com isto:

cat base.?? | tar --unlink -xpzf -

(obtido do install.sh no mesmo diretório)

Além disso, o arquivo base.mtree descreve o conteúdo do arquivo.

Existem outros arquivos também. Por exemplo, manpages , que contém as páginas de manual a serem colocadas em /usr/share/man/ , kernels , que contém os módulos do kernel, e dict , que contêm listas de palavras a serem colocadas em /usr/share/dict/

    
por 17.02.2012 / 14:06
0

Você deve conseguir fazer isso (pelo menos com a FreeBSD-9.0-RELEASE-i386-disc1.iso image) montando a imagem ISO em algum local e executar as operações de arquivo a partir daí. Algo como:

# mkdir /mnt/freebsd
# mount -t auto /path/to/install_image.iso /mnt/freebsd
# cp -r /mnt/freebsd/usr/include /some/other/location
  ...
# umount /mnt/freebsd

Não é necessário instalar nada. Então, depois de ter tudo, simplesmente desmonte o ISO e continue hacking. Esta parece ser a maneira mais simples de pensar.

    
por 15.02.2012 / 17:24