ReactOS флешка

Discussion in 'WASM.OS.DEVEL' started by paralvic, Jan 2, 2012.

  1. paralvic

    paralvic Пархоменко Александр Викторович

    Blog Posts:
    0
    Joined:
    Nov 20, 2010
    Messages:
    294
    Location:
    Нижний Новгород
    Есть шансы запустить?
    VirtualBox и иже с ним рулез, но как будет в реальности.
    Комменты гуру приветствуются.
     
  2. paralvic

    paralvic Пархоменко Александр Викторович

    Blog Posts:
    0
    Joined:
    Nov 20, 2010
    Messages:
    294
    Location:
    Нижний Новгород
    1. Разработчики порадовали, что NTFS не поддерживают по причине и FAT сойдет.
    Хорошо. Пусть в надежности проиграем (журналирование операций, ограничения доступа),
    зато производительности выиграем.

    в подтверждении этого скрин с лайфсиди.
    [​IMG]

    а это можно увидеть если пытаться установить систему
    [​IMG]

    значит форматируем флешку в FAT32
     
  3. paralvic

    paralvic Пархоменко Александр Викторович

    Blog Posts:
    0
    Joined:
    Nov 20, 2010
    Messages:
    294
    Location:
    Нижний Новгород
    Хорошо бы проверить, запускается ли комп с флешки.
    С прикрепленным содержимым он вывел
    Code (Text):
    1. NTLDR is missing
    2. Press any key to restart
    Значит не все так плохо.
     
  4. paralvic

    paralvic Пархоменко Александр Викторович

    Blog Posts:
    0
    Joined:
    Nov 20, 2010
    Messages:
    294
    Location:
    Нижний Новгород
    Берем исходник (интересующая часть Прикреплённый файл)
    http://www.reactos.org/ru/download.html

    фасм с ходу не компилирует, уродовать исходники не охота качаем инструменты
    http://sourceforge.net/projects/reactos/files/RosBE-Windows/i386/1.5.1/RosBE-1.5.1.1.exe/download
     
  5. paralvic

    paralvic Пархоменко Александр Викторович

    Blog Posts:
    0
    Joined:
    Nov 20, 2010
    Messages:
    294
    Location:
    Нижний Новгород
    Кто-нибудь знает чем компилировать?
    nasm или yasm?

    Все оказалось просто, нижеследующий батник проблем не выявил
    Code (Text):
    1. @echo off
    2. nasm.exe fat32.asm
    3. EXIT
    D:\Projects\RosBE\i386\bin
    В D:\Projects установил среду разработки ReactOS

    Сейчас настроим BPB и попробую запустить.

    Блин BIOS загрузчик читает только 512 байт
    Code (Text):
    1.  ; Здесь нужно настроить BPB под конкретную флешку (её структура в исходнике выше)
    2.  ; ВИНЧЕСТЕР ТРОГАТЬ НЕ СОВЕТУЮ
    3. main:
    4.         xor ax,ax               ; Setup segment registers
    5.         mov ds,ax               ; Make DS correct
    6.         mov es,ax               ; Make ES correct
    7.         mov ss,ax                               ; Make SS correct
    8.                 mov bp,7c00h
    9.         mov sp,7c00h            ; Setup a stack
    10.  
    11.  
    12. ; Displays a file system error message
    13. ; And reboots
    14. PrintFileSystemError:
    15.         mov  si,msgFreeLdr              ; FreeLdr not found message
    16.         call PutChars                                   ; Display it
    17.  
    18. Reboot:
    19.         mov  si,msgAnyKey                               ; Press any key message
    20.         call PutChars                                   ; Display it
    21.         xor ax,ax      
    22.         int 16h                                                 ; Wait for a keypress
    23.         int 19h                                                 ; Reboot
    24.  
    25. PutChars:
    26.         lodsb
    27.         or al,al
    28.         jz short Done
    29.         mov ah,0eh
    30.         mov bx,07h
    31.         int 10h
    32.         jmp short PutChars
    33. Done:
    34.         retn
    35. msgFreeLdr   db 'Starting..... ;)',0dh,0ah,0
    36. msgAnyKey    db 'Press any key to restart',0dh,0ah,0
    37.  
    38.  
    39.         times 509-($-$$) db 0   ; Pad to 509 bytes
    40.        
    41. BootPartition:
    42.                 db 0
    43. BootSignature:
    44.         dw 0aa55h       ; BootSector signature
    Вот он самый основной хелоуворлд ;)))
     
  6. paralvic

    paralvic Пархоменко Александр Викторович

    Blog Posts:
    0
    Joined:
    Nov 20, 2010
    Messages:
    294
    Location:
    Нижний Новгород
    extra boot code (вторые 512 байт) если читать внимательно нужно положить в 14 сектор.
    тогда получим:
    freeldr.sys not found
    Press any key to restart
    Press any key to restart
    а это причина дублирования сообщения
    Code (Text):
    1. Reboot:
    2.     mov  si,msgAnyKey               ; Press any key message
    3.     call PutChars                   ; Display it
    4.     xor ax,ax  
    5.     int 16h                         ; Wait for a keypress
    6.     int 19h                         ; Reboot
    7.  
    8. [вырезано]
    9. >   mov  si,msgAnyKey   ; Press any key message
    10.     call PutChars       ; Display it
    11.  
    12.         jmp  Reboot
     
  7. paralvic

    paralvic Пархоменко Александр Викторович

    Blog Posts:
    0
    Joined:
    Nov 20, 2010
    Messages:
    294
    Location:
    Нижний Новгород
    Тут такая заковыка. Материнская плата поддерживает эмуляцию USB диска,
    а ntsokernel похоже устанавливает свой драйвер, который не видит USB.

    Как-то единообразия компиляторов не наблюдается, не знаю как пересобрать модуль :dntknw:
    --------------------------------------------------------------------------------------------
    Подобные вещи к счастью уже реализованы!!!
    syslinux+memdisk

    ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/
    и справка на русском к нему:
    http://greenflash.su/Syslinux/Syslinux.htm
    memdisk создает образ, который можно скачать уже готовым.

    Нужно установить linux загрузчик на флешку,
    закинуть образ диска,
    и сконфигурировать

    syslinux.cfg
    Code (Text):
    1. DEFAULT ReactOS
    2. LABEL ReactOS
    3. KERNEL memdisk
    4. APPEND initrd=ReactOS.img
     
  8. paralvic

    paralvic Пархоменко Александр Викторович

    Blog Posts:
    0
    Joined:
    Nov 20, 2010
    Messages:
    294
    Location:
    Нижний Новгород
    Всем спасибо за внимание. Тема раскрыта!!!
    ;)
     
  9. valterg

    valterg Active Member

    Blog Posts:
    0
    Joined:
    Aug 19, 2004
    Messages:
    2,105
    paralvic
    Раз syslinux умеет грузить, значит и grub4dos сумеет. Но странно, на greenflash про это нет инфы :)
    Точнее есть, но написано что не работает. Попробую на днях.