Vários instaladores do Windows em um pendrive

12

Recentemente, coloquei minhas mãos em um desses gravadores SanDisk Extreme de 64GB e comecei a mexer nele. Durante esta história, lembre-se de que este é um modelo em que removablebit está definido 0(o que significa que o Windows vê todas as suas partições por padrão - cada uma é mostrada como um único disco no explorer).

Metas:

  1. Para ter muitas distribuições inicializáveis ​​diferentes em um único stick
  2. Entre esses, deve estar o instalador do Windows 7 E o instalador do Windows 8
  3. Somente uma partição deve ser montada automaticamente no Windows (e de preferência em outros SOs) - a primeira (armazenamento de arquivos). Isso evita alterações acidentais de partições ou arquivos inicializáveis. Deve ser do tipo NTFS.
  4. Opcionalmente, eu também gostaria de um linux totalmente persistente e totalmente inicializável diretamente (de preferência o Ubuntu) nesse stick.
  5. Todos esses recursos devem estar disponíveis em um único menu mostrado no momento da inicialização da máquina a partir do pen drive.

Divagações:

Agora, tudo isso pode ser alcançado facilmente, usando uma combinação de SYSLINUX e GRUB (você verá abaixo). No entanto, há um problema: todos os itens inicializáveis ​​baseados em Linux (aqueles que usam o create ramdisk -> load kernel -> have funesquema: como o PartEd Magic, o Ubuntu Installer, etc.) parecem não ter nenhum problema para executar a partir de sua própria pasta em uma única partição inicializável. Eles se dão bem quando simplesmente os colocam em pastas diferentes e apontam entradas de menu do SYSLINUX para eles (seja lá o que for que eles usem depois disso, pode ser apenas outro SYSLINUX :)).

O problema (como sempre: D) está nos instaladores do Windows. Eles (ou devo dizer bootmgr) se recusam a reconhecer caminhos relativos. Se você colocar um instalador do Windows em uma pasta, por exemplo, Win7de modo que ele se parece /Win7/bootmgr, o enervante thingie olhares para \Boot\BCDquando passou o controle (não \Win7\Boot\BCD- a localização é realmente armazenado no). Tendo aprendido que, naturalmente, você não pode colocar mais de um instalador do Windows em uma única partição (uma única estrutura de diretório). Isso viola o OBJETIVO 2 .

Esquema atual:

Precisa de 10 reputação para postar imagens :(. Aqui está o esquema visualizado.

Descrição:

  1. Partição NTFS normal. Faça o que quiser com ele - isso não afetará os links sensíveis de inicialização :)
  2. Partição de inicialização FAT32. É aqui que o controle é transferido do MBR. Este deve ser primário para poder ser transferido o controle do MBR. Ele contém o SYSLINUX principal - aquele que mostra o menu ( META 5 e META 1 ). Todas as partições abaixo são estendidas para elevar no máximo 4 partições primárias por disco
  3. Instalador do Windows 7. Esta partição contém um setor de /bootmgrinicialização que aponta para o GRUB e que indica (não pergunte por que tantos gerenciadores de inicialização - é uma configuração de teste :)). Funciona bem, exceto a preocupação abaixo ( META 2 ).
  4. Instalador do Windows 8. Esta partição contém um setor de inicialização que aponta para o GRUB e que aponta para /bootmgr. Funciona bem, exceto a preocupação abaixo ( META 2 ).
  5. Partição Linux persistente na qual o Ubuntu foi instalado usando métodos normais (do mesmo pen drive). Ele usa o GRUB para gerenciar seu menu de inicialização. Também possui o setor de inicialização, é claro ( GOAL 4 ).
  6. Troca de Linux. Usado pelo Linux na partição anterior normalmente, mas não está sujeito a nenhuma restrição sobre quem pode usá-lo.

Agora tudo parece correto (e funciona) .. exceto o OBJETIVO 3 .

Problemas:

  1. Tentei usar o hiddensinalizador para ocultar essas partições da vista do Windows e funcionou bem, muito bem. Também os escondeu da vista do instalador do Windows. Quando tentei instalar o Windows a partir de uma partição oculta, o instalador basicamente não encontrou de onde foi inicializado: O. Esta é uma questão crítica .
  2. Eu usei 2 partições adicionais para abrigar instaladores do Windows. Este não é realmente um ótimo esquema, pois toda vez que desejo alterar algo e não se encaixa nesses, tenho que re-particionar. Esta é uma questão NÃO CRÍTICA - eu posso viver com isso.

Meus pensamentos:

  1. Existem coisas por aí, como ISOLINUX e GRUB4DOS (elas aparecem quando você pesquisa sobre isso). Pelo que entendi, eles podem me ajudar a montar o .iso inicializável do Windows Installer . Isso é verdade? Algumas páginas contêm um aviso sobre imagens montadas como esta, que só estarão acessíveis no estágio de inicialização do BIOS - quando o instalador do Windows iniciar, não será possível ver a imagem montada. Isso é verdade? Você pode me apontar na direção certa?
  2. Talvez eu poderia usar alguma instalador personalizado para Windows (porque, essencialmente, eu lutar bootmgraqui 100% do tempo) ou chrooto bootmgrde alguma forma para que ele se torna são? Isso pode ser realizado? Eu acho que isso ainda me deixa com um problema de que a partição ainda está oculta e o instalador provavelmente não a verá
  3. Talvez eu possa invadir o caminho bootmgr, embora essa seja uma suposição bastante ousada :)

Se houver algum conselho adicional sobre isso, você é muito bem-vindo para discuti-lo aqui. Eu estou aberto a quaisquer sugestões. Se há algo que precisa ser esclarecido ou informações adicionais precisam ser fornecidas - não hesite em perguntar.

Muito obrigado!

Gear54rus
fonte
Instaladores do WRT Windows: Por que você precisa de vários gerenciadores de inicialização? Deve ser possível modificar suas entradas para poder iniciar os dois instaladores da mesma partição usando a versão mais recente (por exemplo, a do Windows 8)?
Mario
Você pode fornecer o exemplo de como fazer isso? Tanto quanto eu entendi, você está se referindo a uma configuração em que eu uso o bootmgr único, mas vários instaladores? Alguma coisa que eu pudesse ler sobre isso?
precisa saber é o seguinte
Nunca tentei fazer isso sozinho, mas basicamente o gerenciador de inicialização do DVD de instalação não é diferente de uma instalação normal do disco rígido, portanto, você poderá usar ferramentas como o BCDEdit para criar uma configuração de "inicialização dupla".
Mario
Ok, acho que encontrei a solução parcial. Vou postar tudo aqui quando eu testá-lo completamente. Eu ainda fico com outro problema: Como faço para tornar o Windows Installer, consulte o pertition escondido
Gear54rus
Eu editei o arquivo BCD. O que fiz foi descompactar o instalador .iso do Windows 7 na pasta / Win7 em uma partição SYSLINUX. Então eu puxei bootmgre bootdo Win7 para a pasta raiz e o /boot/BCDarquivo editado para refletir aqueles alterados devicee osdevicenós. Depois disso, o instalador inicializa muito bem a partir do SYSLINUX, chain.c32 fs ntldr=/bootmgrmas depois a A required CD/DVD drive device driver is missingmensagem temida é exibida. Reinserir em outra porta USB não ajuda. Quando clico Browse, vejo que o ramdisk foi montado corretamente e possui todas as pastas necessárias. Estou perdido de novo :(
Gear54rus 11/04

Respostas:

6

Depois de uma longa e eventualmente bem-sucedida jornada, consegui alcançar tudo.

Eu criei um tutorial sobre como fazer isso . Confira.

Por solicitação, também estou postando a coisa toda abaixo:

Programas:

Primeiro de tudo: você precisa de um PC com Windows 7/8 e acesso administrativo a ele (o Vista pode funcionar, não tenho certeza). É aqui que o tutorial será realizado.

Para executar tudo o que precisamos deste pacote de software , ele também é espelhado no GitHub (clique em Baixar ZIP ). [0] (a partir de agora, as referências serão marcadas com [] ). Para fazer o download, você pode precisar se registrar lá (não sabe por que).

O pacote de software inclui:

  • YUMI por pendrivelinux.com . [1]
  • altmbr.bin do pacote SYSLINUX , que permite inicializar a partição por número. [2]
  • Múltiplos scripts e um executável (incluindo o programa vmount - versões de 32 e 64 bits por erwan.l e dorme 32/64 bits a partir deste thread para fazer com que tudo funcione em conjunto [3] .

Além disso, você precisa baixar o seguinte:

  • WinSetupFromUSB (mais tarde WSFUSB). Este é crucial para este esquema funcionar. Use a versão .exe se você não tiver o 7zip instalado. Este tutorial foi escrito no momento em que a versão 1.4 foi a mais recente. [4]

Opcionalmente (o software que recomendo, que tornará o processo mais fácil e flexível, mas não é necessário):

  • Gparted live .iso para particionamento e configuração de sinalizadores de partição (os análogos incluem o Parted Magic, que decidiu ser pago recentemente, ou o Partition Wizard, que é menor, mas lembre-se de que não é o Gparted e você precisa ter alguma experiência para operá-lo). [5]
  • O Notepad ++ é um editor de texto superior para Windows com muitos plugins. [6]

E, é claro, alguns instaladores do Windows .isoe algumas distribuições inicializáveis ​​do Linux. Essas podem ser qualquer coisa que o YUMI e o SYSLINUX suportem (você poderá verificar isso posteriormente neste tutorial).

Ao baixar tudo isso, você estará pronto para os próximos passos.

Conceito:

Aqui, o esquema de operação será discutido brevemente.

O esquema discutido aqui é o que eu uso na minha instalação. Certamente não é a única maneira de atingir o mesmo objetivo. Farei o possível para tentar explicá-lo para que você possa personalizar a configuração de acordo com suas necessidades.

Esse processo parece ser melhor descrito na figura. (desculpe pelo Paint, o design gráfico não é realmente o meu lado forte):

Conceito

É isso mesmo. Eu realmente não sei como explicar melhor. Eu estarei monitorando este tópico, fique à vontade para fazer perguntas nas respostas.

Ações:

  1. [Configurando software]

    1. Extraia o pacote de software [0] para alguma pasta ( todo o software necessário está listado acima, procure lá se você ainda não o tiver ).
    2. Extraia o WinSetupFromUSB para a mesma pasta (para que fique ao lado YUMI.exee todas as outras coisas). Clique duas vezes nele e extraia para a mesma pasta.
    3. Agora pegue a pasta com WinSetupFromUSB e arraste-a para o drag_here.cmdarquivo. Assim (a estrutura da pasta também deve ser assim): DND Se você fez tudo certo, será exibida uma janela informando que o processo foi concluído:
      WinSetupFromUSB was set up successfully, you can delete that folder.
      Now it's time to run 'start_admin.cmd'.
      Press any key to continue...
    4. Assim como diz, pressione qualquer tecla para fechar a janela. Não execute start_admin.cmd ainda. Vá para o próximo passo para definir a estrutura da partição.
  2. [Particionando]

    1. Decida sobre a estrutura da partição: a sua deve incluir pelo menos 1 partição de armazenamento e pelo menos 1 partição de inicialização . A partição de inicialização deve ser do tipo FAT32 (o FAT32 possui uma restrição do maior arquivo - 4 GB e um volume maior - 32 GB, que é 32768 MB . Se você planeja usar arquivos ou volumes maiores, não pode usar o NTFS, mas pode tentar o exFAT como experimento - eu não tentei) e armazenamento pode ser qualquer coisa, mas eu recomendo NTFS. A minha tem a seguinte aparência: a partição de Estrutura armazenamento é 32GB NTFS e a partição de inicialização é 15GB FAT32 (não possui uma letra como G: porque já possui um sinalizador oculto definido, você aprenderá mais tarde).Se você estiver usando disco grande, pode ser uma boa ideia colocar a partição de inicialização em primeiro lugar, pois alguns BIOS têm problemas para ler além de certos limites .
    2. A maneira de Gerenciamento de Disco é descrita aqui, mas você pode usar qualquer outro software que desejar para aplicar a estrutura de partição (como o Gparted [5] mencionado anteriormente ou o Bootice, que pode ser iniciado a partir do WinSetupFromUSB ). Abra o Gerenciamento de disco no Windows. Isso pode ser feito através da pesquisa no menu Iniciar (digite Gerenciamento de Disco ) ou no Prompt de Comando do Windows: diskmgmt .
    3. Aplique a estrutura de partição desejada. Clique com o botão direito do mouse em qualquer partição para gerenciá-la. Clique com o botão direito do mouse no espaço não alocado deixado após a exclusão da partição para criar uma nova partição. Sempre escolha atribuir a letra da unidade e você pode formatá-la livremente no mesmo assistente: Criação de partição
    4. Antes de sair do Gerenciamento de disco, observe o número da sua partição de inicialização e o número do seu disco no sistema. É assim que eles se parecem no Gerenciamento de Disco: Índices Aqui, o número do disco é 2 e o número da partição de inicialização é 1 .
    5. Quando você terminar de aplicar o esquema de partição, é hora de tornar essa unidade realmente inicializável .
  3. [Adicionando o ambiente de inicialização base (YUMI)]

    1. Vá para a pasta da etapa 1 . Iniciar YUMI.exe.
    2. Marque a caixa Mostrar todas as unidades e selecione sua partição de inicialização na lista suspensa. Opcionalmente, você também pode formatá- lo.
    3. Agora, é hora de adicionar algumas distribuições baseadas em Linux. Eu escolhi o Assistente de Partição como exemplo (você pode escolher qualquer outra distribuição e adicionar mais de uma; o link para o Assistente de Partição é fornecido na seção SOFTWARE ). Recomenda-se adicionar todas as distribuições baseadas em Linux neste momento, porque será mais difícil fazer isso posteriormente depois que o disco for finalizado .
    4. Selecione Procurar e escolha sua .isoimagem. A tela ficará assim: YUMI
    5. Clique em Criar e siga as instruções na tela. Quando pergunta se você deseja adicionar mais, você pode escolher sim e repetir o procedimento ( não escolha a opção de formatação ao repetir o procedimento, obviamente ) para adicionar outra distribuição.
    6. Neste ponto, o disco é inicializável. Desconecte o disco e reconecte-o novamente (isso é necessário para o Windows detectar a partição como ativa corretamente).
    7. Vá para a pasta da etapa 1 e execute start_admin.cmd como administrador . Isso é crucial para a operação, clique com o botão direito do mouse e selecione Executar como Administrador : Executar como administrador
    8. Ele solicitará o número do disco e o número da partição inicializável (etapa 2.4 ). Abra novamente o Gerenciamento de disco e encontre esses números como você fez na etapa 2.4 . Especifique os respectivos números e pressione Enter .

    [ATENÇÃO] Novamente, não sou responsável pelo que acontece com seus discos (incluindo aqueles não mencionados neste tutorial) se você não especificar os números corretos de disco e partição nesta etapa ou em qualquer outro local.


    1. No final, ele perguntará se você deseja que os executáveis ​​sejam compactados antes de serem colocados na sua unidade USB. Atualmente, o tamanho raramente é um problema, por isso recomendo entrar naqui (efeitos colaterais inesperados podem aparecer mais tarde se você pressionar y, apenas o faça se souber o que está fazendo).
  4. [Adicionando instaladores baseados no Windows (WinSetupFromUSB)]

    1. De volta à mesma pasta, entre na pasta WSFUSB ( não na pasta WinSetupFromUSB ) e execute o WinSetupFromUSB.exe apropriado para a arquitetura do sistema.
    2. Escolha sua partição no menu suspenso mais alto. Certifique-se de fazê-lo com cuidado.
    3. Marque a caixa ao lado do instalador do Windows 7/8 e clique no botão à direita para selecionar o seu instalador do Windows .iso .
    4. Selecione a caixa Opções avançadas . Certifique-se de que não verifique e instale o grub4dos MBR e inicie o Q-Dir antes da instalação .
    5. Verifique suas configurações e verifique se elas parecem quase 100% idênticas (exceto disco e .isocaminho) a este exemplo: WSFUSB
    6. Opcionalmente, você pode selecionar nomes de menus personalizados para a Vista / 7/8 / Server Source, para poder ver nomes personalizados ao selecionar distribuições do Windows no momento da inicialização.
    7. Quando estiver pronto, pressione o botão GO . Se você selecionou a caixa da etapa 4.7 , ele solicitará os nomes. Depois disso, aguarde a conclusão da operação .
    8. Repita as etapas para cada distribuição do Windows que você deseja adicionar.
  5. [ Finalização ]

    1. Neste ponto, temos duas estruturas inicializáveis : uma para Linux (a partir do MBR ) e outra para Windows (a partir do bootmgr na sua partição de inicialização). Precisamos vinculá-los. Abra sua partição inicializável no Windows Explorer .
    2. Abrir arquivo <drive root>\multiboot\syslinux.cfg. Ele contém informações sobre o menu que é exibido ao inicializar a partir da sua unidade. Mais informações sobre isso podem ser encontradas aqui: menu.c32 - syslinux.cfg syntax , chain.c32 chainloader command . Por enquanto, precisamos criar uma entrada de menu que permita inicializar nossos instaladores do Windows. Adicione as seguintes linhas na parte inferior (ou entre outras entradas de menu) para criar uma nova entrada de menu:
      MENU LABEL Windows Installers/Recoveries >>>
      MENU INDENT 1 
      KERNEL chain.c32
      APPEND fs ntldr=/bootmgr
      De preferência, adicione uma nova linha vazia antes e depois desse código . Ajuste a etiqueta de entrada do menu , se desejar. Salve e feche o arquivo.
    3. [OPCIONAL AQUI] Abra o WinSetupFromUSB novamente. Excluiremos a entrada de menu Voltar ao Menu Principal (Grub4dos) do menu de instaladores do Windows. Selecione a ferramenta Bootice .
    4. Vá para BCD Edit . Selecione outro arquivo BCD e localize o <drive root>\boot\bcdarquivo na sua partição de inicialização: Bootice
    5. Pressione o modo Fácil para editar o arquivo BCD (dados de configuração de inicialização): BCD NOTA: Se você tiver apenas um instalador, ele será carregado logo após pressionar a entrada do menu que você adicionou, syslinux.cfg sem mostrar nenhum menu . Além disso, convém pressionar Definir como padrão em qualquer item de menu que você queira tornar o padrão . Clique em Fechar e saia da ferramenta Bootice . Saia do WinSetupFromUSB também.
  6. [Limpeza (OPCIONAL)]

    1. Agora precisamos excluir arquivos obsoletos. Você pode pular esta seção se não se importar com esse tipo de coisa. Abra sua partição inicializável no Windows Explorer. Além disso, abra a primeira partição na sua unidade ( elas podem ser a mesma ).
    2. Os seguintes arquivos e pastas são necessários para que este disco funcione ( se a pasta estiver listada, todo o seu conteúdo precisará ser preservado ):
      \boot
      \efi
      \multiboot
      \WINSETUP
      \bootmgr
      
    3. Os seguintes arquivos e pastas podem ser excluídos com segurança:
      .disk
      \default
      \grldr
      \menu.lst
      \plpbt.bin
      \shifthd.bat
      \usbdrive.tag
      
      Remova-os à vontade . Além disso, o Windows pode criar suas informações estúpidas de volume do sistema - você também pode removê-las se tiver sorte. Além disso, este é o ponto em que você pode renomear sua partição de inicialização de MULTIBOOT para qualquer outro nome (eu prefiro simplesmente Inicializar ). Você pode fazer isso como em qualquer pasta do Windows Explorer.
  7. [Ocultando a partição de inicialização (OPCIONAL)]

    1. Agora você pode ocultar sua partição de inicialização para evitar alterações acidentais de qualquer arquivo nela. Isso significa que ele não estará visível na maioria dos sistemas por padrão ao inserir seu disco, mas você ainda poderá inicializá-lo. Abra o WinSetupFromUSB novamente.
    2. Abra a ferramenta Bootice e selecione a guia Disco Físico, se ainda não estiver selecionada. Escolha seu disco (com cuidado) no menu suspenso.
    3. Clique no botão Gerenciar peças . A lista de partições será exibida.
    4. Encontre sua partição na lista e pressione o botão Ocultar . Uma janela confirmando o sucesso será exibida. A coisa toda ficará assim: Ocultar isto É isso . Sua partição não é mais montada automaticamente (não terá uma letra de unidade) na maioria dos sistemas e os arquivos necessários para inicializar a unidade não serão alterados acidentalmente .

Além disso, eu prefiro manter o programa vmount ( [3] na seção SOFTWARE ) para poder montar rapidamente partições ocultas no Windows, se necessário.

É praticamente isso, se você perceber algum equívoco ou erro, fique à vontade para publicá-lo aqui. Além disso, perguntas e comentários são bem-vindos.

Créditos:

Wonko , erwan.l , ilko , Steve - membros da comunidade reboot.pro que me ajudaram tremendamente neste tópico . Foi aqui que a jornada terminou :)

Bob, que inicialmente deu dicas sobre o driver do ImDisk nesta sala .

Mario que educou sobre os arquivos BCD, seu propósito e meios para editá-los nesta pergunta original . É aqui que a jornada começou.

Ricky, que corrigiu um erro no recuo.

Gear54rus
fonte
Seria ótimo se você também pudesse copiar sua solução aqui.
Cristian Ciupitu
Bem feito. Guia detalhado incrível.
Devian