OSDev

для всех
Текущее время: 25 апр 2024, 12:47

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Образы дисков в Bochs
СообщениеДобавлено: 05 июл 2012, 10:21 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
stlw писал(а):
Ты когда бинарник делал, что имел в виду ? Что это диск ? Если да - то с какой геометрией ?
Если нет - то что это тогда ?

Он имел ввиду ФЛЕШКУ. Она, как известно, без геометрии, если не брать в рассчёт эмуляции геометрии БИОСом.
Кстати, мне тоже интересно, как можно заставить Бокс работать с флеш-имиджами без постоянных кликов "Continue" на замечание о несоответствии размера образа указанной геометрии? Т.е. сделать флеш-загрузку.

stlw писал(а):
Сразу видно, что ты FIDO софт в детстве не настраивал. Вспомнил бы конфиги T-mail и Golded с ностальгией :)

Оооо, "Голый дед"! Как сейчас вижу... :D

Отделено отсюда.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 05 июл 2012, 11:03 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 209
Цитата:
Кстати, мне тоже интересно, как можно заставить Бокс работать с флеш-имиджами без постоянных кликов "Continue" на замечание о несоответствии размера образа указанной геометрии? Т.е. сделать флеш-загрузку.

Можно подобрать параметры диска (16 голов, 63 сектора, а дальше подбираем нужное кол-во цилиндров) и с помощью dd создать образ нужного размера, потом работать с ним, например, через loop устройство.
У меня исторически сложилось что сначала была флешка, а потом уже образ, так что тупо fdisk -l применил к флешке, списал параметры оттуда, а потом с помощью dd снял образ. Bochs с таким образом молча и спокойно работает.

Для TC на всякий случай напомню что лучше качать из SVN актуальную версию (trunk), ибо давно релиз был, куча фиксов была с тех пор.

[ot] Напомнили тут про фидо, заставили взгрустнуть. До 11 класса не было у меня нормального модема (примерно классу к 9му появился PCI софт-модем), а потом уехал учиться в другой город, а в общаге-то телефона нет. Так и не приобщился.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 05 июл 2012, 12:31 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Nable писал(а):
Можно подобрать параметры диска (16 голов, 63 сектора, а дальше подбираем нужное кол-во цилиндров)

Да я так и делаю. Но тут следующий нюанс. Если я беру не синтетический образ (с ним никаких проблем, какой надо, такой и сделаю), а посекторный образ флешки, то он практически никогда не вписывается в геометрию. Соответственно или надо каждый раз кликать в Боксе "Continue" на замечание о несоответствии размера, либо расширять образ до круглого размера, но тогда возникают другие проблемы, например, таблица разделов GPT теряет свою валидность. Кстати, и в первом случае есть проблемы с GPT, только виртуальные.
Поэтому я вижу один правильный выход: поддержку флеш-образов в боксе. Можно с явным указанием количества секторов (без геометрии!), а лучше будет, если будет ещё и вариант "Авто", когда бокс сам рассчитает кол-во секторов исходя из размера файла.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 05 июл 2012, 16:34 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Yoda писал(а):
ata0-master: type=disk, path=Malina.bin, cylinders=8, heads=16, spt=63
Если не указывать параметр cylinders, бокс сам его вычислит на основе размера образа. Единственное требование к образу - его размер должен быть кратен 512 байтам. На границу цилиндра можно не выравнивать. Параметр cylinders имеет смысл указывать, когда нужно иметь большой диск на основе небольшого образа или наоборот когда нужно ограничить размер диска N-ым количеством цилиндров, даже если образ больше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 05 июл 2012, 22:40 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Точно. Но для флеш-образа это не помогает. Geometry autodetection failed.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 05 июл 2012, 23:10 

Зарегистрирован: 26 мар 2012, 17:32
Сообщения: 209
Вообще говоря, truncate в помощь, задаёшь нужный размер файла и я хз с чего бы вдруг разметка становилась невалидной.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 06 июл 2012, 04:00 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Я уже перенёс список файлов от фат32 и загрузку файлов в память у которых есть кодек и вывод их на экран в окне. У меня локаоьные диски с файловой системой добавляются при создании физического и чтении его первого сектора как у флешек и дисков в свой буфер в 512байт находяшийся после 128байт для объекта, т.е. 640, а для лок. диска 128+1024, для файла 256 на один файл.
Система может создать много физ. и лок. дисков, но сейчас создаются только SATA = 0x00000101, но если их несколько система поймёт и все прочитает.
Лок. диски только с фат32 и нтфс, у нтфс просмотра списка файлов ещё нету.
Файлы и папки теперь вывожу разным цветом.
Бинарник с просмотром файлов и загрузкой txt bmp обнавил и теперь он кратен 512байт
Сейчас пишу доку про свои объекты и думаю о создании нормальных кодеках и нтфс и доделываю флешки.
Алгоритм создания кодеков готов, нужны форматы файлов для их вывода.
На данном этапе собираюсь открыть исходники желающим вступить в команду разработчиков, т.к. движок готов и его формат не будет меняться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 06 июл 2012, 10:33 

Зарегистрирован: 10 май 2007, 11:33
Сообщения: 1206
Yoda писал(а):
Точно. Но для флеш-образа это не помогает. Geometry autodetection failed.
Не знаю. У меня при не выровненном на границу цилиндра размере образа (специально добавил один доп. сектор) максимум что появляется, так это одна доп. строка в логе (см. вторую строку):
Код:
00000000000i[HD   ] ata0-0: autodetect geometry: CHS=3/16/63
00000000000i[HD   ] ata0-0: extra data outside of CHS address range

Походу это был бы потерянный сектор при CHS-обращении к харду. Я думал, что бокс наоборот расширит размер диска. Но в принципе все логично.


Последний раз редактировалось phantom-84 06 июл 2012, 10:47, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 06 июл 2012, 10:44 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Nable писал(а):
Вообще говоря, truncate в помощь, задаёшь нужный размер файла и я хз с чего бы вдруг разметка становилась невалидной.

Поясняю. Вот есть у меня реальная флешка. Её количество секторов не вписывается ни в какую геометрию. Я разбиваю её на GPT. При этом по стандарту в последних секторах носителя хранится резервная копия таблицы разделов, а в основной копии в начале диска указывается сектор с резервной копией заголовка GPT (последний сектор диска).
Что произойдёт, если я произвольно увеличу размер образа?
Вариант 1. Я не меняю никаких полей, просто дописываю нули. В таком случае резервной копии на месте нет, а указатель на сектор с резервной копией указывает не на последний сектор диска.
Вариант 2. Я вставляю пустые сектора перед резервной копией. В таком случае я должен поменять указатель в основной копии, но при этом становится невалидной контрольная сумма основной копии.
Я согласен, что оба случа не фатальны. Но они важны, если работаешь именно с файловыми системами и разметками дисков.

phantom-84 писал(а):
У меня при не выровненном на границу цилиндра размере образа (специально добавил один доп. сектор) максимум что появляется, так это одна доп. строка в логе

Не знаю, может быть у нас разные версии Бокса. У меня последняя - 2.5.1.

Код:
00000000000i[HD ] ata0-0: extra data outside of CHS address range

Вооот. Он НЕ ВОСПРИНЯЛ этот дополнительный сектор. Т.е. его кагбэ не существует. А так быть не должно.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Версия 1
СообщениеДобавлено: 06 июл 2012, 10:50 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Nable писал(а):
Вообще говоря, truncate в помощь

Да, ещё. Мне важно сохранить размер файла, чтобы после экспериментов в Боксе я мог залить образ обратно на флешку и погонять его в реальных условиях.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB