Como executar o iso do PC-BSD a partir do GRUB apenas com o Linux instalado

2

Estou trabalhando no Ubuntu e queria experimentar o BSD. Eu baixei um iso PC-BSD (PCBSD9.2-RELEASE-x64-DVD-USB-latest.iso). Eu queria saber se é possível usar "loopback" para rodar essa imagem mesmo se eu não tiver um kernel BSD instalado. Aqui está o meu 40_custom :

#!/bin/sh

exec tail -n +3 $0

# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "PCBSD" {

      insmod loopback

      echo Loadind...

      set isofile="/PCBSD.iso"

      loopback loop (hd0,2)$isofile
}

Mas isso não funciona.

    
por kirly 16.12.2013 / 22:29

2 respostas

3

Inicialmente, pensei que isso fosse viável. Após reflexão, já não penso assim.

O Grub é assustadoramente capaz e pode mergulhar em praticamente qualquer sistema de arquivos e extrair arquivos. Então o Grub não terá dificuldade em tirar o kernel da imagem ISO.

No entanto, uma vez que o Grub não controla o kernel carregado, o envolvimento do Grub termina , e qualquer código que o Grub tenha ramificado agora é totalmente responsável por fazer o resto do trabalho. Isto significa que o kernel BSD precisaria entender que o rootfs não está instalado em um dispositivo de bloco simples ou em um disco de CD-ROM, mas sim dentro de um arquivo que vive em uma partição de disco formatada pelo ext [234]. Embora isso seja tecnicamente possível, o kernel sendo inicializado precisa ser explicitamente configurado para isso. Eu duvido seriamente que este é o caso do kernel BSD na sua imagem ISO. Mesmo que o Grub deixasse de alguma forma deixar para trás um dispositivo de E / S no nível do BIOS ( altamente duvidoso), o BSD iria querer inicializar seus próprios drivers de dispositivo para substituí-lo, quando as coisas cairiam .

Não, tenho certeza que não funcionará. Sua alternativa é escrever o ISO em um disco ou em uma chave USB, como sugerido pelo @Kiwy, ou para inicializar o kernel do BSD dentro de uma máquina virtual.

ADENDO

Embora eu deva estar trabalhando em outra coisa no momento, ainda me incomodava que houvesse muitas páginas da Web por aí detalhando como inicializar um arquivo , então eu fiz uma pouco mais de escavação.

Sim, você pode inicializar certas distros Linux de um arquivo ISO . Exemplos ilustrando isso são feitos usando o comando Grub linux (nee kernel ), cuja documentação é a seguinte:

Command: linux file …

Load a Linux kernel image from file. The rest of the line is passed verbatim as the kernel command-line. Any initrd must be reloaded after using this command (see initrd).

[Ênfase minha.]

Os exemplos do Grub para inicializar o Ubuntu de um arquivo ISO geralmente aparecem como:

linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject
initrd (loop)/casper/initrd.lz

Então eu comecei a procurar pelos documentos do kernel para o argumento iso-scan e descobri ... Não há nenhum. iso-scan não é um argumento de linha de comando padrão do Linux. Nem é findiso , que aparece em alguns outros exemplos.

Eu acabei me deparando com um relatório de bug do Fedora lamentando a incapacidade de inicializar a partir de um arquivo ISO, cujo Comentários casualmente mencionaram que find-iso e sua laia não são manipulados pelo kernel, mas pelo initramfs. Pesquisando a partir daí, torna-se evidente que a inicialização a partir de um ISO é tratada de uma maneira específica da distribuição (o Ubuntu faz isso de forma diferente do Fedora, que o faz de forma diferente do Grml, etc.).

Então, em geral , minha resposta permanece: O kernel não inicializa de um arquivo ISO sem ajuda. Algumas (muitas?) Distros Linux fizeram este trabalho. Não está claro se a distro BSD que você quer testar testou um trabalho similar. E assim, você terá muito mais facilidade em inicializar em uma máquina virtual ou, como sugeriu Kiwy anteriormente, em um dispositivo USB.

    
por 17.12.2013 / 21:27
0

Sem chance, o BDS é um sistema Unix grátis e usar o kernel do Linux para inicializar no iso definitivamente não funcionará, porque não basta baixar um live bsd daqui:
link

Grave ou coloque em uma chave usb e inicialize a partir do menu da sua bios?

E aqui uma breve explicação de por que o que você está pedindo não pode funcionar: link

Editar 1:
Se você quiser experimentar o freeBSD a partir de um live CD do Grub, então você precisa adicionar a entrada corrct grub que contém pelo menos a linha:

kernel /path/to/iso/kernel

Isso indica o caminho para o kernel na iso.

Mas em My opninion você deve usar o menu da bios para inicializar em um CD ao vivo ou em uma tecla usb ao invés de tentar, mas a partir do grub, porque em cada CD diferente que você quer tentar você terá que alterar seu grub.

    
por 16.12.2013 / 22:59