Загрузочная флешка
2) Как сделать загрузочную флешку из образа? причем образ может быть меньше реального размера флешки. Пытался использовать CreateFile('\\.\буква_диска:', ...), но это открывает том а не диск, поэтому доступа к 0-ому сектору нет. Может кто-нибудь знает программу, которая это умеет делать (наподобие rawwritewin, только для флешек)?
Только что пробывал вариант:
1) Открываем с помощью hex редактора (у меня это HxD) туже флешку.
2) Полностью вся флеш в твоей власти)
Знаю конечно не удобно так записывать.. Но сначало попробуй будет ли вообще работать так. А потом можно и самому программу для записи на флеш написать.
Насчет головок: у флешек вообще то линейная адресация (у жестких дисков кстати тоже) поэтому BIOS преобразовывает для всех не флоппи дисков это в линейный адрес, а устройство уже само разбирается. Поэтому термин "головка" уже утратил свой физический смысл. Мой BIOS поддерживает работу с флешками, поэтому проблем быть не должно... Порекомендуйте лучший на ваш взгляд редактор дисков (а лучше аналог rawwritewin для флешек).
Цитата:
размер кластера - 512 байт
Размер кластера FAT. У меня не FAT, у меня только физические сектора, которые я в кластеры объединять не собираюсь. Важен именно размер физического сектора, например на дискете, жестком диске, флешке он равен 512 байтам, а вот на CD - 2048 байт.
МБР у тебя универсальный ?
Загрузчик от дискеты может не подойти по двум причинам:
1) флешку лучше размечать как жесткий диск, с MBR и разделами, а загрузчик флоппика может не учитывать то, что он (вместе со своим разделом) находится не в начале диска (у меня например так);
2) если флешка размечена как жесткий диск, то и загрузчик там используется, аналогичный жесткому диску (фактически универсальный и для флешки, и для жесткого диска), а там сейчас прежде всего применяется EDD (int 13h/ah=4xh) с его линейной адресацией и лишь как запасной вариант CHS-сервис с его трехмерной адресацией.
Я это говорю к тому, что конечно можно иметь универсальный загрузчик и для флоппика и для флешки/жесткого диска, но лучше все-таки иметь два разных загрузчика.
Хотя если образ стандартного флоппика 80х18х2 вписать в самое начало флешки и выставить соотв. опцию в BIOS Setup, по идее все должно работать, но так сейчас почти никто не делает.
Цитата:
Хотя если образ стандартного флоппика 80х18х2 вписать в самое начало флешки и выставить соотв. опцию в BIOS Setup, по идее все должно работать, но так сейчас почти никто не делает.
Вот я и спрашиваю с помощью какой программы это можно сделать? мне это нужно для проверки... Просто на том компьютере на котором хочется загрузиться нет флоппи дисковода, а поскольку проверок будет много не хочется постоянно перезаписывать CD-RW (к тому же на CD рамер сектора как раз 2048 байт и это приведет к дополнительным проблемам).
В HxD выбери физический диск и настрой флажок, разрешающий запись на диск. Только лучше предварительно сохранить MBR.
0) Это условно-бесплатная программа
1) Записать на флешку получилось только с 3 попытки.
2) Начальный загрузчик загружается только один раз после чего затирается.
3) Мой загрузчик у меня так и не загрузился (показался логотип FlashBoot и все).
4) Там грузится Linux и эмулирует Floppy, а мне это не нужно (тем более когда я перейду в PM все равно вся эмуляция отвалится).
Воспользовался HxD. Все получилось. Всем большое спасибо (на репутации ответивших это тоже отразится).
Для того чтобы загружаться с флешки как с флоппика, но при этом не потерять традиционную разметку флешки и возможность ее полноценного использования, по идее можно сделать универсальную флешку FDD/HDD со след. структурой:
1) бутсектор с двойственным загрузчиком, содержащий и PT, и BPB+ флоппика, причем если с флешки планируется загрузка лишь как с флоппика, то достаточно к загрузчику флоппика прикрепить только Partition Table и, возможно, Volume ID (4+2 байт) без изменения кода самого загрузчика (если конечно для этого есть место - у меня например загрузчик флоппика занимает сектор под завязку - нет ни одного свободного байта), а для двойственной загрузки уже потребуется писать специальный загрузчик - как именно он должен себя вести при каждой конкретной загрузке, можно определить исходя из номера диска, поступившего от BIOS;
2) образ флоппика без бутсектора;
3) раздел (или даже разделы) флешки.
Нужно учитывать, что это будет работать, если в процессе загрузки не используется собственный драйвер флоппика, а лишь исключительно средства BIOS (у меня например используется драйвер). При обычном использовании образ флоппика не должен быть виден, т.к. в нормальных ОС менеджер томов выполняет детект первым и лишь в случае неудачи у файловых систем имеется возможность детектить свои тома в самом начале флешки (у меня например так). Единственное, что нужно сделать, это подправить содержимое PT для первого/единственного раздела (он явно будет начинаться чуть дальше) и переформатировать его.
...между 2 и 3 может потребоваться добавление неиспользуемой области для выравнивания первого/единственного раздела, т.к. раздел должен начинаться хотябы на границе "дорожки" (если уж не "цилиндра").