User Tag List

Страница 76 из 278 ПерваяПервая ... 727374757677787980 ... ПоследняяПоследняя
Показано с 751 по 760 из 2779

Тема: Xpeccy

  1. #751

    Регистрация
    26.03.2005
    Адрес
    Ivanovo
    Сообщений
    640
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    Выдернуто из контекста, строки перед этим тоже важны. При чтении сектора образ открывается на чтение; если не открылся - его нет, делается попытка его создать и открыть снова; если и вторая попытка провалилась - в этом месте его нельзя создать.
    Это всё ещё будет пересматриваться, я только добрался до интерфейса между компом и самим HDD, по этому поводу...
    Ну вот этот код вообще суров:
    Код:
             FILE* file = fopen(dev->image,"rb");
    		if (file == NULL) {
    			file = fopen(dev->image,"wb");
    			if (file) {
    				fclose(file);
    				file = fopen(dev->image,"rb");
    				if (file == NULL) {
    Не понял зачем ты после неудачного rb пытаешься создать файл, потом в случае удачи закрываешь и опять открываешь и после этого успешно забиваешь на дескриптор и не закрываешь его.
    Код:
    Upon successful completion fopen(), fdopen() and freopen() return a FILE pointer.  Otherwise, NULL is returned and errno is set to indicate the error.
    ИМХО тут не надо ничего создавать. Смог открыть - все ок. Не смог - сказал. Создавалка файла должна быть отдельной. Чую что именно тут возникает проблема с файлом с 0 размера именем, появляющимся бесконечно.
    И насколько я вижу это чтение сектора. Я-бы не стал тут постоянно дергать файл туда-сюда это дичайший оверхед и лочка всей проги. Открой его 1 раз и все. Причем надо сразу открывать на w+b чтобы и чтение работало и запись.
    PS: для чеков наличия файла могу посоветовать int stat(const char *file_name, struct stat *buf);. Работает значительно быстрее и выдает очень нехило полезной инфы. Опять-же лучше 1 раз ее при ините заюзать и все вместо постоянных
    Код:
    fseek(file,0,SEEK_END);
    eps = ftell(file);
    . Они капец какие тормозные. Ну или при реконфиге.
    PS2: сорри за суровую критику, но блин привычка. 8)

  2. #751
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #752

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Q-Master Посмотреть сообщение
    PS2: сорри за суровую критику, но блин привычка. 8)
    Да не, HDD там уже больше года висел и не работал как следует. Всё равно собрался его перелопачивать, так что критика к месту.
    Все любят гипножабу

  4. #753

    Регистрация
    26.03.2005
    Адрес
    Ivanovo
    Сообщений
    640
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    Да не, HDD там уже больше года висел и не работал как следует. Всё равно собрался его перелопачивать, так что критика к месту.
    Чот сходу у меня не вышло создать образ понятный пентеве.

  5. #754

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Q-Master Посмотреть сообщение
    Чот сходу у меня не вышло создать образ понятный пентеве.
    Создаём пустой файл на 512М
    dd if=/dev/zero of=hdd.bin bs=1M count=512
    Создаём на нём 1 раздел:
    /sbin/fdisk hdd.bin
    o - создать чистую табилицу разделов
    n - создать раздел (primary, начало на 2048 блоке, конец в конце)
    t - сменить тип, вводишь C (win95 fat32 lba)
    w - записать и выйти
    Потом создаёшь образ раздела на 1М меньше образа винта (2048 блоков по 512 байт):
    dd if=/dev/zero of=part.bin bs=1M count=511
    Форматируешь его в FAT:
    /sbin/mkfs.vfat part.bin
    И запихиваешь в образ HDD со смещением 1М:
    dd if=part.bin of=hdd.bin seek=2048
    И вот. Может, есть не такой извращённый способ, но я только его раскопал. Монтировать раздел нужно опять же со смещением 1М:
    mount hdd.bin -o loop,offset=$((1024*1024)) /path/to/dir

    PS:А можно найти маленький винт, разметить и отформатировать его и снять побайтовый образ тем же dd
    PPS: PentEvo не работает с винтами, которые не умеют в LBA, так что надо в настройках поставить галку LBA и вбухать туда число секторов на всём винте (объём в байтах / 512)
    Последний раз редактировалось SAM style; 23.05.2013 в 10:45.
    Все любят гипножабу

  6. #755

    Регистрация
    26.03.2005
    Адрес
    Ivanovo
    Сообщений
    640
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    PPS: PentEvo не работает с винтами, которые не умеют в LBA, так что надо в настройках поставить галку LBA и вбухать туда число секторов на всём винте (объём в байтах / 512)
    Забавно, но у меня оно вообще повесилось после request hdd info

  7. #756

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Q-Master Посмотреть сообщение
    Забавно, но у меня оно вообще повесилось после request hdd info
    Даже евовское меню не вылезло?
    Все любят гипножабу

  8. #757

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    build 20130524 (git only)
    Файлы образов (максимум 3 - SD-карта, винт мастер, винт слэйв) остаются открытыми в режиме "rb+" в рамках текущего профиля. При переключении на другой профиль они закрываются, открываются образы с нового профиля. Мне видится так лучше, чем постоянно держать открытыми все файлы со всех профилей.
    И да, чтобы успешно открыться, они должны существовать. Край определяется по LBA/CHS. Попытка чтения за пределами файла, но в пределах объёма накопителя, выдаст FF на весь сектор, запись - расширит файл до нужного размера.
    Последний раз редактировалось SAM style; 24.05.2013 в 18:56.
    Все любят гипножабу

  9. #758

    Регистрация
    26.03.2005
    Адрес
    Ivanovo
    Сообщений
    640
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    Даже евовское меню не вылезло?
    Вообще висит наглухо.

    ---------- Post added at 16:42 ---------- Previous post was at 16:40 ----------

    Цитата Сообщение от SAM style Посмотреть сообщение
    build 20130524 (git only)
    Файлы образов (максимум 3 - SD-карта, винт мастер, винт слэйв) остаются открытыми в режиме "rb+" в рамках текущего профиля. При переключении на другой профиль они закрываются, открываются образы с нового профиля. Мне видится так лучше, чем постоянно держать открытыми все файлы со всех профилей.
    И да, чтобы успешно открыться, они должны существовать. Край определяется по LBA/CHS. Попытка чтения за пределами файла, но в пределах объёма накопителя, выдаст FF на весь сектор, запись - расширит файл до нужного размера.
    А почему rb+? скорее надо wb+ чтобы не переоткрывать для записи каждый раз.
    Ну и совершенно правильно что один раз на профиль открываются они.

  10. #759

    Регистрация
    28.02.2005
    Адрес
    Великий Новгород
    Сообщений
    2,087
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    98 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Q-Master Посмотреть сообщение
    А почему rb+? скорее надо wb+ чтобы не переоткрывать для записи каждый раз.
    r+ - read/update: Open a file for update (both for input and output). The file must exist.
    w+ - write/update: Create an empty file and open it for update (both for input and output). If a file with the same name already exists its contents are discarded and the file is treated as a new empty file.
    При w+ содержимое существующего файла убивается

    А с винтом... единственная идея - попробовать опять удалить cmos от этого профиля.
    Все любят гипножабу

  11. #760

    Регистрация
    26.03.2005
    Адрес
    Ivanovo
    Сообщений
    640
    Спасибо Благодарностей отдано 
    5
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    1 сообщение
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SAM style Посмотреть сообщение
    r+ - read/update: Open a file for update (both for input and output). The file must exist.
    w+ - write/update: Create an empty file and open it for update (both for input and output). If a file with the same name already exists its contents are discarded and the file is treated as a new empty file.
    При w+ содержимое существующего файла убивается

    А с винтом... единственная идея - попробовать опять удалить cmos от этого профиля.
    Уже пробовал. Не помогает. Что-то не нравится пзухе с винчестером и оно вешается.

Страница 76 из 278 ПерваяПервая ... 727374757677787980 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)

Ваши права

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