Алексей Федорчук
Эту заметку начну старым советским анекдотом. Армянскому радио задают вопрос:
— Есть ли жизнь на Марсе?
— Тоже нет…
Мои сегодняшние наблюдения позволяют предположить, что и на Солнце жизнь если и есть, то напряжённая. Итак, прошлая заметка закончилась описанием краха первой попытки установки OpenSolaris, произошедшего по непонятной причине. Но, как известно, русские не сдаются. И я предпринял вторую попытку — установить систему с USB-носителя. Благо изготовить его из наличествующего (и уже скачаного) образа посредством команды dd было делом нескольких минут. А для обеспечения загрузки с него (на моей маме и с моим BIOS’ом) достаточно было воткнуть флэшку в компьютер перед рестартом и в BIOS Setup выбрать её в качестве загрузочного устройства.
В скобках замечу, что в некоторых случаях процедура эта чуть более сложная — требуется включить режим эмуляции флоппи-дисковода и ещё что-то, но это на достаточно старых материнках. В общем, лучше заранее свериться с описанием материнской платы.
Однако из установки с USB всё равно ничего не получилось: хотя и с образом, и с флэшкой всё было нормально, машина загружаться с неё отказалась, отговариваясь тем, что флэшка не загрузочная. Пришлось искать иные пути. В частности, переписать iso-образ на свежий диск — возникло подозрение, что первая RW’ка, будучи б/у очень не первого срока, сбоила. Со свежего неперезаписываемого компакта система была наконец установлена.
Сразу скажу, что в итоге выяснилось, что и с первого компакта система благополучно устанавливалась — но только через раз. Да и с повторно записанной флэшки удалось загрузиться. В общем, чем обусловлена такая невоспроизводимость экспериментов, сказать затрудняюсь. Можно списать это и на мои кривые руки, и на моё кривое железо, и на фатальное стечение обстоятельств… Скажу только, что, устанавливая систем и дистрибутивов без счёта, я с такой ситуацией не сталкивался ни разу…
Как я уже сказал, в конце концов система установилась. Но дело на этом отнюдь не кончилось: загружаться посредством собственного варианта GRUB’а она отказалась категорически. Почему — я понял после нескольких попыток загрузить её через тот же GRUB в интерактивном режиме. Оказалось, что установщик решил, будто второй первичный раздел диска, на котором у меня размещался swap для CRUX’а, есть раздел Solaris, и автоматом сделала его корневым, не предприняв поисков четвертого раздела, на который я собственно и устанавливал OpenSolaris. Ведь эта ОС предполагает, что на одном физическом винте может существовать только один её раздел.
После этого проблема разрешилась просто: загрузившись в интерактивном режиме GRUB’а, я немедленно отредактировал его конфиг — menu.lst. В отличие от Linux, в OpenSolaris он лежит здесь: /rpool/boot/grub. А его автоматически сгенерированный вид таков:
splashimage /boot/grub/splash.xpm.gz background 215ECA timeout 30 default 0 #---------- ADDED BY BOOTADM - DO NOT EDIT ---------- title OpenSolaris 2009.06 findroot (pool_rpool,1,a) bootfs rpool/ROOT/opensolaris splashimage /boot/solaris.xpm foreground d25f00 background 115d93 kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=graphics module$ /platform/i86pc/$ISADIR/boot_archive #---------------------END BOOTADM--------------------
Далее идёт множество закомментированных строк, соответствующих тому изобилию винтов и разделов, которое этот самый bootadm обнаружил на моей машине.
Обращаем внимание на строку
findroot (pool_rpool,1,a)
Именно она обеспечивает загрузку OpenSolaris с файловой системы ZFS — да вот только расположение её корневого раздела указано, как я уже сказал, неверно: цифра 1 в нотации GRUB соответствует второму первичному разделу, на котором располагается swap. Правда, для исправления ситуации достаточно заменить её на тройку, чтобы впредь грузиться и перегружаться, сколько душе угодно.
Теперь предстояла борьба с сетевой картой по схеме, описанной ранее. С тем лишь отличием, что на этот раз она также завершилась полным провалом. После распаковки архива драйвера (благо, он был у меня припасён заранее на флэшке), сборки его инсталляции в полном соответствие с директивными указаниями файла README.txt машина просто перестала загружаться. И не обрела этой способности и по сей момент — хотя, честно говоря, никаких более усилий в этом направлении я уже не прикладывал. Решив вычеркнуть ОС OpenSolaris из своей памяти навсегда… (ну или по крайней мере до выхода релиза).
Нет счастья в жизни….
Ну а может все таки стоит дождаться выхода FreeBSD 8.0-RELEASE с более новой ZFS ? Или же сидеть на CURRENT (что тоже многие практикуют)
2 Dorlas
Ждать в принципе уже не обязательно ;) Так как ZFS v13 уже в 7-STABLE, не уверен насчет загрузки с нее, но может тоже бекпортили уже.
Провозился более недели, точно такие же впечатления и «совпадения» по сбоям, до мелочей. Правда с флешкой не пробовал. Ну а так — и диски не читаются и с сетевухой намертво виснет (после установки драйвера к сетевой) или в ресет уходит… Начитался офф. доков до дури, изучил несколько воркэраундов (обходов проблемы, если по нашему)… В общем нужно выключать в материнке (в биосе, CMOS который :) ) все фирменные технологии и некоторые и порт принтера выключают там, и обязательно выключать PnP-обнаружение устройств… Хотя все это делал, мало помогает, если честно (еще вожусь). Проблема, основная, что драйвера сетевух, часто — на уровне ядра. Ну и все рушится на раз-два-три. Вычитал такой обход проблемы (перед этим сам додумался, но пока еще не проверял) — перед установкой драйвера сетевой платы — отключить автоматику обнаружения и конфигурирования (DHCP и т.д.).
А вот когда все поставишь, тогда идешь, мол, в биос и включаешь все обратно (сомнительно, вообще-то, но так в оффициальных воркэраундах написано, или где-то еще, не помню точно). Сетевое, что отключаешь — когда драйвер полностью у тебя заработает и будет выход в Инет (мне для этого vpn еще нужно настраивать) — тогда, вроде как, можно включать…
Еще немного помучаю, наверное… Фич у системы много, хотелось бы, конечно…