Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Pendrive - odczyt/zapis w systemie DOS

Gelip 02 Dec 2013 13:33 4812 4
  • #1
    Gelip
    Level 33  
    Zrobiłem kartę startową SD 16MB w czytniku USB z systemem MS-DOS za pomocą narzędzia USB Disk Storage Format używając do tego dyskietki startowej Win9x. Przetestowałem działanie na kilu komputerach uruchamiając komputer za pomocą opcji USB w biosie i działa jak trzeba z możliwością zapisu :-)

    Mam jednak pewien problem. Jak wiadomo starsze komputery nie mają opcji bootowania z USB w biosie. Wówczas rozwiązaniem problemu jest użycie boot menedżera PLOP który potrafi bootować z USB. Wszystko OK ale po wystartowaniu komputera z tego samego USB za pomocą menu USB w PLOP pliki są tylko do odczytu i nie da się nic zapisać. Prawdopodobnie jest to ograniczenie PLOP'a, który zawiera sterowniki USB tylko do odczytu. Sterowniki te można wyłączyć za pomocą narzędzia PLPDISD.EXE od autora programu PLOP dodając odpowiedni wpis w CONFIG.SYS lub w AUTOEXEC.BAT a następnie można załadować inne sterowniki DOS USB.



    Postanowiłem wykorzystać sterowniki DOS USB z USB Flash Memory w systemie DOS. Wrzuciłem na USB pliki: PLPDISD.EXE, USBASPI.SYS i NJ32DISK.SYS oraz plik CONFIG.SYS o takiej zawartości:
    Code:
    [menu]
    
    menuitem=PLOP,Disable PLOP drivers & load other DOS USB drivers
    menuitem=BIOS,Boot without DOS USB drivers (boot from BIOS)
    menudefault=PLOP,30
    menucolor=7,0

    [PLOP]
    DEVICE = PLPDISD.EXE
    DEVICE = USBASPI.SYS
    DEVICE = NJ32DISK.SYS /R
    LASTDRIVE=Z

    [BIOS]


    Niestety po wybraniu menu numer 1 (PLOP) działa tylko pierwsze polecenie czyli DEVICE = PLPDISD.EXE i nie ładuje pozostałych dwóch sterowników:
    Pendrive - odczyt/zapis w systemie DOS
    Żadne pliki na pewno nie są uszkodzone - sprawdzałem kilka razy. To raczej jest coś nie tak z konfiguracją pliku CONFIG.SYS. Jak to poprawić? Próbowałem użyć też AUTOEXEC.BAT ale nic mi nie wychodzi :-(
  • #3
    Gelip
    Level 33  
    Wersja USB z grub4dos (grldr)

    Pobieramy: grub4dos 1.1, USB Format, Panasonic 2.27 USBASPI.SYS, Novac 2.00 DI1000DD.SYS, PLPDISD.EXE, Virtual Floppy Drive 2.1
    • za pomocą vfd tworzymy wirtualny napęd FDD
    • formatujemy go w Windows zaznaczając opcję Utwórz dysk startowy systemu MS-DOS
    • usuwamy pliki zostawiając tylko COMMAND.COM, IO.SYS i MSDOS.SYS
    • wrzucamy pliki DI1000DD.SYS, USBASPI.SYS i PLPDISD.EXE
    • tworzymy plik CONFIG.SYS o treści:
      Code:
      [menu]
      
      menuitem=PLOP,Disable PLOP drivers & load other DOS USB drivers
      menuitem=BIOS,Boot without DOS USB drivers (boot from BIOS)
      menudefault=PLOP,5
      menucolor=7,0

      [PLOP]
      LASTDRIVE=Z
      DEVICE = PLPDISD.EXE
      DEVICE = USBASPI.SYS
      DEVICE = DI1000DD.SYS

      [BIOS]
    • zapisujemy obraz dyskietki jako DOS.IMG
    • za pomocą programów USB Format i grubinst_gui przygotowujemy bootowalny pendrive jak w tym poradniku
    • na pendrive'a wrzucamy plik DOS.IMG do folderu IMAGES oraz do głównego katalogu GRLDR i MENU.LST o treści:
      Code:
      map --mem /images/dos.img (fd0)
      
      map --hook
      chainloader (fd0)+1
      rootnoverify (fd0)
    Teraz można podłączyć nasz pendrive, uruchomić komputer z PLOP (FDD, HDD, CD lub jako opcja ROM z BIOS) i wybrać USB:
    Pendrive - odczyt/zapis w systemie DOS
    Jeśli uruchomiliśmy komputer przez PLOP USB wybieramy menu nr.1 a jeśli przez BIOS USB to menu nr.2:
    Pendrive - odczyt/zapis w systemie DOS Pendrive - odczyt/zapis w systemie DOS
  • #4
    Gelip
    Level 33  
    Wersja USB z MS-DOS (io.sys)

    Pobieramy: DEVLOAD.COM, MHDD Floppy Image
    • tworzymy archiwum DOS.ZIP o zawartości:
      COMMAND.COM, DEVLOAD.COM, DI1000DD.SYS, PLPDISD.EXE, USBASPI.SYS
    • za pomocą vfd tworzymy wirtualny napęd FDD
    • uruchamiamy program mhdd32ver4.5floppy.exe który automatycznie rozpakuje pliki na napęd A:
    • za pomocą USB Format formatujemy pendrive'a wykorzystując pliki systemowe z napędu A:. Po tej operacji na pendrive'ie powinny być 3 pliki: COMMAND.COM, IO.SYS i MSDOS.SYS
    • wrzucamy na pendrive'a archiwum DOS.ZIP do folderu IMAGES i zmieniamy właściwości na Tylko do odczytu
    • z napędu A: kopiujemy pliki FINDRAMD.EXE, PKUNZIP.EXE, RAMDRIVE.SYS, SETRAMD.BAT na USB
    • tworzymy pliki startowe:
      CONFIG.SYS:
      Code:
      [menu]
      
      menuitem=PLOP,Disable PLOP drivers & load other DOS USB drivers
      menuitem=BIOS,Boot without DOS USB drivers (boot from BIOS)
      menudefault=PLOP,5
      menucolor=10,0

      [PLOP]
      files=10
      buffers=10
      dos=high,umb
      stacks=9,256
      devicehigh=ramdrive.sys /E 2048
      lastdrive=z

      [BIOS]

      AUTOEXEC.BAT:
      Code:
      @echo off
      
      goto %config%

      :PLOP
      set DIRCMD=/O:N
      set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
      set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
      call SETRAMD.BAT %LglDrv%
      path=%RAMD%:\

      %RAMD%:
      md IMAGES
      cd \IMAGES
      copy C:\IMAGES\DOS.ZIP . > nul
      copy C:\PKUNZIP.EXE . > nul
      PKUNZIP -d DOS.ZIP > nul
      del DOS.ZIP
      del PKUNZIP.EXE
      echo.
      echo The USB drivers was successfully unpacked to  %RAMD%:\IMAGES
      echo.

      set comspec=%RAMD%:\command.com
      set CDROM=
      set LglDrv=

      PLPDISD
      DEVLOAD USBASPI.SYS
      DEVLOAD DI1000DD.SYS
    Pendrive - odczyt/zapis w systemie DOS
    Wersja ta jest bardziej uniwersalna ponieważ funkcja Boot USB w biosach starszych komputerów lepiej działa z pendrive'em bootowalnym w trybie MS-DOS niż grub4dos. Boot z napędu MS-DOS wymaga przeważnie ustawienia w biosie USB-HDD a grub wymaga USB-ZIP choć z tym może być też różnie.
    Do poprawki: Jeśli wybierzemy z menu startowego opcję 2 to komputer uruchomi się ale z ostrzeżeniem iż nie znaleziono etykiety (BIOS): Label not found. Można dodać na końcu w pliku AUTOEXEC.BAT wpis:
    Code:
    :BIOS
    wówczas po wybraniu z menu opcji 1 bootowanie zakończy się błędem:
    Code:
    Not ready reading drive C
    
    Abort, Retry, Fail?
    ale po naciśnięciu klawisza 'A' zgłasza się interpreter ze ścieżką w katalogu IMAGES ramdysku.
    Pendrive - odczyt/zapis w systemie DOS Pendrive - odczyt/zapis w systemie DOS
  • #5
    Gelip
    Level 33  
    UWAGA! Po wielu testach okazuje się, że można załadować sterowniki DOS USB bez wyłączania sterowników PLOP przynajmniej w wersji 2.27. Tym samym można usunąć z konfiguracji program PLPDISD.EXE i linię PLPDISD w AUTOEXEC.BAT

    Zauważyłem też iż w wersji MS-DOS (io.sys) na niektórych komputerach z USB 1.1 uruchamianie może zatrzymać się po utworzeniu ramdysku i nie wiem czym jest to spowodowane, pojawia się migający kursor '_':
    Code:
    Microsoft RAMDrive version 3.06 virtual disk F:
    
        Disk size: 2,048k
        Sector size: 512 bytes
        Allocation unit: 2 sectors
        Directory entiries: 64
    _
    Po wyciągnięciu pendrive'a z portu USB pojawiają się dwa komunikaty oraz znak zachęty C:\>:
    Code:
    Bad command or file name
    
    Bad command or file name

    C:\>

    Na USB 2.0 działa dobrze.

    Zalecam jednak używanie wersji na bazie grub4dos - jest bardziej stabilna.