Сделать bin файл заданного размера?

timefim

Какой прогой можно?

vall

dd if=/dev/zero of=1 bs=1 count=12345

timefim

Что это

stm7884696

это у чела клаву заело...
хрен поймет, пишет всякую фигню, причем уже не первый раз....
PS Надо наверно для нениксовых пользователей пояснять действия и применимость их для данной платформы...

vall

делает файлик "1" с 12345 нулевых байтов
а тебе что надо?
о!
надо так
read -p "size>" size && dd if=/dev/zero of=bin bs=1 count=${size}

Teosha

самому написать?

timefim

Есть файл iso 300 мегов, нужно из него сделать bin заданного размера >300.
Вопрос как?

timefim

Даже не знаю с какого края начать прогать

timefim

Под винды.

Teosha

так тебе не случайный файл, а образ перелить из одного формата в другой?
маунтишь и делаешь копию...разве не так?
а зачем >300 ?
ну кинуть на него ченить непонятное типа .dll с произвольным контентом

timefim

Да ты что, а можешь показать в каком там месте можно задать размер получаемого файла?

sergssk

вначале напихай в исошник какой-нибудь ерунды, затем конвертируй

timefim

Это и ежу понятно только проблемма в том что я не знаю как корелирует величина файла добавленного в исошник или бинник и окончательный размер файла.

a10063

метод научного тыка?

timefim

Попробывал, уж больно это натряжное занятие так как подгонять надо до байтно.

a10063

подсказка: тренироваться на файлах размером ~1Kb, а не ~300Mb

timefim

Ну как бы тоже достаточно тупо.
Может тогда кто знает где про этот самый bin почитать можно, а то несовсем ясно почему допустим файл iso весит 300 мегов а переконвертированый в bin 600.

Teosha

дай свой исо я тоже хочу попробовать =)

hoha32

Не может этот bin 600 весить. Максимум - 300 * (2352 + 96) / 2048.
ЗЫ: это при условии, что iso был не в сжатом состоянии. Вроде как мне однажды утверждали возможность такого - в таком случае, однозначно предсказать по размеру iso размер bin невозможно.

timefim

Проблемма еще заключается в том что у меня ее нет, поэтому нужет четкий метод как добитцо желаемого. Могу разве что размеры сказать
616 494 480 байт
616 165 200 байт

Teosha

хм, и как тогда проверить предложенный способ если неначем?

timefim

Ну дик если будет способ сделать из одного файла bin другой с разнецей в 329280 байт то этот метод скорее всего будет пригодет

timefim

Точно наврал, всетаки 500 и 600 но тоже разница не маленькая, а где ты эти цифирки взял?

Teosha

Пример такой.
есть iso
чтобы ее перевести использовалась прога winiso
при конвертировании iso в bin последний был в 1.14(примерно) раз больше.
следовательно чтобы получить из iso bin задаонного размера X надо:
добавить в исошку столько говна, чтобы ее размер стал равен Х/1.14
после этого эту исошку перевести в bin.
цифры вообще могут отличаться....

hoha32

цыфири я взял из man cdrecord, очевидно, это сандарт cd9660.
Стандартный размер блока - 2048 байт, но это в iso, в чистом виде на болванку дописывается ещё 400 байт всяких контрольных сумм на каждый блок - отсюда и 20% разницы в размерах образов.

ppplva

Откуда вообще возникла такая странная задача - получить образ диска строго фиксированного размера ?
И не подойдет ли вариант дописать его нулями до требуемого размера ?

vall

у меня такое чуство что если вконце дописать что угодно то всё будет работать как надо.
опередил
что-то я ещё не проснулся.

timefim

Откуда вообще возникла такая странная задача - получить образ диска строго фиксированного размера ?
Есть прога для которой нужно точное совпадение размеров двух файлов.
И не подойдет ли вариант дописать его нулями до требуемого размера ?
Как это сделать, может и подойдет?

timefim

Кстати если сделать bin сразу с помощью UltraIso то получается
616,141,680 Если же сначало Isoшник а потом переконвертировать в bin с Помощью WinIso то получается
616,494,480 интересно это глюк, или всетаки странность формата?

timefim

Ну так кто, нибуть знает как попсать нулями файл?

gopnik1994

можно сделать файл любого размера вплоть до 4Гб.
Работает максимально быстро - Ничего сама не пишет, все средствами ОС.
Под семейством 9х просто переписывается FAT (в конце файла данные, как они были на диске,т.е. мусор, инфа из удаленных файлов и т.д. под семейством NT ОС еще заполняет новое пространство нулями.
Использует фичу (?) винды:
условный код:

handle = fopen(filename, "w");
fseek(handle, newSize);
if (oldSize >= newSize) then
ftruncate(handle);
else
fwrite(handle, "\0");
fclose(handle);

Все
После такого кода файл становится нужного размера.

timefim

Супер, просто нет слов.

dimabel

Работает очень быстро на NTFS (оно в принципе не может так быстро писать на диск) и очень медленно на FAT16/32 (видимо нули прописывает).
А вот про поведение Win9x впервые узнал - надо поэкспериментировать, только где её сейчас ставить, кроме как на VMWare...
Оставить комментарий
Имя или ник:
Комментарий: