Meu quarto dia com o Haiku: problemas de instalação e inicialização


TL; DR: Após alguns dias de experiências com o Haiku, decidi colocá-lo em um SSD separado. Mas tudo acabou não sendo tão difícil.



Teste de carregamento do Haiku em andamento.


Três dias atrás, eu aprendi sobre o Haiku, um sistema operacional para PC inesperadamente bom. É o quarto dia e eu queria fazer mais "trabalho real" com esse sistema, e a seção na imagem do Anyboot é muito pequena para isso. Então pego um novo SSD de 120GB, estou me preparando para o bom funcionamento do instalador ... E uma chatice me espera!


Geralmente, a instalação e o download recebem mais atenção e amor, pois essas são as primeiras e mais importantes impressões. Espera-se que o protocolo da minha experiência "iniciante" seja útil para a equipe de desenvolvimento do Haiku em seus esforços contínuos para depurar um sistema operacional que "simplesmente funcione". Eu levo todos os erros em mim!
Parece-me que a situação com o download via USB será especialmente importante, pois nem todo usuário está pronto para usar a unidade SATA principal (eu já estou em silêncio sobre o NVME ...) para experimentos com um sistema operacional completamente desconhecido. Parece-me que o download via USB é o cenário mais provável para a maioria dos usuários que decidem experimentar o Haiku em hardware real. Os desenvolvedores devem dar uma olhada séria nisso.


Comentário do desenvolvedor:


Começamos a oferecer suporte à EFI escrevendo rapidamente uma versão beta que carrega em máquinas com suporte à EFI. Os resultados obtidos ainda estão longe do nível de suporte desejado. Não sei se devemos documentar o trabalho atual ou apenas focar em obter o resultado adequado, após o qual tudo será documentado.

Parece significativo, e há esperança de que, no final, tudo seja muito melhor do que agora. Até agora, só posso verificar o que foi feito hoje. Vamos começar ...


A imagem do Anyboot é muito pequena


Apesar de a imagem do Anyboot ser surpreendentemente fácil de gravar em uma unidade flash comum, ela não possui espaço suficiente na partição Haiku para instalar software adicional.



Gravar uma imagem do Anyboot em uma unidade flash USB é, em princípio, bastante simples, mas, como resultado, não há espaço suficiente para o trabalho real.


Solução rápida: aumente o tamanho da partição padrão do Haiku.


Portanto, para um trabalho real com o Haiku, você ainda precisa instalá-lo usando o aplicativo Installer.


O instalador não faz tudo o que você precisa em um só lugar


Lembra do ótimo instalador do Mac OS X?



Instalador do Mac OS X 10.2


Ele:


  • inicializa discos (grava tabela de partição GPT, GUID)
  • cria partições (EFI, primária) usando "bom senso" (para o melhor uso da unidade)
  • marca a partição de inicialização (define o sinalizador inicializável)
  • copia arquivos

Em outras palavras, ele faz "tudo" sem muito barulho para o usuário.


Por outro lado, existe o Installer for Haiku, que simplesmente copia arquivos e fornece ao usuário tudo o mais, muito complicado, que mesmo se você tiver experiência, você não entenderá imediatamente. Especialmente se você precisar de um sistema que inicialize nos dois sistemas com BIOS e EFI.


O que devo fazer?


Não direi com certeza, mas, de qualquer forma, assumo o seguinte:


  1. Abra o DriveSetup
  2. Selecione um dispositivo para instalar
  3. Drive-> Inicializar-> Mapa de Partição GUID ...-> Continuar-> Salvar Alterações-> OK
  4. Clique com o botão direito do mouse em um espaço vazio no dispositivo em que o sistema será instalado
  5. Criar ...-> insiro 256 como o tamanho-> dados do sistema EFI (não tenho certeza) -> gravar alterações
  6. Clique com o botão direito do mouse em "Dados do sistema EFI" no dispositivo em que o sistema será instalado
  7. Inicializar-> Sistema de Arquivos FAT32 ...-> Continuar-> Digite o nome: "EFI", a capacidade do FAT: 32-> Formatar-> Gravar alterações
  8. Repito o clique direito em um lugar vazio no dispositivo desejado
  9. Criar ...-> Digite o nome da seção: Haiku, o tipo de seção: Seja Sistema de Arquivos-> Criar-> Escrever alterações
  10. Clique com o botão direito do mouse em EFI-> Conectar
  11. Eu executo o Instalador-> confuso por technosleng-> Continuar-> Para o disco: Haiku (verifique se essa é a mesma seção que eu criei antes) -> Instalar
  12. No gerenciador de arquivos, copio o diretório EFI do sistema atual para a partição EFI (acredito que isso seja necessário para inicializar a partir da EFI)
  13. [aprox. tradutor: removeu este item da tradução; em suma - o autor não dominou completamente a criação de um sistema híbrido para carregar o EFI e o BIOS]
  14. desligar
  15. Eu conecto o disco recém-criado à porta da qual o sistema inicializará exatamente [estranho, não precisei fazer isso. - aprox. tradutor]
  16. ligar

Parece-me que é claramente visível: precisamos de uma ferramenta que faça tudo com o toque de um botão, com a confirmação oportuna (!) De que você pode limpar o dispositivo.


Uma solução "rápida": crie um instalador automagic que faça tudo.


Bem, mesmo que não seja "rápido", então decente. Essas são as primeiras impressões do novo sistema. Se ele falhar na instalação (e já o fiz várias vezes), muitos simplesmente vão embora em silêncio para sempre.


Explicação técnica do DriveSetup de acordo com a PulkoMandy


O BootManager registra um menu de inicialização completo, incluindo a capacidade de inicializar vários sistemas a partir de um disco, para isso, ele precisa apenas de 2kb no início do disco. Isso é adequado para esquemas de particionamento de disco mais antigos, mas não para a GPT, que usa os mesmos setores para a tabela de partição. Por outro lado, o writembr grava um código muito simplificado no disco, que simplesmente encontra a partição ativa e continua o download dela. Os 400 primeiros bytes no disco são suficientes para esse código, portanto, não se cruzam com a GPT. Possui suporte limitado para unidades marcadas com GPT (mas, em casos simples, tudo será como deveria).

Solução rápida: deixe a GUI para configurar o BootManager colocar tudo o que está instalado usando o writembr no disco se a marcação GPT for detectada. Não é necessário colocar o código de 2kb nos discos GPT. Não é necessário definir o sinalizador inicializável na partição EFI, apenas na partição Haiku.


Primeira tentativa: pânico no kernel


Equipamento


  • Acer TravelMate B117 N16Q9 (vendido com o EndlessOS)
  • lspci
  • lsusb
  • o sistema existente foi iniciado a partir de uma unidade flash Kingston DataTraveler 100 de 16 GB, feita a partir da imagem Anyboot usando Etcher no Linux, inserida na porta USB2.0 (porque não inicializou a partir da porta USB3)
  • Kingston A400 SSD de 120 GB, apenas de fábrica, conectado ao adaptador sata-usb3 ASMedia ASM2115, conectado a uma porta USB3 no TravelMate B117.

Resultados


O instalador inicia a cópia dos arquivos e, em seguida, aparece um erro de E / S, seguido pelo pânico do kernel



pânico do kernel


Segunda tentativa: disco não inicializável


Equipamento


Tudo está como antes, mas o SSD está conectado ao adaptador, que está conectado ao hub USB2.0, conectado à porta USB3 no TravelMate. Eu verifiquei usando a unidade flash de instalação do Windows que esta máquina inicializa do USB3.


Resultados


Sistema não inicializável. O particionamento do disco parece ter voado devido ao BootManager.



BootManager "Escrever menu de inicialização" o que destrói o layout do disco ?!


Terceira tentativa: uau, ele carrega! Mas não através da porta USB3 nesta máquina


Equipamento


Tudo é o mesmo da segunda tentativa, mas desta vez eu não uso o BootManager.
Particionar sem iniciar o BootManager fica assim se marcado no Linux.



A seção "efi" com o sistema de arquivos FAT32 é marcada como inicializável sem iniciar o BootManager. Será executado em uma máquina não-EFI?


Resultados


  • Modo EFI, porta USB2: faça o download diretamente para o Haiku
  • Modo EFI, hub USB2 conectado a uma porta USB3: Mensagem "nenhum caminho de inicialização encontrado, procure todas as partições ..." , seguido por uma tela de inicialização com "Selecionar volume de inicialização (atual: haiku)" . O botão "Continuar inicialização" está cinza, não pressionado. Se você selecionar "Selecionar volume de inicialização" -> Haiku (atual: estado mais recente) -> estado mais recente -> retornar ao menu principal -> continuar inicializando a partir da lista , ele será carregado diretamente no Haiku. Eu me pergunto por que não pode "apenas arrancar", mas requer dançar com um pandeiro? Além disso, a seção de inicialização é claramente encontrada automaticamente na tela de inicialização. Bug de software?
  • Modo EFI, porta USB3: carregado diretamente no Haiku. Uau, estou feliz ... prematuramente, como se viu. Uma tela azul é exibida, mas nada acontece por um longo tempo. O cursor do “dedo” trava no meio da tela e não se move. O adaptador sata-usb3 está piscando. O caso terminou com pânico no kernel. A imagem do Anyboot na unidade flash USB3 nem foi reconhecida como inicializável no hardware atual. Bah, isso é um bug! Sobre isso, fiz um pedido .


Kernel panic ao inicializar a partir da porta USB3.


O que é surpreendente é que você ainda pode digitar comandos, mas precisará usar o layout em inglês. Então, eu faço como recomendado :



legenda: saída syslog | tail 15 syslog | tail 15 - enquanto o núcleo entra em pânico


Invocar o comando reboot , infelizmente, não funciona.


Quarta tentativa: segundo carro


Transferi o mesmo disco (exatamente funcionando) para outra máquina, onde verifiquei o trabalho com portas diferentes.


Equipamento


Tudo o mesmo que na terceira tentativa, mas no Acer Revo One RL 85.


Resultados


  • Modo EFI, porta USB2: Mensagem "nenhum caminho de inicialização encontrado, procure todas as partições ..." , seguido por uma tela de inicialização com "Selecionar volume de inicialização (atual: haiku)" . O botão "Continuar inicialização" está cinza, não pressionado. Se você selecionar "Selecionar volume de inicialização" -> Haiku (atual: estado mais recente) -> estado mais recente -> retornar ao menu principal -> continuar inicializando a partir da lista , ele será carregado diretamente no Haiku. O desligamento trava na mensagem "Desligando ..." .
  • Modo EFI, hub USB2 conectado à porta USB3: requer esclarecimentos
  • Modo EFI, porta USB3: mensagem "nenhum caminho de inicialização encontrado, procure todas as partições ..." , seguido pela tela de inicialização com "Selecionar volume de inicialização (atual: haiku)" . O botão "Continuar inicialização" está cinza, não pressionado. Se você selecionar "Selecionar volume de inicialização" -> Haiku (atual: estado mais recente) -> estado mais recente -> retornar ao menu principal -> continuar inicializando a partir da lista , ele será carregado diretamente no Haiku.
    Chamo a atenção para o fato de que, ao contrário do primeiro sistema, há uma inicialização normal na área de trabalho sem o pânico do kernel. O desligamento trava na mensagem "O desligamento está em andamento".
  • Modo EFI, porta sata: Carregado diretamente no Haiku. O desligamento trava na mensagem "Desligando ..." .
  • Modo BIOS CSM, porta USB2: atualização necessária
  • Modo BIOS CSM, hub USB2 conectado à porta USB3: esclarecimentos necessários
  • Modo BIOS CSM, porta USB3: atualização necessária
  • Modo CSM BIOS, porta sata: tela preta com a inscrição "Reinicialize e selecione o dispositivo de inicialização adequado ou insira a mídia de inicialização no dispositivo selecionado e pressione uma tecla" . Veio do BIOS do CSM? [ Sim, a mesma mensagem exata será emitida pelo meu sistema se ele não encontrar o carregador de inicialização. - aprox. tradutor]

Quinta tentativa: terceiro carro


Transferiu o mesmo disco para uma terceira máquina, verificada em portas diferentes.


Equipamento


O mesmo que na terceira tentativa, mas no Dell Optiplex 780. Se não me engano - esta máquina possui uma EFI inicial, que aparentemente sempre funciona no modo BIOS do CSM.


Resultados


  • Porta USB2: Haiku Baixar
  • Porta USB3 (via placa PCIe, Controladora host USB 3.0 da Renesas Technology Corp.PD720202): são necessários esclarecimentos
  • Porta Sata: esclarecimentos necessários

Sexta tentativa, quarta máquina, MacBook Pro


Equipamento


Tudo igual à terceira tentativa, mas com o MacBookPro 7.1


Resultados



Como o Mac vê uma unidade flash com o Haiku.


  • Modo CSM ("Windows"): tela preta rotulada "Nenhuma unidade inicializável - insira o disco de inicialização e pressione qualquer tecla" . Ela veio do Apple CSM?
  • Modo UEFI ("Inicialização EFI"): para na tela de seleção do dispositivo de inicialização.

Sétima tentativa, netbook Lenovo com processador Atom de 32 bits


Equipamento


  • Uma unidade flash Kingston DataTraveler 100 de 16 GB feita no Linux usando o Etcher usando uma imagem Anyboot de 32 bits daqui .


  • Netbook Lenovo ideapad s10 baseado em um processador Atom sem disco rígido.


  • lspci desta máquina , filmado em linux.


  • lsusb


     00:1d.7 USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller (rev 02) (prog-if 20 [EHCI]) Subsystem: Lenovo NM10/ICH7 Family USB2 EHCI Controller Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 23 Region 0: Memory at f0844000 (32-bit, non-prefetchable) [size=1K] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Debug port: BAR=1 offset=00a0 Kernel driver in use: ehci-pci 


Resultados


Ao fazer o download e ocorrer o pânico do kernel, o kDiskDeviceManager::InitialDeviceScan() failed: No such file or directory syslog|tail 15 exibe kDiskDeviceManager::InitialDeviceScan() failed: No such file or directory após vários erros de ATA. Nota: Tentei inicializar a partir do USB, não do sata.



Pânico do kernel no netbook Lenovo ideapad s10 ao inicializar a partir de uma unidade flash.


Por uma questão de diversão, inseri o disco na porta SATA, mas não notei muita diferença com a unidade flash. Embora eu tenha recebido mensagens diferentes ao usar o comando syslog|tail 15 (ele disse que encontrou /dev/disk/ata/0/master/1 ).


Sr. O waddlesplash me pediu para executar o `syslog | grep usb `syslog | grep usb para este caso, então aqui estão os resultados. Ainda estou feliz que você possa executar comandos semelhantes na tela com o kernel panic.




De acordo com o sr. waddlesplash este erro EHCI é o mesmo que neste aplicativo


Oitava tentativa: netbook MSI com processador Atom de 32 bits


Equipamento


Como antes


  • Netbook Medion Akoya E1210 (identificado como MSI Wind U100) com um disco instalado (que não uso no Haiku).
  • lspci desta máquina
  • LSUSB desta máquina
     00:1d.7 USB controller: Intel Corporation NM10/ICH7 Family USB2 EHCI Controller (rev 02) (prog-if 20 [EHCI]) Subsystem: Micro-Star International Co., Ltd. [MSI] NM10/ICH7 Family USB2 EHCI Controller Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 23 Region 0: Memory at dff40400 (32-bit, non-prefetchable) [size=1K] Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [58] Debug port: BAR=1 offset=00a0 Kernel driver in use: ehci-pci 

Resultados


Inicializa no Installer Haiku. TouchPad funciona! (por exemplo, rolagem). A placa de vídeo foi reconhecida como Intel GMA (i945GME) .


Nona tentativa: pen drive de 32 bits no MacBook Pro


Equipamento


  • Como antes.
  • MacBook 7.1

Resultados


Uma tela preta que diz "Nenhuma unidade inicializável - insira o disco de inicialização e pressione qualquer tecla".


Nota: Teclado Apple


No canto inferior esquerdo de qualquer teclado na linha inferior, existem os seguintes botões:
não Apple: Ctrl-Fn-Windows-Alt-Barra de espaço
Apple: Fn-Ctrl- (Opção ou Alt) -Command-Barra de espaço


Seria ótimo se todos os teclados do Haiku se comportassem da mesma maneira, para que pudessem ser usados ​​da mesma maneira, independentemente do que realmente fosse nocauteado.
No teclado da Apple, o botão Alt não vai imediatamente para a esquerda do espaço (em vez disso, existe a tecla Command).
Nesse caso, eu descobriria que o Haiku usaria automaticamente a tecla Command em vez da tecla Alt. Portanto, enquanto trabalhava em um teclado da Apple, eu sentiria que o teclado não é da Apple.
Obviamente, existem opções diferentes nas configurações, mas eu gostaria de reconhecer e ajustar automaticamente, porque, afinal, isso é USB.


Nota: writembr para recuperação?


Ouvi dizer que, usando o comando writembr pode tornar um sistema (trabalhando com EFI) inicializável a partir do BIOS.


 /> writembr /dev/disk/.../.../.../.../raw About to overwrite the MBR boot code on /dev/disk/scsi/0/2/0/raw This may disable any partition managers you have installed. Are you sure you want to continue? yes/[no]: yes Rewriting MBR for /dev/disk/.../.../.../.../raw MBR was written OK 

Parece bom, mas, como resultado, o sistema ainda é impossível de carregar, como antes. Talvez porque a inicialização pelo BIOS funcione apenas com a marcação apropriada, não a GPT? [ deve-se tentar MBR protetor ... - aprox. tradutor]


Conclusão


O Haiku é incrível, mas é preciso uma abordagem séria para obter experiência de instalação. Além disso, o processo de inicialização é uma loteria, com aproximadamente 1/3 de chance de sucesso, e não importa se você possui USB2 (Atom netbook) ou USB3 (Acer TravelMate). Mas pelo menos um desenvolvedor tem o mesmo equipamento. Espero que minha experiência "Nubian" ajude os desenvolvedores a entender o que os "meros mortais" precisam, e também torne o resultado tão elegante quanto o instalador do Mac OS X. Não se esqueça que essa nem é a versão 1.0, então tudo é muito bom!


Tente você mesmo! Afinal, o projeto Haiku fornece imagens diárias de download de DVD ou USB. Para instalar, basta baixar a imagem e gravá-la em uma unidade flash USB usando o Etcher


Tem uma pergunta? Convidamos você para o canal de telegrama em russo.


Visão geral do bug: Como dar um tiro no pé em C e C ++. Coleção de receitas do sistema operacional Haiku


Do autor da tradução: este é o quarto artigo da série Haiku.


Lista de artigos: Primeiro Segundo Terceiro Quarto Quinto Sexto Sétimo Oitavo Nono

Source: https://habr.com/ru/post/pt463105/


All Articles