É possível inicializar de um ISO pela rede e como?

31

Tenho uma máquina com um ISO inicializável armazenada e outra em branco, na qual quero instalar o ISO. Ambos estão na mesma LAN (conectados ao mesmo switch). Como iniciar a máquina em branco a partir da ISO armazenada no meu computador principal?

George Kontridze
fonte
se você tiver as etapas dos tutoriais @George, talvez possa compartilhar aqui os links ... porque eu tenho o caso semelhante para instalar uma ISO do Windows 8 em um computador em branco que não tem DVDRom anexado a ele, apenas uma conexão LAN. : D
gumuruh 9/08/16

Respostas:

11

Eu acho que você quer um meio de inicialização pxe a partir de imagens ISO. Eu procurei um pouco e encontrei este artigo . Acredito que esse método funcione para qualquer imagem ISO inicializável que você possa ter. Este é outro artigo semelhante .

Por fim, parece que este artigo discute como fazer isso em um servidor PXE (Ambiente de pré-inicialização do eXecution) executado no Windows.

James T Snell
fonte
@ tatatoo - de nada, foi meio egoísta - eu já me perguntei sobre isso antes de mim.
James T Snell
@Um dos grandes benefícios de responder a perguntas é o processo de pesquisa. Você costuma aprender coisas, e isso é bom.
KCotreau
Essas técnicas funcionam para qualquer ISO inicializável? Ou seja, um Windows ISO? Ou eles funcionam apenas para distribuições linux?
AaronLS
@AaronLS - Não sei, mas espero que funcione para todos os sistemas operacionais de interface do BIOS. Tenho menos certeza sobre os EFI, mas eu poderia imaginar que os EFI geralmente funcionam ainda melhor para essas coisas. Espero que alguém realmente tente e faça comentários!
James T Snell
4

Sim, é muito possível. O tipo de sistema que você pode inicializar dependerá de como o sistema funciona.

Normalmente, você verá que sistemas muito simples (como DOS ou Win98) e sistemas muito complexos (como as distribuições modernas do Linux) são facilmente inicializáveis ​​pela rede.

A maneira de conseguir isso nos dois tipos de sistemas é muito diferente.

Vamos ver os dois lados com mais detalhes. Suponho que você já tenha uma configuração do servidor de inicialização PXE ; se não, vá em frente e faça, é bem fácil.

Também estou assumindo uma dnsmasqconfiguração em um servidor Linux com o tftproot /var/lib/tftpboot, mas você poderá adaptar as instruções a qualquer outra configuração.

Para sistemas simples

Para sistemas simples, basta carregar a imagem (ISO) na RAM e induzir o sistema a acreditar que é uma unidade real. Isso é feito com uma pequena ajuda do BIOS e um módulo de software chamado memdisk .

O sistema que você deseja carregar pela rede é freedos:

# /var/lib/tftpboot/pxelinux.cfg/default
UI vesamenu.c32

PROMPT 0
TIMEOUT 0

MENU DEFAULT freedos

LABEL freedos
MENU LABEL FreeDOS
KERNEL /syslinux/memdisk
INITRD /freedos.iso iso

É praticamente isso. As primeiras linhas são padrão do menu; os bits importantes são as últimas quatro linhas: carrega o memdisk com o dado ISO.

Para sistemas complexos

Sistemas modernos com coisas sofisticadas, como bom gerenciamento de memória e detecção adequada de hardware, praticamente ignoram tudo o que o BIOS tem a dizer.

Isso torna a memdiskabordagem usada acima praticamente inútil, porque se você carregou o ISO dessa maneira, uma vez que o kernel foi lido do ISO e carregado na memória (isso é feito pelo gerenciador de inicialização no ISO; os gerenciadores de inicialização prestam atenção ao BIOS) , os dados ISO desapareceriam.

O que fazes, então? Bem, na verdade, você não carrega o ISO da rede, mas diz ao sistema que ele pode acessar os arquivos necessários a partir daí.

Para sistemas Linux, extraia o conteúdo ISO em algum lugar do tftproot e carregue o kernel e o initrd diretamente, deixando a eles a tarefa de encontrar o sistema de arquivos raiz e montá-lo.

Aqui está um exemplo usando o incrível CD do System Rescue . Na verdade, eu extraído todo o ISO para a raiz do servidor TFTP, porque se encaixar bem com a minha estrutura de diretórios, de modo que os grãos estão em /syslinux.

# /var/lib/tftpboot/pxelinux.cfg/default
UI vesamenu.c32

PROMPT 0
TIMEOUT 0

MENU DEFAULT sysrescd64

LABEL sysrescd64
MENU LABEL 1) SysResCD 4.2.0 (x64)
KERNEL /syslinux/rescue64
APPEND setkmap=us nomodeset netboot=nbd://pxe:sysrcd.dat
INITRD /syslinux/initram.igz

A parte mais importante aqui é a APPENDlinha. Veja netboot=o final? É assim que o sistema operacional sabe onde está o sistema de arquivos raiz. A sintaxe é <protocol>://<server>:<path>.

Eu havia definido convenientemente um nome DNS pxepara o meu servidor. Se você não possui, você usaria um endereço IP para o servidor.

Além disso, o sysresccd é um dos mais fáceis porque usa uma imagem squashfs para seu sistema de arquivos raiz, que pode ser facilmente baixado e carregado na RAM com qualquer método. Aqui eu uso o nbd; você também pode usar tftp, nfs e http .

Para outras distros, como o Ubuntu, acho que você só pode usar nfs.

Para sistemas Windows, é um pouco mais complexo de fazer . O esboço é:

  • Ter uma instalação do Windows 7 em uma pasta compartilhada no servidor
  • Tenha um ambiente Windows PE completo no servidor na raiz do TFTP
  • Faça com que a máquina cliente carregue o WinPE pela rede e pressione F12para obter um prompt de comando
  • Mapear a pasta compartilhada com a instalação do Windows 7 para uma letra de unidade
  • Iniciar instalação a partir da pasta mapeada

Eu nunca tentei isso, e parece que não funciona para algumas pessoas. Para versões do NT anteriores ao Vista, acho que isso nem é possível. No Windows pré-NT (95, 98, ME, etc), você pode usar a abordagem do memdisk, mas inicializá-los faz mal à sua saúde :-p

GnP
fonte
3

O Ultimate Deployment Appliance oferece o que você precisa. A página inicial deles descreve sua funcionalidade; é reformatado aqui por conveniência:


O que é o Ultimate Deployment Appliance?

  • Instalações de sistema operacional autônomo (Windows, Linux, ESX, Solaris) na configuração da rede em minutos!
  • Publique suas ferramentas favoritas de recuperação / manutenção do sistema pela rede!
  • Inicialização PXE, Serviços de instalação remota, Kickstart, Jumpstart, Autoyast em uma caixa!

Quando você usaria isso?

  • Quando você está tentando instalar um sistema que não possui uma unidade de CD-ROM, mas possui uma placa de rede (hoje em dia, laptops ultrafinos e outros não possuem uma unidade óptica)
  • Quando você precisar instalar um sistema operacional em diferentes peças de hardware.
  • Quando você precisar instalar sistemas e desejar que as coisas sejam automatizadas e reproduzíveis.
  • Quando você vai à casa de seus amigos para consertar o computador, você quer estar preparado. Em vez de remover todas as coisas indesejadas, você também pode começar do zero. Traga seu próprio sistema (laptop?), Conecte-o ao sistema bagunçado com um cabo cruzado e comece a reinstalar o sistema do zero, totalmente sem supervisão. Vá para a geladeira ...
  • Quando você precisa fazer manutenção no seu sistema sem a necessidade de carregar uma pilha de CDs ao vivo.
  • Quando você quiser fazer isso sem pagar muito dinheiro por produtos comerciais.

Como funciona?

  • Instalação autônoma O dispositivo monta um arquivo iso com uma distribuição do seu sistema operacional favorito e importa os arquivos de inicialização (de rede) necessários. Ele cria um arquivo de configuração padrão para sua instalação automatizada e começa a hospedar os arquivos de distribuição do sistema operacional para a inicialização pela rede.
  • Publicação de ferramentas do sistema Os Live CDs e outras ferramentas são importados inteiramente para o dispositivo Ultimate Deployment e são publicados para inicialização pela rede através do PXE.

O UDA possui um canal no YouTube , onde você pode encontrar um vídeo deles instalando o Windows 7 como um exemplo de configuração no UDA para o Windows completamente instalado.

JavaRocky
fonte