Как установить MSDOS в раздел с началом с 64-го сектора

Всевозможные операционные системы от CP/M до Vista

Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение aaalekseyyy » 31 авг 2015, 20:25

Здравствуйте, возможно или нет, установить MSDOS в раздел, начинающийся не с 63-го, а с 64-го сектора с размером кластера 4 кб.
Перемещаю раздел, что бы он начинался с 64-го сектора, правлю в MBR начало раздела на 64 сектор, и MSDOS перестает грузиться.
Объясните почему это происходит и как с этим можно бороться.
Последний раз редактировалось aaalekseyyy 30 сен 2023, 23:40, всего редактировалось 1 раз.
aaalekseyyy
Даунгрейдер
 
Сообщения: 10
Зарегистрирован: 31 авг 2015, 20:09

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение uav » 31 авг 2015, 21:33

А зачем, если не секрет, это Вам нужно?
Я бы мог попробовать разобраться, но для этого нужно, чтобы Вы сделали образ своего диска и выложили бы его куда-нибудь.
Последний раз редактировалось uav 30 сен 2023, 23:40, всего редактировалось 1 раз.
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 1915
Зарегистрирован: 22 дек 2008, 14:21

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение aaalekseyyy » 31 авг 2015, 21:44

Странная штука получается, при загрузке MSDOS вылетает ошибка: "FATAL: Could not read from the boot medium! System halted".
Но если в приводе находится загрузочный диск Windows 7, вылетает; "Press any key to boot from CD or DUD.....", Enter не нажимаем, и система грузится в MSDOS.
Если вставить загрузочный диск Windows XP, то все происходит аналогично.
Последний раз редактировалось aaalekseyyy 30 сен 2023, 23:40, всего редактировалось 1 раз.
aaalekseyyy
Даунгрейдер
 
Сообщения: 10
Зарегистрирован: 31 авг 2015, 20:09

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение aaalekseyyy » 31 авг 2015, 21:52

Цитата
А зачем, если не секрет, это Вам нужно?
Я бы мог попробовать разобраться, но для этого нужно, чтобы Вы сделали образ своего диска и выложили бы его куда-нибудь.

Хочу сделать совместную загрузку Windows 7 и MSDOS, но не хочу, что бы раздел начинался с 63-го сектора, потому что он не кратен кластеру 4 кб.
На разделе с началом с 63-го сектора все получается нормально, а с 64-го не идет, вылетает ошибка.
Последний раз редактировалось aaalekseyyy 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
aaalekseyyy
Даунгрейдер
 
Сообщения: 10
Зарегистрирован: 31 авг 2015, 20:09

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение aaalekseyyy » 31 авг 2015, 22:03

Чтобы не угробить диск 1 Тб с 8 разделами, пока экспериментирую на виртуалке.
Образы можно выложить, только мне сейчас тогда немного переделать надо, перейти на диски динамического размера, так как я, для чистоты эксперимента, создавал VHD (для Virtual Box) фиксированного размера 4 Гб, один с MSDOS 8.0 на разделе с 63-го сектора, другой - с 64-го.
MSDOS 8.0 не чья-то сборка, сделан в Windows XP на приглашение создать загрузочную дискету.
Последний раз редактировалось aaalekseyyy 30 сен 2023, 23:40, всего редактировалось 1 раз.
aaalekseyyy
Даунгрейдер
 
Сообщения: 10
Зарегистрирован: 31 авг 2015, 20:09

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение Nika » 31 авг 2015, 22:05

aaalekseyyy писал(а):Хочу сделать совместную загрузку Windows 7 и MSDOS, но не хочу, что бы раздел начинался с 63-го сектора, потому что он не кратен кластеру 4 кб.
На разделе с началом с 63-го сектора все получается нормально, а с 64-го не идет, вылетает ошибка.
Всё надо делать поэтапно.
Вачале разметить раздел 2Гб, отформатировать его и установить туда DOS.
Когда всё заработает как надо, приступать к установке Win7, причём так, чтобы она не трогала этот DOS-раздел.
А кoгда заработает Win7, нужно найти какой-нибудь бут-менеджер, с помощью которого организовать загрузку либо из раздела DOS,
либо из раздела Win7.
Последний раз редактировалось Nika 30 сен 2023, 23:40, всего редактировалось 3 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 853
Зарегистрирован: 16 окт 2013, 23:21

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение aaalekseyyy » 31 авг 2015, 22:37

MSDOS 8.0 прекрасно видит разделы до 4 Гб.

Так я и делал, все нормально, никаких проблем, MSDOS работает, только раздел начинается с 63-го сектора.

До установки двойной загрузки нужно решить проблему загрузки MSDOS с раздела с началом с 64-го сектора.

Вот тут и начинаются проблемы:
- устанавливаю MSDOS раздел 3 Гб с началом с 63-го сектора на диске 4 Гб: раздел 3 Гб + 1 Гб неразмеченная область
- запускаю MSDOS, все работает
- создаю раздел 3 Гб с началом с 64-го сектора на диске 4 Гб, параметры аналогичные: раздел 3 Гб + 1 Гб неразмеченная область
- копирую (посекторно, не файлы) MSDOS с рабочего раздела с началом в 63-ом секторе на раздел с началом в 64-ом секторе
- аналогично копирую MBR
- правлю в MBR начало раздела на 64-ый сектор
- запускаю MSDOS: ""FATAL: Could not read from the boot medium! System halted"
- вставляю загрузочный диск Windows 7, вылетает: "Press any key to boot from CD or DUD ...", Enter не нажимаю, система грузится в MSDOS
- если вставить загрузочный диск Windows XP, то все происходит так же, как и с загрузочный диском Windows 7

Что-то немного не доработано, решение где-то близко.
Последний раз редактировалось aaalekseyyy 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
aaalekseyyy
Даунгрейдер
 
Сообщения: 10
Зарегистрирован: 31 авг 2015, 20:09

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение aaalekseyyy » 31 авг 2015, 23:00

Кажется понял, в чем причина: досовский загрузочный код MBR ищет начало раздела в 63-ем секторе, а там пусто, поэтому; "FATAL: Could not read from the boot medium! System halted".
Если загрузку перехватывает загрузочный диск Windows 7 или Windows XP, и если мы не подтвердили загрузку с диска, то он передает загрузку загрузочному коду уже раздела, и MSDOS нормально грузится.
Причем для загрузчиков, и Windows XP, и Windows 7, уже не важно, с какого сектора начинается раздел, загрузка будет передана в тот раздел, который указан как активный в таблице разделов MBR.
Значит MSDOS может работать на разделе с началом с 64-го сектора.
Значит уже можно попробовать снимать досовский бутсектор bootsect.bak, устанавливать Windows 7 или Windows XP, и делать двойную загрузку.
Последний раз редактировалось aaalekseyyy 30 сен 2023, 23:40, всего редактировалось 1 раз.
aaalekseyyy
Даунгрейдер
 
Сообщения: 10
Зарегистрирован: 31 авг 2015, 20:09

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение uav » 31 авг 2015, 23:11

А что именно Вы правите в MBR? Там вроде начало раздела задаётся в CHS, т.е. Цилиндр Головка Сектор, соответственно, если на Вашем диске секторов на дорожке 63, то если Вы поставите 64-й сектор в это поле, то что-то может работать неправильно. Может, попробовать меньшее число? 32, к примеру.
Это во-первых.
Во-вторых, надо проставить в MBR поле Sectors preceding partition (смещение 454) - увеличив на единицу, если Вы смещаете раздел на один сектор вперёд.
В-третьих, надо поставить длину раздела меньше на один сектор (поле Sectors in partition 1 по смещению 458). Если раздел первый, конечно.
Ещё надо править boot-сектор самого раздела.
А именно, поменять поле Hidden sectors - смещение 28, оно должно быть равно полю Sectors preceding partition, если это первый раздел следующий непосредственно за MBR.
Со всеми этими манипуляциями у меня пошла загрузка MS-DOS 6.22 с виртуального диска 20 МБ под эмулятором.
Последний раз редактировалось uav 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 1915
Зарегистрирован: 22 дек 2008, 14:21

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение aaalekseyyy » 31 авг 2015, 23:53

Естественно поправил начало раздела в таблице разделов MBR: Смещение 1C6h (454d), исправил "3F 00 00 00" (63-ий сектор) на "80 00 00 00" (64-ый сектор).
Для того, что бы не ставить длину раздела меньше на один сектор за разделами было специально оставлено неразмеченное пространство, которое это все компенсирует.
Данные "Цилиндр, Головка, Сектор" не трогал. Не зная, как редактировать их. Для DOS, конечно, это важно. А для Windows XP и старше данные "Цилиндр, Головка, Сектор" вообще не имеют значения, хоть нулями забить, ничего не случится, драйвер напрямую связывается с микропрограммой диска, минуя данные MBR. Для них это уже досовский пережиток.
Последний раз редактировалось aaalekseyyy 30 сен 2023, 23:40, всего редактировалось 1 раз.
aaalekseyyy
Даунгрейдер
 
Сообщения: 10
Зарегистрирован: 31 авг 2015, 20:09

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение uav » 01 сен 2015, 00:05

80h - это 128 же.
Последний раз редактировалось uav 30 сен 2023, 23:40, всего редактировалось 1 раз.
Аватара пользователя
uav
Мастер Даунгрейда
 
Сообщения: 1915
Зарегистрирован: 22 дек 2008, 14:21

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение aaalekseyyy » 01 сен 2015, 00:23

Да, 128 получается, так diskpart форматнул. В принципе это не важно, главное что бы было кратно 4 кб.
Последний раз редактировалось aaalekseyyy 30 сен 2023, 23:40, всего редактировалось 1 раз.
aaalekseyyy
Даунгрейдер
 
Сообщения: 10
Зарегистрирован: 31 авг 2015, 20:09

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение aaalekseyyy » 01 сен 2015, 00:35

Если загрузку перехватывает загрузочный диск и передает ее загрузочному коду раздела, то все нормально.

А загрузочный код MBR не может найти загрузочный код раздела. Почему? Потому что в досовском загрузочном коде MBR ищется именно 63-ий сектор, или что-то не так в "Цилиндр, Головка, Сектор"?

FATAL: Could not read from the boot medium! System halted - Не удалось прочитать из загрузочного носителя! система остановлена.
Последний раз редактировалось aaalekseyyy 30 сен 2023, 23:40, всего редактировалось 1 раз.
aaalekseyyy
Даунгрейдер
 
Сообщения: 10
Зарегистрирован: 31 авг 2015, 20:09

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение 0ffer » 01 сен 2015, 12:08

А загрузочный код MBR не может найти загрузочный код раздела. Почему? Потому что в досовском загрузочном коде MBR ищется именно 63-ий сектор

MS-DOS Version 8 поддерживает FAT32 и разделы не более 512 Гб
загрузочный сектор может быть 128-ым и даже 2048-ым и загрузочный код MBR легко находит загрузочный код раздела, созданный с помощью SYS.COM помеченного в таблице разделов как активный
MSDOS 8.0 не чья-то сборка, сделан в Windows XP на приглашение создать загрузочную дискету.

Этот MSDOS 8.0 не загружается с HDD
Создатель RUFUS-а Why Windows doesn't let you create an USB MS-DOS startup disk
ссылается на мою страницу "WinMe DOS files from the diskcopy.dll to get them working on USB is actually trivial and documented here"
Здесь же можно скачать полную версию MS-DOS 8.00

MS-DOS 8.0 Patch for Windows XP, Vista or Seven
Здесь последние исправления IO.SYS
Последний раз редактировалось 0ffer 30 сен 2023, 23:40, всего редактировалось 5 раз(а).
0ffer
Мастер Даунгрейда
 
Сообщения: 139
Зарегистрирован: 23 янв 2011, 11:16
Железо: HP 6820s

Re: Как установить MSDOS в раздел с началом с 64-го сектора

Сообщение Nika » 01 сен 2015, 14:27

aaalekseyyy писал(а):А загрузочный код MBR не может найти загрузочный код раздела. Почему? Потому что в досовском загрузочном коде MBR ищется именно 63-ий сектор, или что-то не так в "Цилиндр, Головка, Сектор"?
Что-то вы совсем какие-то удивительные вещи говорите.
Берите, короче, дизассемблер, и дизассемблируйте 100 байт кода MBR.
В чём проблемы? Или это должен сделать кто-то ещё?
Последний раз редактировалось Nika 30 сен 2023, 23:40, всего редактировалось 2 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 853
Зарегистрирован: 16 окт 2013, 23:21

След.

Вернуться в Операционные системы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13