RicoRoco - HOME Azure v.116
Witamy, Gość. Zaloguj się lub zarejestruj

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
WINDOWS & PC Zone - Wszystko na temat: Windows XP & VISTA - Unattended Problemy, Dyskusje, Operacje na plikach i partycjach. Alternatywny Soft, Systemy & Open Source
  HOME   FORUM   HELP SEARCH Kalendarz Download Gallery Chat Zaloguj się Rejestracja  
Theme

TOP SITES
Recent Top
By Yurek3
[29.03.2009, 08:27:18]

By PdM
[11.06.2008, 18:21:50]

By gm1004
[19.05.2008, 16:53:50]

[18.05.2008, 18:38:30]

By Yurek3
[30.03.2008, 16:06:21]

By Yurek3
[29.03.2008, 04:40:05]

By Yurek3
[27.02.2008, 00:35:27]

[13.02.2008, 10:50:11]

[09.02.2008, 11:44:18]

[22.01.2008, 10:36:45]
Strony: [1]   Do dołu
 Drukuj 
Autor           Wątek: Multiboot  [Przeczytany 1663 razy]
0 users i 1 Gość przegląda ten wątek.
Yurek3

Global Moderator
*****
Offline
United States Sex:Mężczyzna
United States


Posty 112


 [13.02.2007, 01:56:38]

Wątek autorstwa kolegi  Vertigo


I. Przygotowania



Na początek lista rzeczy, jakie będą nam potrzebne:

- Winimage (zalecam wersję 6.10)
- Hex Workshop 4.23 (może być dowolny hex-edytor)
- CD Shell 2.1.6
- CDIMAGE 2.47
__________________________________________________



Zaczynamy

Dla większej przejrzystości będę używał kolorów:


taki tekst = pliki
taki tekst = foldery, ścieżki folderów

1. boot.ini

Na dysku C:\ (dysku systemowym) powinniśmy mieć boot.ini (musimy włączyć wyświetlanie plików ukrytych i systemowych).
Tworzymy kopię boot.ini i umieszczamy w bezpiecznym miejscu gdyż będzie nam później potrzebny.

2. Struktura folderów

Najpierw musimy zdecydować się gdzie będziemy tworzyć naszą instalkę i stworzyć pewną strukturę folderów.
W przykładach będę używać D:\.

Na dysku D:\ tworzymy folder AIO-CD.
WewnÄ?trz AIO-CD tworzymy folder SETUP (tutaj będziemy przechowywać zawartości płyt systemów operacyjnych).
Jeśli jeszcze nie mamy CD Shell 2.1.6 to ściągamy teraz, następnie rozpakowywujemy i kopiujemy folder BOOT do AIO-CD.
Na koniec kopiujemy folder tools z rozpakowanego CD Shell do folderu BOOT.
Ostatecznie otrzymujemy następującą strukturę:
D:\AIO-CD\
D:\AIO-CD\SETUP\
D:\AIO-CD\BOOT\
D:\AIO-CD\BOOT\tools\

__________________________________________________

Źródło: http://flyakite.msfnhosting.com/



II. Przygotowanie Windows XP SP2



1. Kopiowanie plików

Czas przystąpić do kopiowania zawartości płyty Windows XP SP2.

Wewnątrz SETUP tworzymy folder XP a w nim Professional.
Mamy więc:
D:\AIO-CD\SETUP\XP\Professional\
Kopiujemy całą zawartość naszej płyty Windows XP SP2 do folderu Professional.
Oczywiscie naszą ulepszoną instalkę Windows XP SP2 przygotowujemy wcześniej, czyli: hotfixsy, nLite, tweaki i inne bajery w tym momencie powinny być już zaaplikowane.

2. Boot-folder

Skopiowaliśmy już pliki systemu potrzebne do instalacji ale ĹĽeby instalacja mogĹ?a wystartować musimy jeszcze utworzyć boot-folder.
W tym celu otwieramy Menu Start -> Uruchom i wpisujemy:
Code: [select]
D:\AIO-CD\SETUP\XP\Professional\i386\winnt32.exe /noreboot


W tym momencie powinien pojawić się instalator Windows.
Wybieramy "Nowa instalacja" i przechodzimy przez kolejne etapy instalatora.
Nie ściągamy uaktualnień!
Pod koniec (ten sam panel gdzie wybieramy język) sprawdzamy opcje zaawansowane czy zaznaczona jest opcja "kopiuj wszystkie pliki instalacyjne z CD", jeśli opcja jest zaznaczona i niedostępna (na "siwo") to znaczy, że wszystko jest ok i możemy kontynuować.
Cały proces potrwa kilka minut i zakończy się dość niespodziewanie - ekran instalatora poprostu zniknie.
Instalator powinien utworzyć na dysku C:\ dwa foldery:
C:\$WIN_NT$.~BT\
C:\$WIN_NT$.~LS\
Jeśli brakuje nam jednego z folderów sprawdzamy inne dyski gdyż zdarzyło mi się kilka razy że foldery tworzyły się na innych dyskach.

$WIN_NT$.~BT to nasz boot-folder.
$WIN_NT$.~LS zawiera pliki instalacyjne - możemy usunąć ten folder.

Zmieniamy nazwę $WIN_NT$.~BT na PRO1 i przenosimy do AIO-CD.
Otrzymujemy:
D:\AIO-CD\PRO1\
Na koniec z PRO1 usuwamy pliki:
D:\AIO-CD\PRO1\BOOTSECT.DAT
D:\AIO-CD\PRO1\migrate.inf
D:\AIO-CD\PRO1\winnt.sif
UWAGA!
Instalator Windows którego uruchomiliśmy namieszał troche w pliku: C:\boot.ini
W tym momencie musimy go zastąpić zrobioną wcześniej kopią.
Jeśli nie mamy kopi to zawartość standardowego boot.ini znajdziemy poniżej:
Code: [select]
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect



3. setupldr.bin

Po zainstalowaniu Hex Workshop w menu kontekstowym pod prawym przyciskiem myszy znajdziemy dodatkową opcję "Hex Edit With Hex Workshop" dzięki której możemy szybko i wygodnie edytować pliki.

Wchodzimy do PRO1 i używając Hex Workshop otwieramy plik:
D:\AIO-CD\PRO1\setupldr.bin
Chcemy odnaleźć wszystkie wpisy I386 i podmienić je na PRO1.
W tym celu wybieramy Edit -> Replace (Ctrl + H) i odpowiednio uzupełniamy okienko:



klikamy OK a następnie Replace All.
Powinny podmienić się 4 wpisy wiec, jeżeli nie było 4 to znaczy ze coś jest nie tak.
Na koniec zapisujemy zmiany bez robienia kopi zapasowej.

4. txtsetup.sif

Wchodzimy do PRO1 i używając notatnika otwieramy plik:
D:\AIO-CD\PRO1\txtsetup.sif
Wyszukujemy (Ctrl + F) SetupSourcePath i podmieniamy standardową wartość "\" na "\SETUP\XP\Professional\".
Otrzymujemy:
Code: [select]
SetupSourcePath = "\SETUP\XP\Professional\"




5. Boot-sektor

Przygotowaliśmy już boot-folder ale do wystartowania naszej płyty potrzebujemy jeszcze boot-sektor.
ściągamy PRO1.zip, rozpakowywujemy i kopiujemy PRO1.DAT do AIO-CD.
Przykład:
D:\AIO-CD\PRO1.DAT
Otwieramy PRO1.DAT za pomocą Hex Workshop i zmieniamy I386 na PRO1.
Na obrazku widzimy zaznaczony na czerwono fragment, który musimy zastąpić:



Zapisujemy zmiany bez robienia kopi zapasowej.

6. Etap końcowy

Ostatnie, co musimy zrobić to skopiowanie kilku plików.

Wchodzimy do Professional i kopiujemy do AIO-CD następujące pliki:
D:\AIO-CD\SETUP\XP\Professional\WIN51
D:\AIO-CD\SETUP\XP\Professional\WIN51IP
D:\AIO-CD\SETUP\XP\Professional\win51ip.SP2
Otrzymujemy:
D:\AIO-CD\WIN51
D:\AIO-CD\WIN51IP
D:\AIO-CD\win51ip.SP2
__________________________________________________

Źródło: http://flyakite.msfnhosting.com/



III. Instalacja nienadzorowana



1. Rozmieszczenie plików

winnt.sif umieszczamy w boot-folderze czyli w PRO1.
$OEM$ umieszczemy równolegle do I386 czyli:
D:\AIO-CD\SETUP\XP\Professional\I386\
D:\AIO-CD\SETUP\XP\Professional\$OEM$\

2. Dodatkowe opcje instalacji Windows XP

Dodatkowe opcje instalacji przydają się wtedy, kiedy chcemy zainstalować system z naszej płyty na nie swojej maszynie, czyli chcemy żeby zainstalował się system, ale bez naszych ustawień nienadzorowanej instalacji, tweaków czy też programów.
Rozwiązaniem będzie stworzenie kilku dodatkowych opcji instalacji i dostosowanie ich do naszych potrzeb, czyli przykładowo:
Instalacja regularna
Instalacja nienadzorowana
Instalacja nienadzorowana + programy
Aby stworzyć kilka opcji instalacyjnych Windows XP potrzebujemy boot-folder (kopia PRO1) i boot-sektor (kopia PRO1.DAT) dla każdej dodatkowej opcji.
Tworzymy więc kopię folderu PRO1 i PRO1.DAT, a następnie zmieniamy nazwy odpowiednio na PRO2 i PRO2.DAT.
Wszystko umieszczamy w AIO-CD.
Otrzymujemy:
D:\AIO-CD\PRO1\
D:\AIO-CD\PRO2\


D:\AIO-CD\PRO1.DAT
D:\AIO-CD\PRO2.DAT
Następnie w PRO2 edytujemy setupldr.bin za pomocą Hex Workshop i podmieniamy wszystkie wpisy PRO1 na PRO2 (powinny być 4).
Podobnie postępujemy z PRO2.DAT podmieniając PRO1 na PRO2.
(Jak korzystać z Hex Workshop pisałem już wyżej)

Dla każdej następnej opcji postępujemy analogicznie zmieniając PROX i PROX.DAT.
Każdy taki boot-folder PROX może posiadać odmienny winnt.sif co daje nam spore możliwości.
Odnośnie naszego przykładu:
Instalacja regularna - do PRO1 nie dodajemy winnt.sif
Instalacja nienadzorowana - do PRO2 dodajemy winnt.sif z OemPreinstall=No
Instalacja nienadzorowana + programy - do PRO3 dodajemy winnt.sif z OemPreinstall=Yes
Oczywiście jest to tylko przykład więc możemy to zrobić po swojemu.

UWAGA!
Na koniec trzeba jeszcze zmodyfikować nasze Boot-Menu tak żeby dodać wszystkie przygotowane opcje.
Patrz rozdział VI. Boot-Menu podpunkt 5. Sekcja dodatkowych opcji instalacji.


__________________________________________________

Źródło: http://flyakite.msfnhosting.com/


IV. Dodatki



W tej części opiszę jak zamieścić na naszej płycie kilka programów które zwiększą jej funkcjonalność. Dobrym przykładem jest tutaj Partition Magic 8 który niewątpliwie może się przydać przy przygotowywaniu dysku do instalacji systemu. Możemy przygotować też inne programy posiadają opcję tworzenia dyskietek startowych.
W tym celu będzie nam potrzebny Winimage.
Polecam też Virtual FD czyli wirtualny napęd dyskietek który zaoszczędzi nam żonglerki dyskietkami. Program jest bardzo prosty w obsłudze.

UWAGA!
Oprócz przygotowania programów musimy jeszcze zmodyfikować nasze Boot-Menu tak żeby dodać wszystkie przygotowane opcje.
Patrz rozdział VI. Boot-Menu podpunkt 6. Dodatkowe opcje.

Partition Magic 8.02/8.05

1. Na początku musimy zainstalować Partition Magic 8 i utworzyć dyskietki startowe (Program utworzy 2 dyskietki).

2. Uruchamiamy WinImage.

3. Umieszczamy pierwszą dyskietkę w stacji. Wybieramy Disk -> Read Disk (Ctrl + R).

4. Umieszczamy drugą dyskietkę w stacji. Wybieramy Image -> Change format... i wybieramy 2.88 MB. Następnie wybieramy Image -> Inject... , odszukujemy dyskietkę, zaznaczamy wszystkie pliki i wciskamy Open. Program zapyta czy chcemy dodać pliki, wybieramy Yes.

5. Zapisujemy plik: File -> Save. Wpisujemy nazwę (przykładowo PM802) i zapisujemy plik jako .IMA (bez kompresji) lub .IMZ (skompresowany obraz).

6. Na koniec musimy umieścić nasz plik na płycie.
Proponuje utworzyć w AIO-CD dodatkowy folder (przykładowo MORE) w którym będziemy umieszczać nasze dodatkowe programy.
Przykład:

D:\AIO-CD\MORE\PM802.IMZ

Acronis Disk Director Suite 9.0

Acronis Disk Director Suite to podobnie jak Partition Magic program do partycjonowania dysku.

1. Instalujemy program.

2. Wchodzimy do folderu w którym zainstalowaliśmy Disk Director Suite i odnajdujemy plik MediaBuilder.exe.

3. Zmieniamy rozszerzenie MediaBuilder.exe z .exe na .zip. Odpakowywujemy (WinRAR) otrzymany MediaBuilder.zip.

4. Z odpakowanych plików potrzebujemy kernel.dat i ramdisk.dat. Umieszczamy te dwa pliki na naszej płycie. Proponuję stworzyć dodatkowy folder ACRONIS w folderze MORE.

D:\AIO-CD\MORE\ACRONIS\kernel.dat
D:\AIO-CD\MORE\ACRONIS\ramdisk.dat

Dysk startowy Windows 98 SE
1. Jeśli mamy własną dyskietkę startową Windows 98 SE to poprostu używamy Winimage do stworzenia obrazu.
2. Jeśli nie mamy dyskietki to możemy ściągnąć gotowy obraz z stąd.
3. Na koniec umieszczamy plik obrazu na płycie.
Przykład:

D:\AIO-CD\MORE\W98DISK.IMZ
Podgląd plików tekstowych
Tworzymy plik tekstowy i umieszczamy go na płycie.
Przykładem może być tutaj plik z numerami seryjnymi:

D:\AIO-CD\SERIALS.TXT
Zainteresowanych innymi programami odsyłam tutaj i polecam Search.


__________________________________________________

Źródło: http://flyakite.msfnhosting.com/


V. Boot-Menu



Boot-Menu to ekran który wyświetli się po wystartowaniu komputera z naszej płyty, jest to menu dzięki któremu będziemy mogli poruszać się po naszej płycie i zadecydować, co chcemy zrobić czyli np: wybrać odpowiedni system do zainstalowania, typ instalacji czy też skorzystać z dodatkowych programów zamieszczonych na płycie.

Do stworzenia naszego Boot-Menu użyjemy CD Shell 2.1.6 które wykorzystuje w tym celu język skryptowy przypominający nieco JavaScript czy PHP.
CD Shell daje nam całkiem spore możliwości jak np: przejrzysta struktura plików, możliwość używania kolorów, podglądanie plików tekstowych, testowanie naszego menu bez konieczności nagrywania płyty czy też uruchamiania Virtual PC/VMware.


Boot-Menu znajduje się w pliku: D:\AIO-CD\BOOT\CDSHELL.INI
To ten plik będziemy edytować w notatniku aby stworzyć swoje własne menu.
Na początek proponuję ściągnąć sobie przykładowe menu i przyjrzeć się strukturze kodu w CDSHELL.INI co powinno pomóc w dalszej pracy.
cdshell.zip - przykładowe menu z http://flyakite.msfnhosting.com/
vertigo_cdshell.zip - moje zmodyfikowane menu (chyba nieco bardziej skomplikowane - ciągle w fazie budowy)
Oto obrazek z mojego Boot-Menu żebyśmy wiedzieli jak to mniej więcej wygląda:


Poniżej opisze kilka podstawowych zagadnień, które pomogą nam stworzyć własne menu.

Polecam zacząć od przykładowego menu i odpowiednio je modyfikować.

1. Tworzenie sekcji

Przyglądając się przykładowemu menu możemy zauważyć że kod podzielony jest na tzw. sekcje.
Ma to na celu utrzymanie przejrzystości kodu i umożliwia przeskakiwanie między sekcjami i wykonywanie wybranych części kodu.
Aby stworzyć sekcje musimy nadać jej jakąś nazwę i dodać ":" na koniec.
Zwróćmy uwagę, że kod wykonywany jest według kolejności z góry do dołu więc sekcja umieszczona najwyżej w naszym kodzie domyślnie wykona się jako pierwsza a potem już możemy dowolnie przeskakiwać w górę i w dół?.
Pamiętajmy też że po każdej sekcji wyświetlającej coś na ekranie musimy stworzyć odrazu poniżej sekcję która obsługuje klawisze klawiatury które będziemy wciskać aby dokonaÄ? wyboru (bardziej szczegółowy opis poniżej).

Przykładowe sekcje:
Code: [select]
boot:
menu:
xp_pro:
moreoptions:


2. Wyświetlanie na ekranie

Code: [select]
cls
print "[1] Windows XP Professional SP2 Corporate \n"


cls - czyści ekran przed wyświetleniem tekstu
print - wyświetla tekst na ekranie
 - wyświetlany tekst musimy umieścić w cudzysłowie (" ")
 - możemy wielokrotnie używać komendy print oddzielając je znakiem ";"
Code: [select]
print "tekst1"; print "tekst2"


 - żeby wyrównać wyświetlany tekst dodajemy odpowiednie parametry do print:
print l - wyrównuje teskt do lewej
print c - wyśrodkowuje tekst
print r - wyrównuje tekst do prawej
Code: [select]
print c "tekst wyśrodkowany"


\n - zejście do następnej linii
\n\n - zejście o 2 linie w dół (robi odstęp między wierszami)
# - tworzy komentarz, stawiamy na początku wiersza
Code: [select]
#to jest przykładowy komentarz - taki wiersz nie zostanie wykonany


Ă?Ă?Ă?Ă?Ă?Ă?Ă? - rysuje linię prostą (patrz obrazki)
3. Obsługa klawiatury

Załóżmy ze nasza sekcja wyświetlająca na ekranie główne menu to menu:.
Odrazu pod taką sekcją musimy stworzyć następną, która będzie przechwytywała wciskane przez nas klawisze i w zależności, co wcisnęliśmy wykona przypisaną klawiszowi akcjÄ?. Nazwijmy naszą nową sekcję MainKey:.
Przykład:
Code: [select]
MainKey:
getkey 20 boot 0x80
if $lastKey == key[1]; then goto XP_Pro


Dla innych sekcji proponuje tworzyć sekcje obsługujące klawisze o takich samych nazwach z końcówką "_Key".
Czyli przykładowo:
Code: [select]
Win_XP:
Win_XP_Key:


Komenda getkey przechwytuje wciskane przez nas klawisze, 20 to limit czasowy - jeśli nie wciśniemy żadnego klawisza przez 20 sekund to automatycznie wykona się komenda boot 0x80.
Komenda boot 0x80 wystartuje komputer z pierwszego dysku twardego. Jeśli nie mamy jeszcze żadnego systemu operacyjnego to oczywiście nic się nie włączy.
Limit czasowy jest opcjonalny więc jeśli chcemy to możemy go pominąć, wtedy menu pozostanie na ekranie dopóki czegoś nie wciśniemy.

Ostatnia linia sprawdza czy dany klawisz zostać wciśnięty, jeżeli tak to wykona przypisaną instrukcję czyli np: goto XP_Pro.
Komenda goto służy do przeskakiwania między sekcjami czyli jeśli wciśnięto "1" to przeskocz do sekcji XP_Pro i wykonaj kod z tej sekcji.
(oczywiście zakładamy że sekcja XP_Pro istnieje)

Spis wszystkich klawiszy znajdziemy tutaj.

UWAGA!
Polecam rozpoczynanie każdego Boot-Menu od poniższego kodu:

Code: [select]
boot:
cls
print "\n"
print "Press Enter to boot from CD... \n"
getkey 5 boot 0x80
if $lastKey == key[enter]; then goto menu
# When no key found...
goto boot


Spowoduje to wyświetlenie się na ekranie napisu "Press Enter to boot from CD..." po czym komputer odczeka 5 sekund na wciśnięcie klawisza Enter.
Jeśli Enter nie zostanie wciśnięty to po upływie 5 sekund komputer wystartuje z pierwszego dysku twardego a dalsza część skryptu zostanie pominięta.
Dzięki temu unikniemy automatycznego ładowania się naszego menu podczas restartów komputera podczas instalacji Windows XP.
Jeśli nasza sekcja wyświetlająca główne menu nazywa się inaczej niż menu: to musimy odpowiednio zmodyfikować wpis:
Code: [select]
if $lastKey == key[enter]; then goto menu



4. Uruchamianie plików i przeskakiwanie między sekcjami

Code: [select]
chain /PRO1.DAT


Uruchamia PRO1.DAT. "/" oznacza że PRO1.DAT znajduje się bezpośrednio na naszej płycie (czyli w AIO-CD). W praktyce oznacza to rozpoczęcie instalacji Windows XP.

Code: [select]
memdisk /98SE.IMA


Uruchamia obraz dyskietki startowej Windows 98 SE.
Komenda memdisk musi zostać użyta dla plików obrazu (.IMG lub .IMA).
(więcej o obrazach dyskietek i uruchamianiu dodatkowych programów w dziale V. Dodatki)

Code: [select]
goto XP_Pro:


Przeskakuje do sekcji "XP_Pro:" i wykonuje kod z tej sekcji.

Code: [select]
type /example.txt


Wyświetla zawartość plików tekstowych (.txt) na ekranie.

5. Sekcja dodatkowych opcji instalacji

Jeśli na swojej płytce zamieściliśmy dodatkowe opcje instalacji systemu to musimy do naszego Boot-Menu dodać odpowiednie wpisy.

Oto przykład:
Code: [select]
XP_Pro:
cls
print r "\n\cXXPress \c0BF1 \cXXfor Help \n"
print c "\n\cXXMicrosoft Windows XP Professional SP2 Corporate \n"
print c "\cXXĂ?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă? \n"
print "[1] Instalacja regularna \n"
print "[2] Instalacja nienadzorowana \n"
print "[3] Instalacja nienadzorowana + programy \n"
print c "\n\n"
print "Press any key to return to main menu... \n"

XP_Pro_Key:
getkey 20 goto menu
if $lastKey == key[1]; then chain /PRO1.DAT
if $lastKey == key[2]; then chain /PRO2.DAT
if $lastKey == key[3]; then chain /PRO3.DAT
if $lastKey == key[F1]; then goto Help
goto menu


Na początku na ekranie pojawia się to co w sekcji XP_Pro: a następnie wykonywana jest sekcja XP_Pro_Key: która wykorzystuje komendę getkey.
Komputer czeka aż wciśniemy jakiś klawisz.
Klawisze 1, 2, 3 uruchamiają instalacje Windows XP (różne opcje).
Jeśli przez 20 sekund nic nie wciśniemy to CD Shell powróci do menu głównego.

Oczywiście najpierw musimy dodać odpowiednie wpisy w menu: i MainKey:.
Przykład:
Code: [select]
print "[1] Windows XP Professional SP2 Corporate \n"


Code: [select]
if $lastKey == key[1]; then goto XP_Pro



A oto obrazek z mojego Boot-Menu:


6. Dodatkowe opcje

Oto przykładowy kod który uwzględnia w naszym menu kilka popularnych dodatków jak np: Partition Magic, Acronis Disk Director Suite czy też przeglądanie pliku tekstowego z numerami seryjnymi:
Code: [select]
MoreOptions:
cls
print r "\n\cXXPress \c0BF1 \cXXfor Help \n"
print c "\n\cXXMore Options \n"
print c "\cXXĂ?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă? \n"
print "[1] Power Quest Partition Magic 8.0.2 \n"
print "[2] Symantec Partition Magic 8.0.5 \n"
print "[3] Acronis Disk Director Suite 9.0 \n"
print "[4] Windows 98 SE Start Disk \n"
print "[5] View Serial Numbers \n"
print c "\n\n"
print "Press any key to return to main menu... \n"

MoreOptions_Key:
getkey 20 goto menu
if $lastKey == key[1]; then memdisk /MORE/PM802.IMZ
if $lastKey == key[2]; then memdisk /MORE/PM805.IMZ
if $lastKey == key[3]; then isolinux /MORE/ACRONIS/kernel.dat rw vga=788 acpi=off initrd=/MORE/ACRONIS/ramdisk.dat /s ramdisk_size=20480 quiet
if $lastKey == key[4]; then memdisk /MORE/W98DISK.IMZ
if $lastKey == key[5]; then goto SerialNumbers
goto menu

SerialNumbers:
cls
print r "\n\cXXPress \c0BF1 \cXXfor Help \n"
print c "\n\cXXSerial Numbers\n"
print c "\cXXĂ?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?"
type /Serials.txt
print c "\n\n"
print "Press any key to return to main menu... \n"
goto menu


Zwróćmy uwagę na nietypową komendę uruchamiającą Acronis Disk Director Suite 9.0:
Code: [select]
then isolinux /MORE/ACRONIS/kernel.dat rw vga=788 acpi=off initrd=/MORE/ACRONIS/ramdisk.dat /s ramdisk_size=20480 quiet



Oczywiście najpierw musimy dodać odpowiednie wpisy w menu: i MainKey:.
Przykład:
Code: [select]
print "[2] More Options \n"


Code: [select]
if $lastKey == key[2]; then goto MoreOptions



Obrazek z mojego Boot-Menu:


7. Kolory

CD Shell daje nam możliwość wyświetlania tekstu w kolorach.
Aby tego dokonać dodajemy następujące wpisy na początku pierwszej sekcji:
Code: [select]
menu:
set textColor= color[grey on black]
set boldColor= color[cyan on black]


Aby podświetlić wybraną część tekstu na inny kolor musimy zastosować komendy \cXX i \cxx.
Komenda \cXX podświetla następujący po niej tekst natomiast \cxx odwraca zmianę i przywraca normalny kolor tekstu.
Przykład:
Code: [select]
print "\cXXTo jest pogrubiony kolor tekstu. \cxxTo jest normalny kolor tekstu."


Jeśli chcemy więcej kolorów to możemy zastąpić XX cyframi - pierwsza cyfra oznacza kolor tła a druga kolor tekstu.
Lista dozwolonych kolorów:
0 - black
1 - blue
2 - green
3 - cyan
4 - red
5 - magenta
6 - brown
7 - brightgrey
8 - grey
9 - brightblue
A - brightred
B - brightcyan
C - brightred
D - brightmagenta
E - yellow
F - white

8. Koniec

Ostatnia linia w naszym CDSHELL.INI musi się kończyć komendą end.
komenda end konczy działanie skryptu i sprowadza nas do linii poleceń CD Shell (coĹ? jak cmd w Windows tylko fajniejsze).
Wpisz help w tej linii poleceń aby dowiedzieć się więcej.
Zalecam przejrzenie przykładowego Boot-Menu aby zorientować się jak rozmieszczone są komendy end.

9. Testowanie

Jedną z najfajniejszych rzeczy w CD Shell jest możliwość szybkiego przetestowania naszego Boot-Menu.
Do tego celu sluży nam specjalny debugger który znajdziemy w folderze BOOT:
D:\AIO-CD\BOOT\cdshw.com
Wystarczy ze uruchomimy cdshw.com a na ekranie pojawi się nasze menu.
Nie obawiajmy się że przypadkiem odpalimy instalację Windows XP - debugger nie uruchamia żadnych skryptów więc nic nie może się stać.
Żeby wyjść z debuggera wpisujemy exit w linii poleceń CD Shell a jeśli nie mamy do niej dostępu z naszego menu to wciskamy Ctrl + Alt + Del.

Tryb debuggera może nie działać bez SP2.


10. Ekstra dodatki

CD Shell umożliwia nam dodanie kilka ciekawych rzeczy do naszego menu.
Poniższy kod ustawia godzinę, datę oraz dzień tygodnia.
Musimy go umieścić na samym początku w CDSHELL.INI:
Code: [select]
boot:
cls
print "\n"
print "Press ENTER to boot from CD... \n"
getkey 5 boot 0x80
if $lastKey == key[enter]; then goto time
# When no key found...
goto boot

# Function to display time of day
time:
set hour = $timeHour
set ampm = "am"
if $timeHour > 12; then set hour = $timeHour - 12
if $timeHour < 10; then set hour = "0$hour"
if $timeHour > 12; then set ampm = "pm"
set time = "$hour:$timeMinute $ampm"

# Function to display date
date:
set month = "n/a"
if $dateMonth == 1; then set month = "Jan."
if $dateMonth == 2; then set month = "Feb."
if $dateMonth == 3; then set month = "Mar."
if $dateMonth == 4; then set month = "Apr."
if $dateMonth == 5; then set month = "May."
if $dateMonth == 6; then set month = "Jun."
if $dateMonth == 7; then set month = "Jul."
if $dateMonth == 8; then set month = "Aug."
if $dateMonth == 9; then set month = "Sep."
if $dateMonth == 10; then set month = "Oct."
if $dateMonth == 11; then set month = "Nov."
if $dateMonth == 12; then set month = "Dec."
set date = "$month $dateDay,$dateYear"

# Day of the week
day:
set feb = 0
if (($dateYear % 4 == 0) && ($dateYear % 100 != 0)) || $dateYear % 400 == 0; then set feb = 1

if $dateMonth == 1; then set month2 = 0
if $dateMonth == 2; then set month2 = 31
if $dateMonth == 3; then set month2 = 59 + $feb
if $dateMonth == 4; then set month2 = 90 + $feb

if $dateMonth == 5; then set month2 = 120 + $feb
if $dateMonth == 6; then set month2 = 151 + $feb
if $dateMonth == 7; then set month2 = 181 + $feb
if $dateMonth == 8; then set month2 = 212 + $feb
if $dateMonth == 9; then set month2 = 243 + $feb
if $dateMonth == 10; then set month2 = 273 + $feb
if $dateMonth == 11; then set month2 = 304 + $feb
if $dateMonth == 12; then set month2 = 334 + $feb
#if $dateMonth == 1; then set month2 = 365 + $feb

set year3 = $dateYear - 2005 # year3 to liczba lat ile minęło od roku 2005
set year2 = $year3 * 365 # year2 to liczba lat year3 pomnożona przez liczbę dni w roku czyli 365 (nieprzestępnym)
set p1 = ($year3 / 4) - ($year3 / 100) + ($year3 / 400) # tutaj (p1) sumujemy dni przestępne z minionych lat od 2005
set year2 = $year2 + $p1 # sumujemy liczbę dni i dni przestępne

set currentdate = $year2 + $month2 + $dateDay

if $currentdate % 7 == 3; then set dayname = "Monday"      ; then set line = "Ă?Ă?Ă?<"
if $currentdate % 7 == 4; then set dayname = "Tuesday"     ; then set line = "Ă?Ă?<"
if $currentdate % 7 == 5; then set dayname = "Wednesday"   ; then set line = "<"
if $currentdate % 7 == 6; then set dayname = "Thursday"    ; then set line = "Ă?<"
if $currentdate % 7 == 0; then set dayname = "Friday"      ; then set line = "Ă?Ă?Ă?<"
if $currentdate % 7 == 1; then set dayname = "Saturday"    ; then set line = "Ă?<"
if $currentdate % 7 == 2; then set dayname = "Sunday"      ; then set line = "Ă?Ă?Ă?<"


A oto przykładowy kod który wyświetla nam to wszytko na ekranie:
Code: [select]
print c "\n\cXXĂ?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?Ă?$line\c0B$dayname $time $date\cXX>Ă?Ă? \n\n"


Jak to wygląda możemy obserwować na obrazkach z mojego Boot-Menu.

CD Shell oferuje nam więcej możliwości - zainteresowanych odsyłam na stronę domową projektu i polecam zapoznanie się z dokumentacją.


__________________________________________________

Źródło: http://flyakite.msfnhosting.com/


VI. Czyszczenie



Kończąc przygotowania naszej płyty powinniśmy usunąć kilka niepotrzebnych plików które mogą znajdować się w AIO-CD.
W tym celu przeszukujemy (Ctrl + F) zawartość AIO-CD i podkatalogi.
Szukamy następujących plików:

unattended.txt
Kasujemy wszystkie znalezione pliki.

bootfix.bin
Ten plik wyświetla nam komunikat "Press any key to boot from cd...." przed wystartowaniem z płyty Windows XP. Usuwając plik pozbędziemy się tego komunikatu (zalecam usunięcie).

txtsetup.si_
Jeśli jakieś istnieją to usuwamy.

setupldr.bi_
Jeśli jakieś istnieją to usuwamy.

.bak
usuwamy kopie zapasowe jeśli jakieś istnieją.
__________________________________________________

Źródło: http://flyakite.msfnhosting.com/


VII. Tworzenie obrazu płyty



Proponuje skopiować? CDIMAGE.EXE do katalogu systemowego (np: WINDOWS) dzięki czemu będziemy mieli bezpośredni dostęp do tej aplikacji bez konieczności podawania pełnego adresu przy każdym uruchomieniu.
Poniższa przykładowa komenda stworzy obraz płyty gotowy do wypalenia:
Code: [select]
start cdimage.exe -lWINXPSP2 -t03/26/2005,13:00:00 -h -n -m -o -bD:\AIO-CD\BOOT\LOADER.BIN D:\AIO-CD D:\AIO_CD.ISO



Objaśnienie parametrów

start cdimage.exe
Uruchamia CDIMAGE. JeĹ?li nie skopiowaliśmy CDIMAGE.EXE do katalogu systemowego to musimy wpisać pełną ścieżkę do pliku lub uruchomić linię komend w katalogu z plikiem.

-lWINXPSP2
Nazwa naszej płyty. Nazwa może być dowolna. Początkowy parametr "-l" to maĹ?a litera L, nie 1 ani i.

-t03/26/2005,13:00:00
Data i czas utworzenia obrazu, można zostawić bez zmian.

-bD:\AIO-CD\BOOT\LOADER.BIN
Ścieżka do boot-sektora LOADER.BIN.

-h -n -o -m
Specjalne przełączniki, zostawiamy bez zmian.

D:\AIO-CD
Ścieżka do katalogu z zawartością naszej płyty czyli AIO-CD.


D:\AIO_CD.ISO
Lokalizacja i nazwa pliku z obrazem, jaki zostanie utworzony przez program. Nazwa może być dowolna, pamiętajmy o rozszerzeniu .ISO.
Przed przystąpieniem do tworzenia obrazu upewnijmy się, że mamy odpowiednią ilość miejsca na dysku.
Podczas pracy CDIMAGE może wyświetlić nam coś takiego:
Code: [select]
WARNING: These two files are identical for the first 65536 bytes, but differ at some point beyond that. This could be intentional, but it might indicate that one of these two source files is corrupt:
  D:\AIO-DVD\PRO1\SETUPLDR.BIN
  D:\AIO-DVD\PRO2\SETUPLDR.BIN


Jest to normalne. CDIMAGE podejrzewa, że niektóre pliki bardzo podobne do siebie mogą być zwyczajnie zepsute. Oczywiście pamiętamy, że niektóre pliki, które edytowaliśmy są bardzo podobne do siebie, więc wszystko jest OK. Możemy zignorować podobne wiadomości.


__________________________________________________

Źródło: http://flyakite.msfnhosting.com/
IP Zapisane

Strony: [1]   Do góry
 Drukuj 
 
Skocz do:  

Geo Visitors Map  
14.03.2025, 23:57:46