Jak utworzyć dyskietkę/cd bootującą plik tekstowy?


(Piotrek Płatek) #1

Witam, chciałbym utworzyć dyskietkę, ewentualnie cd tak, aby komputer startował od razu z niej i wyświetlał utworzony przeze mnie plik tekstowy.

Liczę na Was :wink:

Pozdro


(Drobok) #2

czy

Pomyśl, pokaż co masz, i zapytaj o konkretną informację jakiej nie wiesz ;p


(floyd) #3

Na takiej dyskietce oprócz tego pliku tekstowego musiała by być choćby najbardziej okrojona wersja jakiegoś systemu operacyjnego np. DOSu.


(Piotrek Płatek) #4

Możecie doradzić jak zrobić, aby po kliknięciu dowolnego przycisku wykonywało się polecenie exit

-- Dodane 27.10.2010 (Śr) 17:39 --

nie chodzi o pause, bo ono daje komunikat


(floyd) #5

Najprostsze zrobienie dyskietki startowej z DOSem:

Umieszczamy dyskietkę 3.5 cala w stacji dyskietek i klikamy prawym klawiszem myszki ns stacji dysków A: Wybieramy z listy formatuj i zaznaczamy opcję: Utwórz dysk startowy.

(Jeżeli chcemy utworzyć płytę CD jako dysk startowy, to robimy obraz dyskietki 3.5 cala np. w programie UltraISO i nagrywamy ten obraz na płytę CD.)

Umieść swój plik tekstowy np. o nazwie: info.txt na dyskietce z której uruchamiasz system.

Po ukazaniu się znaku zachęty wpisz :type info.txt

Jeżeli tekst ma otwierać się automatycznie, to musisz jeszcze utworzyć plik o nazwie: autoexec.bat

W pliku autoexec.bat umieść komendę: type info.txt

Prawdopodobnie Twój system nie będzie widział Twoich twardych dysków ponieważ są przypuszczalnie sformatowane w trybie NTFS czyli wszystkie pliki na których chcesz operować muszą być na dyskietce.

O jakie exit Ci chodzi. Wyjście z DOSa? No, to musisz ponownie uruchomić komputer.


(Piotrek Płatek) #6

Dobrze, utworzyłem dyskietkę, wyświetla mi tekst , który chcę.

autoexec.bat

@echo off

mode con codepage...

mode con codepage...

keyb pl,,

@echo Pierwszy wiersz tekstu

@echo Drugi wiersz tekstu


//niech nacisniecie przycisku daje exit

I wyświetla tekst za pomocą echo.

Chodzi mi o to, czy dałoby radę zrobić tak, żeby po naciśnięciu dowolnego przycisku nie wyświetlało _A:_ w oczekiwaniu na polecenie, tylko żeby wykonać exit, uruchomić ponownie kompa.

Ewentualnie można użyć pause, jednak on wyświetla "press any key...", a wolałbym żeby użytkownik zobaczył tylko te kilka linijek tekstu.

Pozdrawiam


(roobal) #7

Na dyskietkę można upakować też Linuksa ale skoro masz już dyskietkę startową, ponieważ nie pisałem nigdy skryptów dla DOSa, to podpowiem tylko tyle, że w powłoce linuksowej, to co chcesz osiągnąć napisałbym taki skrypt:

#!/bin/sh

(Piotrek Płatek) #8

roobal , dziekuje, że otworzyłeś mi oczy :slight_smile: przecież pause nie rebootuje :confused:

Ale tyle, że w win wiem o istnieniu pliku autoexec, o tyle nie mam pojecia jak to działa w linuksie :confused:

Na bootdisk howto znalazłem coś takiego:

Chodzi mi o to, żeby jedyny efekt jaki osiągnąć to wyświetlić parę linijek tekstu i rebootnąć.

W jaki sposób zedytować tak pocket linux ?


(roobal) #9

Tu chodzi akurat o skrypty startowe (usługi systemu), które są wykonywane podczas startu systemu, natomiast Ty chcesz wyświetlić tekst/wykonać skrypt po załadowaniu się Linuksa, wtedy można go dodać do /etc/rc.local, podajesz w rc.local tylko ścieżkę do właściwego skryptu i powinien się wykonać po zalogowaniu do systemu.

Powinien :slight_smile:

Pozdrawiam!


(floyd) #10

Tu masz gotowy pliczek resetujący komputer (program symuluje naciśnięcie trzech klawiszy CTRL+ALT+DEL). Plik umieszczamy na dyskietce startowej i wywołujemy z autoexec.bat

reboot


(Kpc21) #11

A w DOS-ie komenda na zamknięcie systemu nie brzmiała po prostu "exit"? Pod Windows wygląda to tak: "shutdown /s /t 0", jednak pod DOS-em to nie zadziała.


(Simplex111) #12

W DOS-ie rzeczywiście istniała komenda (polecenie wewnętrzne) exit , ale nie służyła do zamykania systemu. Exit oznacza powrót do poprzedniego procesora (interpretera) poleceń. Niektóre bardziej rozbudowane programy DOS-owe umożliwiały tymczasowe wyjście do DOS-a bez usuwania programu z pamięci komputera. Było to realizowane przez uruchomienie nowego interpretera poleceń (command.com). Powrót do programu, czyli do poprzedniego interpretera następował po wydaniu polecenia exit

Do autora wątku

Jeśli chcesz zrestartować komputer, to musisz użyć dodatkowego programu, np takiego jaki proponuje floyd , albo zastosować taki mały trik.

Umieść tą linijkę na końcu pliku autoexec.bat

echo g=ffff:0000|debug

Co robi ten kod? Uruchamia program debug.exe i przekazuje do niego instrukcję skoku do podanego adresu, co powinno spowodować ponowne uruchomienie komputera. Program debug.exe musisz zamieścić na dyskietce lub CD (jest on częścią DOS-a)

Jeśli nie chcesz używać polecenia pause , które wyświetla własny komunikat, to znowu pozostaje chyba tylko własny program, który będzie oczekiwał na wciśnięcie klawisza przez użytkownika. Być może program, który zaproponował floyd to zapewnia (nie sprawdzałem, a on nie napisał)


(floyd) #13

Program debug.exe potrafi dużo więcej np. skompilować kod asemblerowy który dla restartu komputera wyglądał by tak:

100, instrukcja restartu dla Debug

   MOV AH,0D      

   INT 21h           

   MOV AX, 40     

   MOV DS, AX DS MOV, AX

   DS: DS:

   OR BYTE PTR [17],0C ; odpowiednik naciśnięcie klawiszy CTRL + ALT

   MOV AX,4F53 ; Issue "DEL" (53h = DEL scan code)

   INT 15h Mov    

   DS: DS:

   MOV WORD PTR [72],1234   

   JMP F000:FFF0            
                      ; Linia ta musi być puste (po prostu nacisnąć ENTER)

   R CX R CX

   20                       

   N REBOOT.COM             

   W                

   Q

(Piotrek Płatek) #14

Nie mogę sobie z tym poradzić, plik reboot.exe nie daje żadnego efektu :confused:

autoexec.bat tutaj: tinyurl.com/autoexecdpplatek

-- Dodane 30.10.2010 (So) 13:41 --

nawet jak z dysku twardego uruchomię reboot.exe to nie działa :confused:


(floyd) #15

Miałeś ściągnąć ten plik reboot.exe (16 bajtów) i umieścić go na dyskietce startowej. W pliku autoexec.bat wystarczy wpisać:

reboot.exe (razem z rozszerzeniem, a nie tylko reboot) Można też wpisać call reboot.exe i program się uruchomi. Sprawdzałem i działa. Z dysku twardego i spod windowsa oczywiście nie zadziała bo to jest programik pod DOSa.

To polecenie echo g=ffff:0000:debug też nie zadziała jeśli na dysku startowym nie ma programu debug.

Z tą choinką, to też nic nie wyjdzie bo te znaki < > * są zastrzeżone i nie są drukowalnem możesz zastąpić je np. kropkami.


(Piotrek Płatek) #16

Zrobiłem wszystko co trzeba:

autoexec.bat

@echo off

mode con codepage...

mode con codepage...

keyb pl,,

@echo Pierwszy wiersz tekstu

@echo Drugi wiersz tekstu

call reboot.exe

Mam na dyskietce plik reboot.exe.


(floyd) #17

Brakuje jakiegoś pliku???

Daj najpierw w pliku autoexec.bat to co u mnie działa poprawnie, a potem dodatkowo eksperymentuj.

No i czy plik reboot.exe jest na dyskietce.

@echo off

cls

echo ..

echo ....

echo ......

echo........

pause

call reboot.exe

(Piotrek Płatek) #18

File not found x4 po wklejeniu Twojego kodu. reboot exe jest na dyskietce.


(floyd) #19

Tylko kiedy pojawia się ten napis po naciśnięciu dowolnego klawisza czyli po pauzie czy wcześniej. Bez wywołania tego programu reboot.exe wszystko OK?


(Simplex111) #20

Te pliki, których dotyczą komunikaty File not found to:

-