Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай

TL; DR: праз некалькі дзён эксперыментаў з Хайку я вырашыў паставіць яе на асобны SSD. Але ўсё аказалася не так няпроста.

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
Ідзе ўдарная праца па праверцы загрузкі Haiku.

Тры дні таму я даведаўся аб Haiku, нечакана добрай аперацыйнай сістэме для ПК. Ідзе чацвёрты дзень і мне захацелася прарабіць больш "рэальнай працы" з гэтай сістэмай, а частка, ідучы ў выяве Anyboot, для гэтага занадта маленькі. Тады бяру ў рукі новенькі SSD аб'ёмам 120Гб, рыхтуюся да гладкай працы ўсталёўшчыка… І мяне чакае аблом!

Усталёўцы і загрузцы звычайна надаюць падвышаную ўвагу і каханне, паколькі гэта першыя і найважнейшыя ўражанні. Ёсць надзея, што пратакол майго досведу «навічка» апынецца карысным для каманды распрацоўшчыкаў Haiku у іх пастаянных намаганнях па адладцы аперацыйнай сістэмы, якая «проста працуе». Бяру ўсе памылкі на сябе!
Як мне здаецца, асабліва важнай будзе сітуацыя з загрузкай па USB, паколькі не кожны карыстач гатовы выкарыстаць асноўны SATA-дыск (я ўжо маўчу пра NVME…) для эксперыментаў з зусім незнаёмай аперацыйнай сістэмай. Мне здаецца, загрузка па USB – найболей верагодны сцэнар для большасці карыстачоў, якія вырашылі паспрабаваць Haiku на рэальным абсталяванні. Распрацоўнікам на гэта варта сур'ёзна прыгледзецца да гэтага.

Каментар распрацоўніка:

Мы толькі-толькі пачалі падтрымку EFI, па-хуткаму напісаўшы бэта-версію, якая загружаецца на машынах з падтрымкай EFI. Атрыманыя вынікі пакуль што далёкія ад жаданага ўзроўню падтрымкі. Я не ведаю, ці варта нам дакументаваць бягучую працу, ці проста засяродзіцца на дасягненні належнага выніку, пасля чаго ўжо задакументаваць усё.

Гучыць асэнсавана, і ёсць надзея, што ў выніку ўсё будзе значна лепш, чым зараз. Пакуль што я магу толькі праверыць тое, што зроблена на сёньня. Прыступім...

Выява Anyboot занадта маленькі

Нягледзячы на ​​тое, што выява Anyboot дзіўна лёгка пішацца на звычайную флешку, у ім няма досыць месцы на падзеле з Haiku для ўсталёўкі дадатковага ПА.

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
Запіс выявы Anyboot на флешку ў прынцыпе досыць простая, але ў выніку месца для рэальнай працы бракуе.

Хуткае рашэнне: павялічыць памер часткі Haiku па-змаўчанні.

Так што для рэальнай працы з Haiku усё ж трэба яе ўсталяваць з дапамогай прыкладання Installer.

Installer не робіць усё неабходнае ў адным месцы

Памятаеце цудоўны ўсталёўшчык Mac OS X?

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
Усталёўшчык Mac OS X 10.2

ён:

  • ініцыялізуе дыскі (піша GPT, табліцу раздзелаў GUID)
  • стварае раздзелы (EFI, асноўны) выкарыстоўваючы "здаровы сэнс" (для найлепшага выкарыстання дыска)
  • пазначае загрузную частку (усталёўвае на ім bootable сцяг)
  • капіюе файлы

Гэта значыць ён робіць «усё» без лішняй валтузні для карыстача.

З іншага боку ёсць Installer для Haiku, які проста капіюе файлы і аддае карыстачу на водкуп усё астатняе, занадта грувасткае, у чым нават пры наяўнасці досведу не адразу разбярэшся. Асабліва калі патрэбна сістэма, якая загружаецца як на сістэмах з BIOS, так і на EFI.

Што ж мне рабіць?

Дакладна не скажу, але, ва ўсякім разе, мяркую вось што:

  1. Адкрыць DriveSetup
  2. Выбраць прыладу для ўстаноўкі
  3. Дыск->Ініцыялізаваць->GUID Partition Map…->Працягнуць->Запісаць змены->OK
  4. Правая пстрычка па пустым месцы на прыладзе, куды будзе ўсталявана сістэма
  5. Стварыць…->Уводжу 256 як памер->EFI system data (цалкам не ўпэўнены)->Запісаць змены
  6. Правая пстрычка па «EFI system data» на прыладзе, куды будзе ўсталявана сістэма
  7. Ініцыялізаваць->FAT32 File System…->Працягнуць->Уводжу імя: «EFI», разраднасць FAT: 32->Фарматаваць->Запісаць змены
  8. Паўтараю правую пстрычку па пустым месцы на патрэбным прыладзе
  9. Стварыць…->Уводжу імя часткі: Haiku, тып часткі: Be File System->Стварыць->Запісаць змены
  10. Правая пстрычка па EFI->Падлучыць
  11. Запускаю Installer->збянтэжаны тэхнаслэнгам->Працягнуць->На дыск: Haiku (пераканаўся, што гэта тая ж частка, што я стварыў да гэтага)->Усталяваць
  12. У файлавым мэнэджары капіюю каталог EFI з бягучай сістэмы на падзел EFI (мяркую, што гэта трэба для загрузкі з EFI)
  13. [заўв. перакладчыка: прыбраў гэты пункт з перакладу; калі коратка - аўтар не зусім здужаў стварэнне гібрыднай сістэмы для загрузкі як EFI, так і BIOS]
  14. выключаю
  15. падлучаю новаствораны дыск у порт, з якога сістэма сапраўды будзе загружацца [дзіўна, мне гэтага рабіць не прыйшлося. - заўв. перакладчыка]
  16. уключаю

Мне здаецца, ясна відаць: патрэбен інструмент, які зробіць усё па адным націску кнопкі, са своечасовым (!) пацвярджэннем, што зацерці прыладу можна.

Хуткае рашэнне: зрабіць аўтамагічны Installer, які робіць усё.

Ну, нават калі і не "хуткае", то годнае. Гэта ж першыя ўражанні ад новай сістэмы. Калі не атрымаецца ўсталяваць (а ў мяне так было некалькі разоў) - шматлікія проста ціха сыдуць назаўжды.

Тэхнічнае тлумачэнне наконт DriveSetup згодна PulkoMandy

BootManager запісвае паўнавартаснае загрузнае меню, уключаючы магчымасць загрузкі некалькіх сістэм з дыска, для гэтага яму дастаткова ўсяго каля 2кб у пачатку дыска. Гэта падыходзіць для старых схем разметкі дыска, але не для GPT, які выкарыстоўвае тыя ж сектары для табліцы раздзелаў. З іншага боку writembr запісвае моцна спрошчаны код на дыск, які проста знойдзе актыўную частку і працягне загрузку з яго. Гэтаму коду дастаткова 400 першых байт на дыску, так што ён не перасякаецца з GPT. У яго абмежавана падтрымка дыскаў з разметкай GPT (але для простых выпадкаў усё будзе як трэба).

Хуткае рашэнне: няхай GUI для налады BootManager ставіць на дыск усё, што ўсталёўваецца з дапамогай writembr, калі выяўляецца разметка GPT. Ня трэба ставіць код памерам 2кб на дыскі GPT. Не трэба ставіць сцяг bootable на раздзел EFI, толькі на раздзел Haiku.

Першая спроба: kernel panic

Абсталяванне

  • Acer TravelMate B117 N16Q9 (прадаваўся з EndlessOS)
  • ўтыліта lspci
  • lsusb
  • існуючая сістэма была запушчана з флэшкі Kingston DataTraveler 100 памерам 16гб, зробленай з Anyboot выявы з дапамогай Etcher на Linux, устаўленай у порт USB2.0 (таму што не загружалася з порта USB3)
  • SSD Kingston A400 памерам 120гб, толькі з завода, падлучаны ў перахаднік sata-usb3 ASMedia ASM2115, які падлучаны ў порт USB3 у TravelMate B117.

Вынікі

Installer запускае капіраванне файлаў, потым вылазіць памылка ўводу-высновы, якая суправаджаецца kernel panic

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
паніка ядра

Другая спроба: незагружаны дыск

Абсталяванне

Усё як і раней, але SSD падлучаны ў перахаднік, які падлучаны ў USB2.0 Hub, уваткнуты ў порт USB3 у TravelMate. Я праверыў з дапамогай усталявальнай флэшкі з Windows, што гэтая машына загружаецца з USB3.

Вынікі

Незагружаная сістэма. Разметка дыска як быццам зляцела з-за BootManager.

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
BootManager. "Write boot menu" што, разбурае разметку дыска?!

Трэцяя спроба: ух ты, яно загружаецца! Але не праз порт USB3 на гэтай машыне

Абсталяванне

Усё гэтак жа, як і ў другой спробе, але ў гэты раз я не выкарыстоўваю BootManager зусім.
Разметка без запуску BootManager выглядае так, калі правяраць з Linux.

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
Раздзел "efi" з файлавай сістэмай FAT32 пазначаны загрузным без запуску BootManager. Яно запусціцца на не-EFI машыне?

Вынікі

  • Рэжым EFI, USB2 порт: загрузка наўпрост у Haiku
  • Рэжым EFI, USB2 hub, падлучаны ў USB3 порт: Паведамленне "no boot path found, scan for all partitions ...", пасля чаго загрузны экран з "Select boot volume (Current: haiku)". Кнопка "Continue booting" шэрая, не націскаецца. Калі абраць у спісе «Select Boot Volume» -> Haiku (Current: Latest state) -> Latest state -> Return to main menu-> Continue booting - загружаецца наўпрост у Haiku. Цікава, чаму яно не можа «проста загрузіцца», а патрабуе скокі з бубнам? Тым больш, што на экране загрузкі відавочна аўтаматычна знойдзены загрузная частка. Праграмная памылка?
  • Рэжым EFI, USB3 порт: загружаецца наўпрост у Haiku. Ух, як я рады ... Заўчасна, як аказалася. Паказваецца блакітны экран, але доооооолгое час нічога не адбываецца. Курсор-"палец" павіс у сярэдзіне экрана і не рухаецца. Пераходнік sata-usb3 міргае. Справа скончылася kernel panic. Выява Anyboot на флэшцы USB3 нават не распазнаўся загрузным на бягучым абсталяванні. Ба, ды гэта ж bug! Датычна гэтага я завёў заяўку.

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
Kernel panic пры загрузцы з порта USB3.

Што дзіўна — усё яшчэ можна набіраць каманды, але давядзецца выкарыстоўваць ангельскую раскладку. Так што раблю як раілі:

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
подпіс да карцінкі: вывад syslog | tail 15 - пакуль ядро ​​панікуе

Выклік каманды reboot, на жаль, не працуе.

Чацвёртая спроба: другая машына

Я перанёс такі ж (сапраўды працоўны) дыск на іншую машыну, дзе праверыў працу з рознымі партамі.

Абсталяванне

Усё тое ж, што і ў трэцяй спробе, але на Acer Revo One RL 85

Вынікі

  • Рэжым EFI, USB2 порт: Паведамленне "no boot path found, scan for all partitions ...", пасля чаго загрузны экран з "Select boot volume (Current: haiku)". Кнопка "Continue booting" шэрая, не націскаецца. Калі абраць у спісе «Select Boot Volume» -> Haiku (Current: Latest state) -> Latest state -> Return to main menu-> Continue booting - загружаецца наўпрост у Haiku. Выключэнне завісае на паведамленні "Shutting down…".
  • Рэжым EFI, USB2 hub, падлучаны ў USB3 порт: патрабуецца ўдакладненне
  • Рэжым EFI, USB3 порт: Паведамленне "no boot path found, scan for all partitions ...", пасля чаго загрузны экран з "Select boot volume (Current: haiku)". Кнопка "Continue booting" шэрая, не націскаецца. Калі абраць у спісе «Select Boot Volume» -> Haiku (Current: Latest state) -> Latest state -> Return to main menu-> Continue booting - загружаецца наўпрост у Haiku.
    Зважаю, што, у адрозненне ад першай сістэмы, ёсць звычайная загрузка да працоўнага стала без kernel panic. Выключэнне завісае на паведамленні "Ідзе выключэнне".
  • Рэжым EFI, порт sata: Загружаецца наўпрост у Haiku. Выключэнне завісае на паведамленні "Shutting down…".
  • Рэжым CSM BIOS, порт USB2: трэба ўдакладненне
  • Рэжым CSM BIOS, USB2 hub, падлучаны ў порт USB3: трэба ўдакладненне
  • Рэжым CSM BIOS, порт USB3: трэба ўдакладненне
  • Рэжым CSM BIOS, порт sata: Чорны экран з надпісам "Reboot and Select property Boot Device or Insert Boot Media in selected device and press a key". Прыйшло ад CSM BIOS? [Так, сапраўды такое ж паведамленне выдае мая сістэма, калі не знаходзіць загрузнік. - заўв. перакладчыка]

Пятая спроба: трэцяя машына

Перанёс гэты ж дыск на трэцюю машыну, праверыў на розных партах.

Абсталяванне

Тое ж, што і ў трэцяй спробе, але на Dell Optiplex 780. Калі я не памыляюся – на гэтай машыне ранні EFI, які мабыць заўсёды працуе ў рэжыме CSM BIOS.

Вынікі

  • Порт USB2: загрузка Haiku
  • Порт USB3 (праз картку PCIe, Renesas Technology Corp. uPD720202 USB 3.0 Host Controller): трэба ўдакладненне
  • Порт sata: патрабуецца ўдакладненне

Шостая спроба, чацвёртая машына, MacBook Pro

Абсталяванне

Усё тое ж, як і ў трэцяй спробе, але з MacBookPro 7.1

Вынікі

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
Як Mac бачыць флэшку з Haiku.

  • Рэжым CSM ("Windows"): чорны экран з надпісам "No bootable drive - insert boot disk and press any key". Яна прыйшла ад Apple CSM?
  • Рэжым UEFI ("EFI Boot"): спыняецца на экране выбару загрузнай прылады.

Сёмая спроба, нэтбук Lenovo з 32-бітным працэсарам Atom

Абсталяванне

  • Флэшка Kingston DataTraveler 100 ёмістасцю 16гб, зробленая на Linux з дапамогай Etcher, выкарыстоўваючы 32-бітную выяву Anyboot адсюль.

  • Нетбук Lenovo ideapad s10 на аснове працэсара Atom без цвёрдай кружэлкі.

  • lspci гэтай машыны, зняты на 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

Вынікі

Ідзе загрузка, потым здараецца kernel panic, каманда syslog|tail 15 выводзіць kDiskDeviceManager::InitialDeviceScan() failed: No such file or directory пасля некалькіх памылак ATA. Заўвага: я спрабаваў загружацца з USB, не з sata.

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
Kernel panic на нетбуку Lenovo ideapad s10 пры загрузцы з флэшкі.

Прыколы дзеля я ўставіў дыск у порт sata, але асаблівай розніцы з флэшкай не заўважыў. Хаця я атрымаў розныя паведамленні пры выкарыстанні каманды syslog|tail 15 (яно сказала, што знайшло /dev/disk/ata/0/master/1).

mr. waddlesplash папрасіў мяне выканаць каманду `syslog | grep usb для гэтага выпадку, таму вось вынікі. Я ўсё яшчэ рады, што можна запускаць падобныя каманды на экране з kernel panic.

Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай
Мой чацвёрты дзень з Haiku: праблемы з усталёўкай і загрузкай

Згодна з mr. waddlesplash гэтая памылка EHCI - такая ж, як у гэтай заяўцы

Восьмая спроба: нетбук MSI з 32-бітным працэсарам Atom

Абсталяванне

Як і раней

  • Нетбук Medion Akoya E1210 (пад маркіроўкай MSI Wind U100) з усталяваным дыскам (які я не выкарыстоўваю для Haiku).
  • ўтыліта lspci гэтай машыны
  • lsusb гэтай машыны
    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

Вынікі

Загружаецца ў Installer Haiku. Працуе TouchPad! (напрыклад, пракрутка). Відэакарта распазналася як Intel GMA (i945GME).

Дзевятая спроба: флэшка з 32-бітнай выявай на MacBook Pro

Абсталяванне

  • Як і раней.
  • MacBook 7.1

Вынікі

Чорны экран з надпісам "No bootable drive - insert boot disk and press any key".

Заўвага: клавіятура Apple

У левым ніжнім куце любой клавіятуры на ніжнім шэрагу ёсць наступныя кнопкі:
ня-Apple: Ctrl-Fn-Windows-Alt-Spacebar
Apple: Fn-Ctrl-(Option або Alt)-Command-Spacebar

Было б здорава, калі б усе клавіятуры ў Haiku паводзілі сябе аднолькава, каб імі можна было карыстацца аднолькава, незалежна ад таго, што рэальна на іх выбіта.
На клавіятуры Apple кнопка Alt ідзе не адразу злева ад прабела (замест яе там клавіша Command).
У гэтым выпадку я б выявіў, што ў Haiku будзе аўтаматычна выкарыстоўвацца кнопка Command замест кнопкі Alt. Так што, працуючы на ​​клавіятуры Apple, я б адчуваў, што клавіятура – ​​не-Apple.
Відавочна, у наладах ёсць розныя опцыі, але хацелася б аўтаматычнага распазнання і падладкі, бо гэта USB, у рэшце рэшт.

Заўвага: writembr для аднаўлення?

Я чуў, што з дапамогай каманды writembr можна зрабіць сістэму (працуючай з EFI) загружанай з 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

Выглядае добра, але ў выніку сістэму загрузіць усё яшчэ немагчыма, як і раней. Магчыма, таму, што загрузка праз BIOS працуе толькі з прыдатнай разметкай, а не GPT? [трэба было б паспрабаваць protective MBR… - заўв. перакладчыка]

Заключэнне

Haiku цудоўная, але для атрымання вопыту ўстаноўкі патрэбен сур'ёзны падыход. Акрамя таго працэс загрузкі - латарэя, з шанцамі на поспех прыкладна 1/3, і ўсё роўна USB2 (нетбук на Atom) у цябе або USB3 (Acer TravelMate). Але прынамсі, у аднаго распрацоўніка такое ж абсталяванне. Спадзяюся, мой «нубскі» досвед дапаможа распрацоўнікам зразумець, што трэба «простым смяротным», а таксама зрабіць вынік такім жа элегантным, як усталёўшчык Mac OS X. Не варта забываць, што гэта нават не версія 1.0, так што ўсё вельмі нават добра!

Паспрабуйце самі! Бо праект Haiku падае выявы для загрузкі з DVD ці USB, фармаваныя штодня. Для ўстаноўкі дастаткова спампаваць вобраз і запісаць яго на флэшку з дапамогай гравёр

Зьявіліся пытаньні? Запрашаем вас у рускамоўны telegram-канал.

Агляд памылак: Як стрэліць сабе ў нагу ў C і C ++. Зборнік рэцэптаў Haiku OS

Ад аўтара перакладу: гэта чацвёрты артыкул з цыкла пра Haiku.

Спіс артыкулаў: Першая Другая трэцяя

Крыніца: habr.com

Дадаць каментар