СофтХабрахабр

[Перевод] Мой четвертый день с Haiku: проблемы с установкой и загрузкой

Но все оказалось не так-то непросто. TL;DR: спустя несколько дней экспериментов с Haiku я решил поставить ее на отдельный SSD.


Идет ударная работа по проверке загрузки Haiku.

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

Есть надежда, что протокол моего опыта "новичка" окажется полезным для команды разработчиков Haiku в их постоянных усилиях по отладке операционной системы, которая "просто работает". Установке и загрузке обычно уделяют повышенное внимание и любовь, поскольку это первые и самые важные впечатления. Мне кажется, загрузка по USB — наиболее вероятный сценарий для большинства пользователей, решивших попробовать Haiku на реальном оборудовании. Беру все ошибки на себя!
Как мне кажется, особенно важной будет ситуация с загрузкой по USB, поскольку не каждый пользователь готов использовать основной SATA-диск (я уж молчу про NVME...) для экспериментов с совершенно незнакомой операционной системой. Разработчикам на это стоит серьезно присмотреться к этому.

Комментарий разработчика:

Полученные результаты пока что далеки от желаемого уровня поддержки. Мы только-только начали поддержку EFI, по-быстрому написав бета-версию, которая загружается на машинах с поддержкой EFI. Я не знаю, стоит ли нам документировать текущую работу, или просто сосредоточиться на достижении должного результата, после чего уже задокументировать все.

Пока что я могу только проверить то, что сделано на сегодня. Звучит осмысленно, и есть надежда, что в итоге все будет гораздо лучше, чем сейчас. Приступим...

Образ Anyboot слишком маленький

Несмотря на то, что образ Anyboot удивительно легко пишется на обычную флешку, в нем нет достаточно места на разделе с Haiku для установки дополнительного ПО.


Запись образа Anyboot на флешку в принципе достаточно проста, но в результате места для реальной работы не хватает.

Быстрое решение: увеличить размер раздела Haiku по-умолчанию.

Так что для реальной работы с Haiku все же нужно ее установить с помощью приложения Installer.

Installer не делает все необходимое в одном месте

Помните великолепный установщик Mac OS X?

2
Установщик Mac OS X 10.

Он:

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

Другими словами он делает "все" без лишней возни для пользователя.

Особенно если нужна система, загружаемая как на системах с BIOS, так и на EFI. С другой стороны есть Installer для Haiku, который просто копирует файлы и отдает пользователю на откуп все остальное, слишком громоздкое, в чем даже при наличии опыта не сразу разберешься.

Что же мне делать?

Точно не скажу, но, во всяком случае, предполагаю вот что:

  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

Это годится для старых схем разметки диска, но не для GPT, который использует те же сектора для таблицы разделов. BootManager записывает полноценное загрузочное меню, включая возможность загрузки нескольких систем с диска, для этого ему достаточно всего около 2кб в начале диска. Этому коду достаточно 400 первых байт на диске, так что он не пересекается с GPT. С другой стороны writembr записывает сильно упрощенный код на диск, который просто найдет активный раздел и продолжит загрузку с него. У него ограничена поддержка дисков с разметкой GPT (но для простых случаев все будет как надо).

Не нужно ставить код размером 2кб на диски GPT. Быстрое решение: пусть GUI для настройки BootManager ставит на диск все, что устанавливается с помощью writembr, если обнаруживается разметка 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


kernel panic

Вторая попытка: незагружаемый диск

Оборудование

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

Результаты

Разметка диска как будто слетела из-за BootManager. Незагружаемая система.

"Write boot menu" что, разрушает разметку диска?!
BootManager.

Третья попытка: ух ты, оно загружается! Но не через порт USB3 на этой машине

Оборудование

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

Оно запустится на не-EFI машине?
Раздел "efi" с файловой системой FAT32 помечен загрузочным без запуска BootManager.

Результаты

  • Режим 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! Касательно этого я завел заявку.


Kernel panic при загрузке с порта USB3.

Так что, делаю как советовали: Что поразительно — все еще можно набирать команды, но придется использовать английскую раскладку.


подпись к картинке: вывод 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 proper Boot Device or Insert Boot Media in selected device and press a key". Пришло от CSM BIOS? [Да, точно такое же сообщение выдает моя система, если не находит загрузчик. — прим. переводчика]

Пятая попытка: третья машина

Перенес этот же диск на третью машину, проверил на разных портах.

Оборудование

Если я не ошибаюсь — на этой машине ранний EFI, который видимо всегда работает в режиме CSM BIOS. То же, что и в третьей попытке, но на Dell Optiplex 780.

Результаты

  • Порт USB2: загрузка Haiku
  • Порт USB3 (через карточку PCIe, Renesas Technology Corp. uPD720202 USB 3.0 Host Controller): нужно уточнение
  • Порт sata: требуется уточнение

Шестая попытка, четвертая машина, MacBook Pro

Оборудование

1 Все то же, как и в третьей попытке, но с MacBookPro 7.

Результаты


Как 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

Результаты

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


Kernel panic на нетбуке Lenovo ideapad s10 при загрузке с флешки.

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

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


waddlesplash эта ошибка EHCI — такая же, как в этой заявке Согласно mr.

Восьмая попытка: нетбук 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

Результаты

Работает TouchPad! Загружается в Installer Haiku. Видеокарта распозналась как 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

Так что, работая на клавиатуре Apple, я бы ощущал, что клавиатура — не-Apple.
Очевидно, в настройках есть разные опции, но хотелось бы автоматического распознавания и подстройки, ведь это USB, в конце-то концов. Было бы здорово, если бы все клавиатуры в Haiku вели себя одинаково, чтобы ими можно было пользоваться одинаково, независимо от того, что реально на них выбито.
На клавиатуре Apple кнопка Alt идет не сразу слева от пробела (вместо нее там клавиша Command).
В этом случае я бы обнаружил, что в Haiku будет автоматически использоваться клавиша Command вместо клавиши Alt.

Примечание: 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... — прим.

Заключение

Кроме того процесс загрузки — лотерея, с шансами на успех примерно 1/3, и неважно USB2 (нетбук на Atom) у тебя или USB3 (Acer TravelMate). Haiku потрясающая, но для получения опыта установки нужен серьезный подход. Надеюсь, мой "нубский" опыт поможет разработчикам понять, что нужно "простым смертным", а также сделать результат таким же элегантным, как установщик Mac OS X. Но по крайней мере, у одного разработчика такое же оборудование. 0, так что все очень даже хорошо! Не стоит забывать, что это даже не версия 1.

Ведь проект Haiku предоставляет образы для загрузки с DVD или USB, формируемые ежедневно. Попробуйте сами! Для установки достаточно скачать образ и записать его на флешку с помощью Etcher

Приглашаем вас в русскоязычный telegram-канал. Появились вопросы?

Сборник рецептов Haiku OS Обзор ошибок: Как выстрелить себе в ногу в C и C++.

От автора перевода: это четвертая статья из цикла про Haiku.

Список статей: Первая Вторая Третья

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть