Wątek autorstwa kolegi Vertigo
I. PrzygotowaniaNa 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__________________________________________________
ZaczynamyDla większej przejrzystości będę używał kolorów:
taki tekst = plikitaki tekst = foldery, ścieżki folderów1. boot.iniNa 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ówNajpierw 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 SP21. Kopiowanie plikówCzas 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-folderSkopiowaliś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:
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.DATD:\AIO-CD\PRO1\migrate.infD:\AIO-CD\PRO1\winnt.sifUWAGA!Instalator Windows którego uruchomiliśmy namieszał troche w pliku:
C:\boot.iniW tym momencie musimy go zastąpić zrobioną wcześniej kopią.
Jeśli nie mamy kopi to zawartość standardowego
boot.ini znajdziemy poniżej:
[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.binPo 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.binChcemy 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.sifWchodzimy do
PRO1 i używając notatnika otwieramy plik:
D:\AIO-CD\PRO1\txtsetup.sifWyszukujemy (Ctrl + F)
SetupSourcePath i podmieniamy standardową wartość
"\" na
"\SETUP\XP\Professional\".
Otrzymujemy:
SetupSourcePath = "\SETUP\XP\Professional\"
5. Boot-sektorPrzygotowaliś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.DATOtwieramy
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ńcowyOstatnie, 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\WIN51D:\AIO-CD\SETUP\XP\Professional\WIN51IPD:\AIO-CD\SETUP\XP\Professional\win51ip.SP2Otrzymujemy:
D:\AIO-CD\WIN51D:\AIO-CD\WIN51IPD:\AIO-CD\win51ip.SP2__________________________________________________
Źródło: http://flyakite.msfnhosting.com/III. Instalacja nienadzorowana1. Rozmieszczenie plikówwinnt.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 XPDodatkowe 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.DATD:\AIO-CD\PRO2.DATNastę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.sifInstalacja nienadzorowana - do
PRO2 dodajemy
winnt.sif z
OemPreinstall=NoInstalacja nienadzorowana + programy - do
PRO3 dodajemy
winnt.sif z
OemPreinstall=YesOczywiś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. DodatkiW 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.051. 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.0Acronis 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.datD:\AIO-CD\MORE\ACRONIS\ramdisk.dat Dysk startowy Windows 98 SE1. 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 tekstowychTworzymy plik tekstowy i umieszczamy go na płycie.
Przykładem może być tutaj plik z numerami seryjnymi:
D:\AIO-CD\SERIALS.TXTZainteresowanych innymi programami odsyłam
tutaj i polecam Search.
__________________________________________________
Źródło: http://flyakite.msfnhosting.com/V. Boot-MenuBoot-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.INITo 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 sekcjiPrzyglą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:
boot:
menu:
xp_pro:
moreoptions:
2. Wyświetlanie na ekraniecls
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 "
;"
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
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
#to jest przykładowy komentarz - taki wiersz nie zostanie wykonany
Ă?Ă?Ă?Ă?Ă?Ă?Ă? - rysuje linię prostą (patrz obrazki)
3. Obsługa klawiaturyZałóż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:
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:
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: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:
if $lastKey == key[enter]; then goto menu
4. Uruchamianie plików i przeskakiwanie między sekcjamiUruchamia
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.
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)
Przeskakuje do sekcji "
XP_Pro:" i wykonuje kod z tej sekcji.
Wyświetla zawartość plików tekstowych (.txt) na ekranie.
5. Sekcja dodatkowych opcji instalacjiJeśli na swojej płytce zamieściliśmy dodatkowe opcje instalacji systemu to musimy do naszego Boot-Menu dodać odpowiednie wpisy.
Oto przykład:
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:
print "[1] Windows XP Professional SP2 Corporate \n"
if $lastKey == key[1]; then goto XP_Pro
A oto obrazek z mojego Boot-Menu:
6. Dodatkowe opcjeOto 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:
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:
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:
print "[2] More Options \n"
if $lastKey == key[2]; then goto MoreOptions
Obrazek z mojego Boot-Menu:
7. KoloryCD Shell daje nam możliwość wyświetlania tekstu w kolorach.
Aby tego dokonać dodajemy następujące wpisy na początku pierwszej sekcji:
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:
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. KoniecOstatnia 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. TestowanieJedną 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.comWystarczy 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 dodatkiCD 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:
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:
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. CzyszczenieKoń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.txtKasujemy wszystkie znalezione pliki.
bootfix.binTen 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.
.bakusuwamy kopie zapasowe jeśli jakieś istnieją.
__________________________________________________
Źródło: http://flyakite.msfnhosting.com/VII. Tworzenie obrazu płytyProponuje 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:
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ówstart cdimage.exeUruchamia 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.
-lWINXPSP2Nazwa 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:00Data 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 -mSpecjalne przełączniki, zostawiamy bez zmian.
D:\AIO-CDŚcieżka do katalogu z zawartością naszej płyty czyli
AIO-CD.
D:\AIO_CD.ISOLokalizacja 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:
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/