- PVSM.RU - https://www.pvsm.ru -
TL;DR: спустя несколько дней экспериментов с Haiku [1] я решил поставить ее на отдельный SSD. Но все оказалось не так-то непросто.
Идет ударная работа по проверке загрузки Haiku.
Три дня назад [2] я узнал о Haiku, неожиданно хорошей операционной системе для ПК. Идет четвертый день и мне захотелось проделать больше "реальной работы" с этой системой, а раздел, идущий в образе Anyboot, для этого слишком маленький. Тогда беру в руки новенький SSD объемом 120Гб, готовлюсь к гладкой работе установщика… И меня ждет облом!
Установке и загрузке обычно уделяют повышенное внимание и любовь, поскольку это первые и самые важные впечатления. Есть надежда, что протокол моего опыта "новичка" окажется полезным для команды разработчиков Haiku в их постоянных усилиях по отладке операционной системы, которая "просто работает". Беру все ошибки на себя!
Как мне кажется, особенно важной будет ситуация с загрузкой по USB, поскольку не каждый пользователь готов использовать основной SATA-диск (я уж молчу про NVME...) для экспериментов с совершенно незнакомой операционной системой. Мне кажется, загрузка по USB — наиболее вероятный сценарий для большинства пользователей, решивших попробовать Haiku на реальном оборудовании. Разработчикам на это стоит серьезно присмотреться к этому.
Комментарий разработчика:
Мы только-только начали поддержку EFI, по-быстрому написав бета-версию, которая загружается на машинах с поддержкой EFI. Полученные результаты пока что далеки от желаемого уровня поддержки. Я не знаю, стоит ли нам документировать текущую работу, или просто сосредоточиться на достижении должного результата, после чего уже задокументировать все.
Звучит осмысленно, и есть надежда, что в итоге все будет гораздо лучше, чем сейчас. Пока что я могу только проверить то, что сделано на сегодня. Приступим...
Несмотря на то, что образ Anyboot удивительно легко пишется на обычную флешку, в нем нет достаточно места на разделе с Haiku для установки дополнительного ПО.
Запись образа Anyboot на флешку в принципе достаточно проста, но в результате места для реальной работы не хватает.
Быстрое решение: увеличить размер раздела Haiku по-умолчанию.
Так что для реальной работы с Haiku все же нужно ее установить с помощью приложения Installer.
Помните великолепный установщик Mac OS X?
Установщик Mac OS X 10.2
Он:
Другими словами он делает "все" без лишней возни для пользователя.
С другой стороны есть Installer для Haiku, который просто копирует файлы и отдает пользователю на откуп все остальное, слишком громоздкое, в чем даже при наличии опыта не сразу разберешься. Особенно если нужна система, загружаемая как на системах с BIOS, так и на EFI.
Точно не скажу, но, во всяком случае, предполагаю вот что:
Мне кажется, ясно видно: нужен инструмент, который сделает все по одному нажатию кнопки, со своевременным (!) подтверждением, что затереть устройство можно.
"Быстрое" решение: сделать автомагический Installer, делающий все.
Ну, даже если и не "быстрое", то достойное. Это же первые впечатления от новой системы. Если не получится установить (а у меня так было несколько раз) — многие просто тихо уйдут навсегда.
Техническое пояснение насчет DriveSetup согласно PulkoMandy [3]
BootManager записывает полноценное загрузочное меню, включая возможность загрузки нескольких систем с диска, для этого ему достаточно всего около 2кб в начале диска. Это годится для старых схем разметки диска, но не для GPT, который использует те же сектора для таблицы разделов. С другой стороны writembr записывает сильно упрощенный код на диск, который просто найдет активный раздел и продолжит загрузку с него. Этому коду достаточно 400 первых байт на диске, так что он не пересекается с GPT. У него ограничена поддержка дисков с разметкой GPT (но для простых случаев все будет как надо).
Быстрое решение: пусть GUI для настройки BootManager ставит на диск все, что устанавливается с помощью writembr, если обнаруживается разметка GPT. Не нужно ставить код размером 2кб на диски GPT. Не нужно ставить флаг bootable на раздел EFI, только на раздел Haiku.
Installer запускает копирование файлов, потом вылезает ошибка ввода-вывода, сопровождаемая kernel panic
kernel panic
Все как и прежде, но SSD подключен в переходник, который подключен в USB2.0 Hub, воткнутый в порт USB3 в TravelMate. Я проверил с помощью установочной флешки с Windows, что эта машина загружается с USB3.
Незагружаемая система. Разметка диска как будто слетела из-за BootManager.
BootManager. "Write boot menu" что, разрушает разметку диска?!
Все так же, как и во второй попытке, но в этот раз я не использую BootManager вовсе.
Разметка без запуска BootManager выглядит так, если проверять из Linux.
Раздел "efi" с файловой системой FAT32 помечен загрузочным без запуска BootManager. Оно запустится на не-EFI машине?
Kernel panic при загрузке с порта USB3.
Что поразительно — все еще можно набирать команды, но придется использовать английскую раскладку. Так что, делаю как советовали [7]:
подпись к картинке: вывод syslog | tail 15
— пока ядро паникует
Вызов команды reboot
, к сожалению, не работает.
Я перенес такой же (точно рабочий) диск на другую машину, где проверил работу с разными портами.
Все то же, что и в третьей попытке, но на Acer Revo One RL 85.
Перенес этот же диск на третью машину, проверил на разных портах.
То же, что и в третьей попытке, но на Dell Optiplex 780. Если я не ошибаюсь — на этой машине ранний EFI, который видимо всегда работает в режиме CSM BIOS.
Все то же, как и в третьей попытке, но с MacBookPro 7.1
Как Mac видит флешку с Haiku.
Флешка Kingston DataTraveler 100 емкостью 16гб, сделанная на Linux с помощью Etcher, используя 32-битный образ Anyboot отсюда [8].
Нетбук Lenovo ideapad s10 на основе процессора Atom без жесткого диска.
lspci этой машины [9], снят на 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.
Kernel panic на нетбуке Lenovo ideapad s10 при загрузке с флешки.
Прикола ради я вставил диск в порт sata, но особой разницы с флешкой не заметил. Хотя я получил разные сообщения при использовании команды syslog|tail 15
(оно сказало, что нашло /dev/disk/ata/0/master/1
).
mr. waddlesplash [10] попросил меня выполнить команду `syslog | grep usb
для этого случая, так что вот результаты. Я все еще рад, что можно запускать подобные команды на экране с kernel panic.
Согласно mr. waddlesplash эта ошибка EHCI — такая же, как в этой заявке [11]
Как и прежде
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)
.
Черный экран с надписью "No bootable drive — insert boot disk and press any key".
В левом нижнем углу любой клавиатуры на нижнем ряду есть следующие кнопки:
не-Apple: Ctrl-Fn-Windows-Alt-Spacebar
Apple: Fn-Ctrl-(Option или Alt)-Command-Spacebar
Было бы здорово, если бы все клавиатуры в Haiku вели себя одинаково, чтобы ими можно было пользоваться одинаково, независимо от того, что реально на них выбито.
На клавиатуре Apple кнопка Alt идет не сразу слева от пробела (вместо нее там клавиша Command).
В этом случае я бы обнаружил, что в Haiku будет автоматически использоваться клавиша Command вместо клавиши Alt. Так что, работая на клавиатуре Apple, я бы ощущал, что клавиатура — не-Apple.
Очевидно, в настройках есть разные опции, но хотелось бы автоматического распознавания и подстройки, ведь это USB, в конце-то концов.
Я слышал, что с помощью команды 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, формируемые ежедневно [13]. Для установки достаточно скачать образ и записать его на флешку с помощью Etcher [14]
Появились вопросы? Приглашаем вас в русскоязычный telegram-канал [15].
Обзор ошибок: Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS [16]
От автора перевода: это четвертая статья из цикла про Haiku.
Список статей: Первая [2] Вторая [17] Третья [18]
Автор: Finnix
Источник [19]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/linux/326541
Ссылки в тексте:
[1] Haiku: https://www.haiku-os.org/
[2] Три дня назад: https://habr.com/ru/company/southbridge/blog/461141/
[3] PulkoMandy: https://github.com/pulkomandy
[4] lspci: https://paste.debian.net/plain/1091516
[5] lsusb: https://paste.debian.net/plain/1091515
[6] заявку: https://dev.haiku-os.org/ticket/15162
[7] как советовали: https://dev.haiku-os.org/ticket/14964
[8] отсюда: https://cdn.haiku-os.org/haiku-nightly/x86_gcc2_hybrid/haiku-master-hrev53247-x86_gcc2_hybrid-anyboot.zip
[9] lspci этой машины: https://paste.debian.net/plain/1091494
[10] mr. waddlesplash: https://twitter.com/waddlesplash
[11] этой заявке: https://dev.haiku-os.org/ticket/11040
[12] lspci: https://paste.debian.net/plain/1091490
[13] ежедневно: https://download.haiku-os.org/?source=post_page---------------------------
[14] Etcher: https://www.balena.io/etcher/?source=post_page---------------------------
[15] telegram-канал: https://t.me/HaikuOS_RU_chat
[16] Как выстрелить себе в ногу в C и C++. Сборник рецептов Haiku OS: https://habr.com/ru/company/pvs-studio/blog/461255/
[17] Вторая: https://habr.com/ru/company/southbridge/blog/461451/
[18] Третья: https://habr.com/ru/company/southbridge/blog/462815/
[19] Источник: https://habr.com/ru/post/463105/?utm_campaign=463105&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.