Уровень первый

unlk аватар

Читатель, если он дошел по первого пункта планируемых страданий наверняка улыбнулся - но я порекомендовал бы ему не торопится с выводами. Для реализации пункта номер раз необходимо было сначала раздобыть где-то программу для нарезки инсталляционных дискет - т.е. DiskCopy. Во-вторых, какие именно файлы обязаны присутствовать в минимальной ОС System 7.1 - совершенно неизвестно. Воображение рисовало предстоящий долгий возвратно-поступательный процесс полового исследования. И в-третих, для нарезки исталл-дискет System 7.1 требовалось... установить System 7.1.

Заколдованный квадрат разбился просто, попутно разрядив напряженность вопроса о конфигурации файлов в минимальной системе. В интернете я обнаружил файлик System70_boot.dsk представляющий собой загрузочную дискетку, объем которой умещался как раз в запланированные 2мБ. Оставалось перекинуть его содержимое на 2мБ мак-раздел на сказевом винте и вперед, ко второму пункту. Реальность снова порадовала. После продолжительного спора с макинтошевским и писишным дисководом (в ходе которого пришлось расширить мак-раздел до 4мБ) с перебросом бутера и минисистемы с sysinst посредством 1.44мБ дискет выяснилось, что для запуска вышеупомянутого бутера требуется... переключить адресацию памяти в 32-битный режим. Очень странный аспект Макинтоша, тем более, если знать что MC68030 является полностью 32-разрядным процессором. Сделать сие (переключить "режим адресации") можно лишь через особую программу, которая, само собой, отсутствовала в System70_boot.dsk.

Логика выручала - "ну дык поставь фул-System-7 на эмуль, а оттуда вынь переключалку режима адресации и долож её в комплект System70_boot.dsk"... Проклятье. До чего ненавижу подобный мазохизм, но отступать было поздно.

Количество дискет под рукой слегка отставало от необходимых семи штук, а точнее равнялось единице. В рамках работы с эмулятором сия дилемма, казалось бы, разрешалась сравнительно просто - запустил два эмулятора. В первом образы записываются на один и тот же "гибкий диск" по мере поступления запросов от инсталлятора, запущенного в другом эмуле. Зачем такие сложности? Да потому, блин, что этот инсталлятор очень хотел быть Единственной Задачей В Системе и просто не допускал переключение на нарезку новой дискеты. Кроме того - чтобы записать образ на дискету требовалось "засунуть её в дисковод", а когда ты засунул её в дисковод - её тут же хватает за то место, за которое поймает наш замечательный инсталлятор...

В деталях кроется диавол. Два эмуля никак не хотели запускатся вдвоем. Попытка заливать образы через rawrite тоже провалилась - дисковод, типа, был уже занят эмулем.. И тут как раз возникло более изящное решение - поискать переключалку режима адресации вручную, поочередно сбрасывая новый инсталяционный образ на флоп. Мысль разумная, однако, кто его знает - а вдруг эта программа как-то запакована или замаскирована под нечто вроде FDIJS0439.ABC ? Ну что ж, попытка не пытка, хотя, в три часа ночи мне так не казалось.

На образе "install 1" ничего подобного я не обнаружил. Поиск в образе "Install 2" тоже не принес ожидаемого результата. А вот исследования "Tidbits" увенчались успехом. Tidbits:Пульты->Память был немедленно сброшен на виртуальный маковский винт, а "адресация" благополучно переключена.

Я увеличил раздел отведенный под System-7 до 4мБ. Это стоило мне немного, т.к. я уже приноровился к подобному экшну. Надо было загрузится с дискеты, перебросить на дискету "Apple HD Setup", запустить его с дискеты, удалить мак-раздел, создать мак-раздел, скопировать папку "System Folder" с дискеты на мак-раздел (в маке это примерно тоже самое, что sys x: в ДОСе), перезагрузить макинтошку с нажатой кнопкой мышки (почему вы не спросите "правой или левой?" :-), это заставить дискету вытолкнутся (на самом деле я пошутил, дискета при перезагрузке выталкивается автоматически) и насладится полученой картиной.

Предстояло перебросить образ инсталляционной системы. По ходу дела выяснилось, что информационный объем INSTALLSBC.gz превышал емкость стандартной дискеты на целых 100кБ. Вы думаете это смешно? Как бы не так. В System-7 ОТСУТСТВУЮТ средства типа cat или досовского type, не говоря уж о специализированных программах разрезки файлов. Пришлось снова лезть в инет. Выручила программа SplitIt. Она была установлена на эмулятор и уже увеличеный мак-раздел (всмысле на реальном макинтоше... уф..), а дальше все произошло чисто интуитивно: 4мБ не хватило на то, чтобы склеить две половинки созданные SplitIt!'ом. CплитИт не имел понятия о том, как соединять часть, хранящуюся на винте с частью, хранящейся на дискетке.. В хелпе я нашел просьбу выслать $10 автору программы. Как вы знаете, время от времени в США происходят случаи доставки почтой взрывчатки и спор сибирской язвы. В тот момент я готов был поклясться, что все адресаты таких сюрпризов были программистами этой "утилиты". Пришлось стирать все с дискеты, перебрасывать на неё папку "System Folder", перезагружаться, в начале загрузки пихать дискету обратно, дабы загрука произошла с неё, стирать с винта "System Folder" - те м самым увеличив свободное место аж на 1.3мБ. А затем уж можно было выделить два фрагмента созданные SplitIt'ом мышкой и дважды щелкнуть на одном из. SlitIt очень долго собирала две половинки, будто попутно расшифровывала их содержимое... Через каких-то 2 часа мучения подошли к концу:

На винте реального мака существовал 4мБ HFS(мак)раздел, и в нем присутствовала утилита Booter, плюс инсталяционный образ INSTALLSBC.gz. Ура.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
qnub аватар

крепкие нервы

этож сколько нужно злости! а вот по времени все это сколько происходило?
--
и да пребудет с тобой великий Джа!

unlk аватар

это еще не кончило происходить!

а так воще несколько суток :-)

unlk аватар

ретурн ту netbsd/mac68k

В предыдущей серии всё закончилось хеппи-ендом. Но это была только маскировка под хэппи-энд!

В 5-35 плавными движениями была предпринята попытка запуска sysinst из мак-бутера. 2 минуты 20 секунд заняла распаковка сжатого образа системы (процессор на 20 мГц). Загрузка ядра и sysinst произошла намного быстрее. Дальше я видел стандартный sysinst (точно такой же как и на i386), но новый трабл коварно поджидал меня уже на стадии форматирования диска!

Команда newfs упорно рушилась с ошибкой Segmentation Fault. В руководстве по установке утверждали, что сие проявление непокорности есть прямое следствие мизерного объема доступной памяти. Чтож.. возможно. Однако это мало утешало. К счастью, в дистрибутиве netbsd3.0.1/mac68k есть мак-программа Mkfs.

Уже привычные телодвижения с выниманием дискеты из мака, переброской шнура монитора с видеовыхода мака на видеовыход PC, копирование Mkfs с КД-ПЗУ в виртуальный диск эмулятора через утиль TransMac, загрузка эмуля, тыкание на Mkfs (живая ли вообще), её копирование на мак-флоппи, извлечение дискеты (в виртуале)/вставка дискеты (в реале)... А вы что думаете, куда ушло 90% всего времени, затраченного на предыдущие и последущие действия?

Занимательное наблюдение - созданный программой sysinst слайс НэтБСД макинтошевская утилита Apple_HDST опознавала как раздел A/UX. И наоборот - созданный с помощью Apple_HDSC слайс A/UX NetBSD видела как родной. Кстати говоря, программа Apple_HDST называет мак-участки Volume, а A/UX-участки (и соответственно NetBSD-участки) Slices. В тоже время, слайсами в NetBSD/i386 называются Четыре Основных Раздела, а внутренние по отношению к слайсу NetBSD участки винта зовутся Partitions и нумеруются от a до p. По всей видимости, в NetBSD/mac68k слайсы и разделы являются синонимами. Хотя.... хотя нет.. участки, занесеные в метку диска (disklabel) как раз и называются разделами, а участки, не занесеные в её - слайсами. Это с точки зрения NetBSD. А с точки зрения программы AppleHDST всё что прописано в 16-кБ таблице разделов является слайсами, если это не мак-раздел. Тогда он будет томом (Volume). Надеюсь, я запарил вас достаточно, чтобы вы поверили в то, что я не сидел на месте, а упорно грыз гранит (науки). Еще один факт, макинтошевский инсталлер автоматически создает устройства дисковых накопителей с буквами от a до h - как в старых вариантах BSD (но я забежал вперед).

Вот картина моего мак-винта с точки зрения Apple HD Setup. Раздел #0 - содержит список всех остальных разделов.

0 кБ.
Раздел #0 - Partition table
16кБ.
Раздел #1 - Macintish Drivers
64кБ.
Раздел #2 - Macintosh Volume "Мой Макинтош"
A кБ.
Раздел #3 - A/UX Swap Slice
B кБ.
Раздел #4 - A/UX Root
C кБ.
Раздел #5 - A/UX Usr
D кб.

Поскольку его длина составляет 16 кБ то, по приблизительным оценкам, сюда может поместится 32-64 таких участков, которые в i386 зовутся PRIMARY PARTITIONS.
___________________________________________________________________

Вы наверное воображаете, будто на примере такой мелочи я пытаюсь доказать техническое превосходство архитектуры Macintosh над i386?? Да! Ежели вы истинный нэтбээсдэшник и 1)вам совершенно не нужна Windows/i386 2) вам хватит 200-700мГц то рекомендую немедленно выкинуть PC и купить себе любой подержаный Макинтош (имеются ввиду маки третьего и четвертого поколения на процессорах G3 и G4, а не пылесос типа моего!!!). А если вы живете в Москве, то выбор вообще колоссален. Помимо Макинтошей там пачками и за бесценок можно достать машины класса Sun SPARC и DEC Alpha.
___________________________________________________________________

Итак, Mkfs на реальном макинтоше повела себя следущим образом:
1) Сказала, что она является частью проекта "АЛИСА" по портированию "BSD UN*X on Mac68k"
2) Увидела A/UX раздел и предложила форматнуть его
3) Спросила параметры форматирования с возможностью автоматической их оптимизации по статьям скорости/емкости на выбор
4) форматнула

Оставалось загрузить sysinst и оценить эту работу с точки зрения NetBSD:

# mount /dev/sd0a /mnt

Маунт порычал-порычал насчет "нечистой" файловой системы, да и умолк родив директорий /mnt/lost+found

!