Форум » SyMon и Windows » Возвращаясь к теме загрузки со 2-го HD » Ответить

Возвращаясь к теме загрузки со 2-го HD

Андрей: И всё-таки, возвращаясь к теме загрузки со 2-го HD - как осуществить ? Ситуация : есть 2 HD: Master, один раздел, установлена WinXP. Slave, один раздел, установлена Win98. обе системы грузятся, если выбирать устройство загрузки через Биос. После установки Symon на HD0 можно загрузить через меню WinXP c HD0, но невозможно загрузить Win98 через появившуюся в меню Symon строчку «Загрузка с HD1 ». Так вот вопрос - как это сделать ? Очень большая просьба (если есть желание помочь) - приведите конкретную строчку(и) настройки Symon. Желательно - с объяснением что и почему. И таки надо ставить symon на 2-й hd или нет ? Только пожалуйста - не надо отсылать к документации. Прочёл 3 раза - не понял ничего. И кстати, судя по форуму - я не одинок...

Ответов - 22

Vladimir Dashevsky: Пожалуйста, сообщайте сразу информацию, какая версия SyMon? Андрей пишет: цитатаИ таки надо ставить symon на 2-й hd или нет ? Если у Вас два диска установлены стационарно, и вы не носите второй постоянно и не вставляете вместо него другие HDD, то наилучшим образом вам подойдет настройка всех ОС как ссылок из меню SyMon с первого диска. Чтобы ссылки работали, необходимо установить SyMon на оба диска. Пункт меню «Загрузка с HD1» будет работать по-другому, когда вы установите туда SyMon. Будет появляться меню второго диска с выбором WIndows 98. Чтобы не делать это каждый раз, можно настроить ссылку с 1го диска на второй. Андрей пишет: цитатаЖелательно - с объяснением что и почему. Объяснение «что и почему» - это документация. Посмотрите пожалуйста ее еще раз внимательно. Андрей пишет: цитатаТолько пожалуйста - не надо отсылать к документации. Прочёл 3 раза - не понял ничего. А какой конкретно раздел непонятен? Номер назовите, пожалуйста. PS. Претензии к документации принимаются с конкретным указанием непонятных мест. Иначе возникает подозрение, что ее по диагонали читали, а это можно и по 10 раз делать.

Garl: Если честно к документации вопросов вообще нету! может из-за подкованности и образования а может из-за того что всё написано грамотно... Дока по Symon распечатанная всегда лежит как пособие на книжной полке... Спасибо!

Андрей: Просьба понять меня правильно - я не претензии пишу (чай прога бесплатная, никто никому ничего не обязан), это желание понять самому (для личного использования), и может быть - помочь кому-то ещё. Может быть - замечания будут использованы в документации. Итак: symon rel. 3.20.00 ch946;. Symon ставился с загружаемой дискеты. Имеется: HDD0 master c WinXP, HDD1 slave c Win98, оба на первом канале IDE. Win98 устанавливался на HDD стоящий как master, затем диск был переключён как slave. Хочу сделать 2-й пункт меню в том же меню, где появился первый и единственный пункт «загрузка с HD0 - WinXP». Из документации не понимаю ничего. Итак: (цитата - извините за длинноты): » ПРИМЕР 3. Установка ссылки на систему со второго диска. // близко к моей ситуации ....... Пусть настройки второго диска выглядят следующим образом: Название ОС 0 1 2 3 АР ЗР Д пароль ............................................. не важно 3 Linux 2 3 1 - 0 2 0 есть ............................................. не важно Таким образом, на втором диске установлен Linux, который видит на своем диске самого себя (раздел 2), своп-раздел (раздел 3) и, скажем, FAT-раздел для обмена данными с DOS (раздел 1). Кроме того, он имеет пароль на запуск. Тогда ссылка на него в настройках первого диска будет выглядеть так: Название ОС 0 1 2 3 АР ЗР Д пароль ............................................. не важно 5 Linux from hd1 a b c d 0 3 1 нет ............................................. не важно » Давайте начнём сначала. Нигде не сказано в этой главе, что на 2-й диск так же установлен symon. »..описать ссылку на второй диск в настройках первого диска..» - что это значит ? Приведённая ниже запись - это где, в настройках первого диска, на первом диске, или сразу наcтройки второго (на 2-м диске)? Почему запись с номером 3? Подразумевается, что на диске «0» есть ещё два раздела, которые мы сейчас просто не упоминаем? Или на диске «1» ? »....ссылка на него в настройках первого диска будет выглядеть так...» - а это что? почему эта запись под номеро 5? где она расположена - в настройках на первом или на втором диске? чем запись ниже отличается от предыдущей? Почему одна - это ссылка, а вторая - описание ? Флаги ’а b c d’ - они что означают и откуда берутся их значения? Ещё раз прошу меня извинить - может я слишком непонятлив, может быть - давно не имел дело со спецами и специальной терминологией, но я действительно не понимаю, как решить в принципе столь несложную проблему. Вожможно ли в качестве примера ( например как дополнение к существующей документации ) привести описание настроек symon «для загрузки со второго диска системы, не умеющей грузиться с диска D: »?


Vladimir Dashevsky: Андрей пишет: цитатаНигде не сказано в этой главе, что на 2-й диск так же установлен symon. Хм, в примерах не сказано. Но вот читаем раздел 4.4.1 про внешние ссылки и видим абзац: Для того, чтобы внешняя ссылка работала, необходимо наличие настроек SyMon на вторичном диске. Поэтому, перед тем как настраивать ссылку, нужно установить SyMon на тот диск, с которого планируется осуществлять загрузку. Андрей пишет: цитата»..описать ссылку на второй диск в настройках первого диска..» - что это значит ? Приведённая ниже запись - это где, в настройках первого диска, на первом диске, или сразу наcтройки второго (на 2-м диске)? Будете смеяться, но я имел ввиду ровно то что написал. Настройки первого диска - это то, что можно редактировать, нажав F2 в главном меню первого диска, на котором установлена XP. Про настройки второго здесь ничего не сказано. Кстати, в разделе 4.4.1 даже картинка со стрелками нарисована, как этим пользоваться. Андрей пишет: цитатаПочему запись с номером 3? Подразумевается, что на диске «0» есть ещё два раздела, которые мы сейчас просто не упоминаем? Или на диске «1» ? Это сделано для того, чтобы было поменьше одинаковых цифр и было легче ориентироваться кто за что отвечает. Андрей пишет: цитата Почему одна - это ссылка, а вторая - описание ? Опять же, раздел 4.4.1: Признаком внешней ссылки является поле «Д» дескриптора настроек. Оно содержит значение, отличное от нуля, когда дескриптор ссылается на вторичный диск.

valery: Владимир -Вас беспокоит Валерий 43 Москва года являюсь поклонником Вашего продукта но Андрей прав ваш разговор от 22.11.04 по поводу загрузки со второго диска Ваш диалог несколько эмоциоонален в отношении документации но доля истины в этом есть Я столкнулся с такой же проблемой через четыре месяца Два диска Две winXP link на HD1 имеется hd0 winxp0 0123 000 winxp1 01-- 001 hd1 winxp1 01-- 000 грузится hd0 Из главного меню тоже самое системы устанавливались независимо с отключением HD symon и на hd0 и на hd1 Прошу прощения за запятые Жду Help С уважением Валерий

valery: ммс

Sergiy: Валерий, у меня таже проблема, что и у Вас - со второго HD WinXP не запускается. Я перепобывал все варианты, которые были в документации но результат один - Symon отказывается видеть второй диск, чтобы по этому поводу ни говорил автор. Мне кажется, что вместо пустой палемики с Андреем Владимир мог бы просто дать правильные дискрипторы, так сказать для «тупых». Возвращаюсь к Вашей проблеме - удалось Вам ее разрешить? Если да, то, если Вас не затруднит, пришлите ее решение по адресу sergeysua@yahoo.com. За ранее спасибо. Сергей

xdel: было... исправилось только установкой LILO на hd0, а он(о) уже перекидывало хидер на 2-й диск с досом

nroker: Вопрос разработчику или к тому кто в курсе! Стоят два винта IDE и SATA. На обоих по одному разделу с WinXP. Symon'a ставлю на оба винта. В настройках одного винта прописываю ссылку на второй. При выборе загрузки со второго винта грузится система с первого. Причём менял в биосе с чего грузится и грузится всегда с того диска который указан в биосе не зависимо от настроек симона. В чём проблема? Версия SyMon'a последняя на данный момент...

Vladimir Dashevsky: nroker пишет: цитатаВ настройках одного винта прописываю ссылку на второй. При выборе загрузки со второго винта грузится система с первого. Это обычное явление для NT. Когда два диска имеют одинаковое начало двух загрузочных разделов (в секторе 63), то запуск ntloader со второго диска заканчивается тем, что он считывает boot.ini с первого диска и грузит первую NT как ни в чем не бывало. Возможно, это лечится снятием флага активного раздела с первого диска, не проверял. На практике получается так, что нужно под систему на втором диске делать микрораздел на первом, в который устанавливать ntloader для нее. Можно также прикрутить вторую систему к boot.ini первой. Тогда после меню SyMon будет меню ntloader'a. Убрать его можно, настроив автонабор с клавиатуры, используая сочетания клавиш стрелок и ВВОДа.

nroker: Vladimir Dashevsky пишет: цитатаНа практике получается так, что нужно под систему на втором диске делать микрораздел на первом, в который устанавливать ntloader для нее. Сделал раздел, прописал boot.ini, но система не хочет грузится... Может я чего в boot.ini не так делаю, можно поподробней это место описать.

sergey: хорошо получается, когда в компе 0...(n-1)-ide и n-sata винт (только при инсталл. w2k на сата винт, иде нужно вырубить, а клонирование на ура проходит)

Vladimir Dashevsky: nroker пишет: цитатаСделал раздел, прописал boot.ini, но система не хочет грузится... Может я чего в boot.ini не так делаю, можно поподробней это место описать. Значит так. 1. Делаем маленикий раздел на диске 0, пусть у него будет номер 1 в таблице разделов SyMon на этом диске. 2. Делаем разделы на диске 1 для Windows 2000. Предположим, что это будут два раздела 0 и 1. 3. Создаем дескрипторы ОС: на диске 0: a _w2000 1 - - - 0 1 0 на диске 1: b _w2000 0 1 - - 0 1 0 4. Создаем макрос для компиляции MBR на всех дисках сразу, на диске 0: c Windows 2000 a b - - 0 a 0 5. Пытаемся загрузить Windows 2000. Комп виснет. Ресетим и грузимся с Windows 2000 installation CD. 6. В программе установки Windows 2000 выбираем диск D:, или первый раздел второго жесткого диска. При этом возникает предложение создать системный раздел на первом диске. В ответ предлагаем единственный открытый в этот момент раздел на первом жестком диске - маленький раздел размером 1 цилиндр. 7. Далее устанавливаем Windows 2000 как обычно и работаем с ним.

nroker: Vladimir Dashevsky пишет: цитатаЗначит так. Спасибо за подробное описание процесса, но вчера вечером разобрался сам, всё работает просто отлично! Делал немного по другому, но результат тот же. Всё равно спасибо за внимание...

Abboot: Здесь вот в чём заковырка... После выбора в БИОС любого винта загрузочным ему присваивается номер 80h, а второму 81h... Когда загрузчик винды ntldr получает управление, то он работает с 80h. Следовательно при загрузке с одного винта в Симон и дальнейшем выборе второго винта NT-шный лоадер лезет всёравно на первый (80h) отсюда и все последствия. С другой стороны, существует такой загрузчик GrUB :). Так вот он каким-то образом позволяет делать ремап номеров жёстких дисков. Это равносильно выбору в БИОСе загрузочного харды. Т.е., пример, грузимся с первого = А, БИОС даёт ему номер 80h, заходим в ГРАБ и делаем ремап первого на второй, а воторого на первый, в результате диск A становится номером 81h, а тот который был вторым станет 80h. К сожалению я не знаю как это делается. Но Симон это не умеет точно! А жаль... Владимир, что скажете? С уважением, Abbot.

Vladimir Dashevsky: Похожий remap делает и Smart Boot manager. Я как-то попробовал написать свой вариант ремапа. Написал перехватчик int 13h и поставил его в памяти сразу за областью данных BIOS. Тут несколько трудностей. Во-первых, перехваченный вектор 13 зачастую считается признаком наличия вируса. Во-вторых, размещение кода в общей памяти не гарантирует его сохранения в процессе загрузки ОС, так как никто не знает о его существовании. В этом смысле BIOS проще, так как его код находится в отдельной области памяти, куда универсального доступа на запись нет. В общем, на практике такой ремап заработал только в ДОСе. С Windows 2000 он уже работать отказался. Я думаю, что причина в том, что помимо тупого ремапа номеров дисков виндам требуется еще и правильное переделывание таблиц параметров устройств. Их формат не очень то известен. Но в них содержится привязка номера диска к адресам ATA-контроллера. Так что, возможно именно из-за этого происходит подобный сбой.

Abboot: 1. когда BIOS распределяет номера, она же ведь их записывает в ОЗУ? Если так, то вместо перехватчика может просто переписывать эти значения на свои? Или адреса хранения номеров меняется? 2. Да, Windows NT после перехода в защищённый режим уже плевать на прерывания реального режима, но ведь и нам тоже неважно что будет дальше, главное ведь пройти этап предворительной загрузки? Или здесь ещё что-то? 3. Не понимаю о кааих таблицах вы говорите... немного поясните плиз. Таблицы, которые хранятся в бутсекторах разделов? (наверное вы не об них...)

Vladimir Dashevsky: 1. BIOS номера переделывает "про себя". Фактически делается так. BIOS копирует сябя в теневое ОЗУ для ускорения выполнения кода. Затем в этом ОЗУ настраиваются реальные соответствия параметров дисков и их конотроллеров. Затем ОЗУ закрывается на запись и превращается в "ПЗУ". Причём механизм закрытия не универсален и зависит от производителей процессора, чипсета, материнской платы. Ясно, что только в BIOS SETUP можно более менее универсально задать соответствие. Изменить значения пользовательской программой затруднительно. Я пока не нашел способа, как это сделать. 2. Это тоже не совсем так. Windows NT довольно толстая и многоуровневая система. Ей требуется полностью загрузить ядро и настроить его окружение, прежде чем оно само стартует и подключит драйверы того же диска. Как следствие, за все нюансы загрузки отвечает ntloader и ntdetect.com, который и занимается вытягиванием ядра с диска в память. К слову сказать, такая же фаза есть и у линукс, куда ж без неё. Так вот, загрзчику надо уметь либо грузить многомегабайтное ядро средствами BIOS, либо самому иметь встроенный драйвер диска. Однако, даже имея драйвер, нужно еще знать с какого именно диска надо читать ядро. К сожалению, я пока не знаю точно, какими правилами руководствуется ntloader. Опытным путем проверено, что он не грузит систему со вторичного диска, если ему честно передать ссылку на него в регитре DL процессора. При этом своё тело (ntloader тоже относительно велик) и утилиту ntdetect.com он честно грузит именно со вторичного диска, и уже потом соображает, что boot.ini надо искать на первом. Если на первом диске оказывается структура разделов, одинаковая со вторичным, то происходит "чудо", Windows запускаются, но к разочарованию пользователя оказываются просто виндами с первого диска. То есть по сути, ntloader просто поступил так, как будто бы он был родом с первого диска. 3. Нет, конечно. Вот вырезка из Tech Help: These vectors (0:0104 and 0:0118) are pointers to hard disk operating parameter structures on AT-class and better computers. See Hard Disk Parameter Table for a layout of the data at these vectors. XT: Depending upon switch settings, one of four addresses are copied to these vectors. AT: At Boot time, the AT BIOS reads the CMOS Memory to learn which type(s) of hard disk drives are attached. It then points the vectors... INT 41H --> first hard disk INT 46H --> second hard disk ...to tables in ROM. Many recent BIOSes are able to handle "user-defined" hard-disk types. They store the necessary parameters in non-volatile RAM and copy them into memory at boot time. Еще кусочек: HardDiskParmRec Offset Size Contents ▀▀▀▀▀▀ ▀▀▀▀ +0 2 wMaxCyls maximum number of cylinders +2 1 bMaxHds maximum number of heads +3 2 wRWCyl starting reduced-write current cylinder +5 2 wWPCyl starting write precompensation cylinder +7 1 bECCLen maximum ECC data burst length +8 1 rOptFlags drive step options: bits 2-0: drive option bit 7: disable retries bit 6: disable ECC +9 1 bTimeOutStd standard timeout value +0aH 1 bTimeOutFmt timeout value for format drive +0bH 1 bTimeOutChk timeout value for check drive +0cH 4 res (reserved) 16 length of a HardDiskParmRec Возможно, что Microsoft пошёл по пути именно этих таблиц. То есть, для загрузки со вторичного диска, вектор 41h дожен показывать на таблицу, описывающую именно этот диск. Однако, как видно из вышеприведённого текста, имеются трудности: таблица имеет старый формат и не содержит информации об адресах контроллера, master/slave и т.п. имеется всего 2 вектора на всю систему. А дисков даже тогда задумывалось до 4, а сегодня еще есть SCSI, USB, ZIP, которые все могут быть загрузочными, и нет никакого представления о том, как именно их представлять в этих таблицах... А ведь есть еще и стандарт EDD 3.0, который вообще открыто декларирует, что он именно предназначен для наведения порядка с соответствием дисков до и после загрузки системы. Он то как раз и прописывает программный интерфейс к функциям, которые могут сообщить про диск BIOS, откуда тот родом. Но вот беда, они требуют всё того же знания номера диска, чтобы дать ответ. То есть, получается всё тот же ремап.

Abboot: М-да... всё куда сложнее... На досуге повозился малость с GrUB'ом, пришёл к выводу, что и с ним не всё ровно... это я про ремап. Спасибо за информацию, очень полезно!

Vladimir Dashevsky: Abboot 1. Требует ли LILO или GRUB каких-либо действий, ежели диск с установленным линуксом переедет на другой контроллер? К примеру, ставим на primary master, а потом пеняем местами с другим диском. Умеет оно само найти систему и загрузить? Умеет ли само ядро монтировать в качестве рутового тот раздел, который находится на том же контроллере, что и загрузочный раздел? То есть, может ли переезд состояться прозрачно для загрузки основного ПО линукс? Насколько я знаю про LILO, раньше его авторы просто тупо вшивали ли таблицу адресов его кусочков в его же бут-сектор. И при установке LILO эту таблицу инициализировали. В результате он не то что на другой диск переехать не мог, ему даже раздел переместить нельзя было, - фдреса сбивались. Про указание на размещение ядра и вообще непонятно. Хорошо придумали в Microsoft, когда стали в MBR вписывать сигнатуры дисков. Правда, сделали это втихаря... Но в итоге появилась возможность указывать диск по сигнатуре, то есть вовсе не нужно уметь разбираться, какого он типа и какой у него адрес физический. Просто проинициализировал все драйверы, прочитал с каждого диска по сигнатуре, определил свой диск и грузись с него. А то, что он там переехал у BIOS, уже не имеет никакого значения. Только вот похоже, никто эту идею так до ума и не довёл :( Линукс по сигнатуре от MS просто не умеет, а MS умеет, но требует, чтобы раздел с загрузчиком всегда жил на диске 80h у BIOS, то есть, просто так диски не переставишь. 2. Вот страница на сайте [url=http://www.phoenix.com/en/Customer+Services/White+Papers-Specs/pc+industry+specifications.htm]Phoenix[/url], где есть спецификация на BIOS Boot и EDD 3.0. Как можно охарактеризовать нынешнее положение дел, кто-нибудь соблюдает то, что там написано? LILO соблюдает? ntloader соблюдает? 3. Почему ntloader не стартует Windows если сам запускается со вторичного диска? То есть, если мы хотим установить Windows из дистрибутива на диск D: (второй HDD), то сетап обязательно попросит указать раздел под ntloader на диске C: (первый hdd). При установке на первый диск может даже не попросить. Но. раз уж система может стоять на втором HDD, то выходит, проблема всодится только к тому, чтобы ntloader прочитал все свои файлы в память, дальше ему уже по идее пофигу, он в boot.ini должен прочитать, откуда ему грузить систему. Тогда вопрос, что именно из своих файлов он не может прочесть на втором диске? Я проверял, что он честно себя считывает с диска, переданного в DL в соответствии с BIOS Boot Specification. Мое подозрение состоит в том, что он пытается искать boot.ini на активном разделе, сканируя все MBR по порядку. Что-то типа поиска файла C:\boot.ini при сохранившейся от DOS стратегии назначения букв разделам. Ну и вылезает в качестве диска C: primary раздел на первом hdd. А там такого файла либо нет вообще, либо он "не от той стены гвоздь".

Игорь: здравствуйте а ьожно увидеть классический вариант настроек на двух hdd если на каждом установлен ХР оба-0 допустим каждый диск устанавливался по отдельности это правильно? или я понимаю не только в макросах дело. Мозг уже разрывает, винт скоро протретца. Два года назат когда первый раз ставил symon не думал что будет необходимость установить второй hdd. И как если на втором будут стоять только клоны

cousin: Почему ntloader не стартует Windows если сам запускается со вторичного диска? Эту тайну мы похоже уже не разгадаем. Но есть хорошая новость - в новом загрузчике BCD, который используется в Vista/7, этот глюк частично побороли. Загрузчик больше не лезет на соседний винт. В принципе, теперь можно попробовать грузить XP напрямую со второго винта если ntldr заменить на BCD загрузчик. По крайней мере у меня symon нормально подхватывает Висту перенесенную на второй винт. Одну проблему решили но добавили новую - теперь загрузчик игнорирует признак активности раздела и грузит первую попавшуюся систему на котором обнаружит конфигурацию BCD. Поставить несколько независимых систем на один винт не получится. Хотя нет. Соврал. Если скрывать остальные загрузочные разделы то все нормально будет А если просто менять активность разделов, то облом.



полная версия страницы