Resposta curta
Pode não haver uma solução universal, por isso você pode precisar recorrer a ferramentas diferentes para computadores diferentes.
Resposta longa
Parece que os alunos têm seus próprios computadores, o que, por sua vez, significa que você provavelmente está lidando com uma dúzia ou mais de modelos diferentes. Se assim for, existem algumas variáveis em jogo, incluindo (mas não limitado a):
- Era do computador - Como regra geral, os computadores novinhos em folha são difíceis de serem trabalhados porque possuem um novo hardware para o qual os drivers do Linux podem ainda não ter sido gravados.
- Tipo de firmware (EFI vs. UEFI vs. BIOS) - Computadores com mais de metade de meados de 2011 usavam o firmware da BIOS, enquanto que, a partir de meados de 2011, os fabricantes mudaram rapidamente para a UEFI. Todos os Macs baseados em Intel usam o EFI, que é semelhante ao UEFI. (UEFI é essencialmente EFI 2.x.) EFI e UEFI inicializam principalmente da mesma forma, mas pode haver algumas diferenças sutis.
- Modo de inicialização - A maioria dos computadores baseados em EFI e UEFI fornece um recurso chamado Compatibility Support Module (CSM), que permite a inicialização de computadores baseados em BIOS. Alguns PCs baseados em UEFI fornecidos com o Windows 7 instalaram o Windows no modo BIOS / CSM / herdado e, portanto, podem ser configurados para inicializar com mais facilidade o Ubuntu no modo BIOS, em vez de no modo UEFI nativo. Também é possível inicializar o Ubuntu dessa maneira mesmo em máquinas mais novas, embora as opções de firmware específicas do sistema precisem ser definidas. Entender e controlar esse detalhe em uma dúzia ou mais de computadores pode ser um desafio.
- Firmware com bugs - Mesmo com o tipo de firmware, muitos computadores são fornecidos com firmware totalmente defeituoso. Isso pode dificultar a inicialização de determinada mídia ou exigir soluções alternativas específicas do sistema.
- Selecionando mídia de inicialização - Muitos computadores precisam pressionar Esc, Enter ou uma tecla de função para abrir um menu do gerenciador de inicialização que permite inicializar a partir de um disco removível, como uma unidade flash USB. A "chave mágica" varia de um computador para outro, no entanto.
- Secure Boot - Este é um recurso UEFI opcional que pode interferir na inicialização do Ubuntu. Em teoria, o Ubuntu funciona com o Secure Boot ativado. A prática geralmente segue a teoria, mas há exceções a essa regra.
-
Suporte de hardware - Mesmo à parte da era do hardware, às vezes é preciso ajustar as opções de inicialização para que as coisas funcionem. Um ano ou dois atrás, houve uma série de problemas com o hardware de vídeo. Eu vejo menos perguntas sobre isso hoje do que naquela época, provavelmente porque o suporte melhorou; mas você ainda pode precisar passar opções específicas do kernel (como
nomodeset
) para alguns computadores.
Muitos de seus problemas provavelmente são causados por problemas de firmware e, em particular, por peculiaridades e bugs específicos do sistema. Além disso, sua solução ideal é inicializada no modo BIOS ou no modo EFI / UEFI e suporta o armazenamento de arquivos no meio de inicialização. Eu não sei de improviso se existem ferramentas que suportam a criação de tais mídias. Se houver, não ficaria surpreso se essas ferramentas falhassem em alguns computadores, então talvez seja necessário preparar a mídia de alguma outra forma para alguns de seus computadores.
Em geral, minha recomendação é abandonar sua abordagem atual e tentar outra: a virtualização. Em particular, o VirtualBox é de código aberto e está disponível para OS X, Windows e Linux, então as chances são de todos os seus alunos pode executá-lo. Você pode instalar o Ubuntu no VirtualBox você mesmo, depois distribuir sua instalação para seus alunos, que devem ser capazes de executá-lo em seus próprios sistemas, não importa qual seja o sistema operacional host. Isso irá ignorar todas as variáveis que acabei de identificar.
A principal desvantagem da virtualização é que ela impõe sobrecarga extra. Em um computador com muita memória RAM (digamos, 4GiB ou acima), isso não deve ser um grande problema; você pode rodar um ambiente leve de desktop e todas as ferramentas que você precisa para desenvolvimento C ++ em 1GiB ou um pouco mais, então em um sistema 4GiB, você pode dar 1GiB para a máquina virtual e ficar bem. (Começar com Lubuntu em vez do Ubuntu "básico" pode ser uma boa abordagem.) Se um aluno tiver apenas 1GiB de RAM, a máquina virtual ficará com falta de memória ou o VirtualBox acabará dependendo da troca, arrastando assim o desempenho. baixa. Portanto, antes de embarcar na solução VirtualBox, você provavelmente deve fazer um levantamento do hardware que seus alunos usarão para garantir que essa abordagem seja viável para o hardware disponível.
Naturalmente, você também pode usar uma abordagem mista - o VirtualBox para alunos com memória RAM suficiente, e lidar com problemas individuais em uma inicialização dupla com base em USB para aqueles que têm mais problemas de recursos.