Мій четвертий день з 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, що формуються щодня. Для встановлення достатньо завантажити образ та записати його на флешку за допомогою Etcher

Постали питання? Запрошуємо вас до російськомовної telegram-канал.

Огляд помилок: Як вистрілити собі в ногу у C та C++. Збірник рецептів Haiku OS

Від автора перекладу: це четверта стаття із циклу про Haiku.

Список статей: перша Друга третя

Джерело: habr.com

Додати коментар або відгук