loshia

blogs the world

Как да boot-нем по мрежата

Преди няколко дена имах следния проблем - трябваше да инсталирам операционна система на компютър без флопи, без CD-ROM и без възможност за boot от USB. Успях с размяна на хард дисковете с друг компютър. По-късно видях, че има и друг, много по-лесен начин - remote boot от друг компютър. За целта е необходимо BIOS-ът да поддържа network boot (PXE вариант), да има работещ втори комютър с инсталиран Windows под ръка и двата компютъра да се намират в локална мрежа (чрез Hub или Switch).

Първоначално си нямах никаква идея как стоят нещата. Мислех си, че е достатъчно да share-на някъде инсталационните файлове на Windows XP и после ще мога да ги стартирам от друга машина. Все едно стартирам от CD-ROM, само че от мрежата. Оказа се, че доста съм грешал. Когато един компютър тръгне да boot-ва по мрежата той първо търси и се свързва с първия DHCP сървър, който намери. От него си взема IP адрес и boot image, който изпълнява. Проблемът е, че въпросният image трябва да се събира в свободната DOS памет, т.е. може да е до няколкостотин килобайта на размер. Затова се ползва специален Linux boot image, който е много малък по размер и който вече на своя страна зарежда и изпълнява нормален DOS boot image. Не е ли иронично? Ползваме Linux за да boot-нем в DOS.

Подкован с достатъчно теория, тръгнах да търся как да изпълня всичко това на практика. Ролята на DHCP сървър се изпълнява от TFTPD32. Linux boot диска се взема от тук, а нормален DOS boot диск от тук (аз ползвах Win98 версията, защото тя позволява да се инсталира XP директно). Подробни инструкции кое как и защо работи има на този адрес{.broken_link}.

Дотук добре, само boot-ване в DOS обаче не върши работа, защото трябва отнякъде да се копират и инсталационните файлове на Windows. За целта има два начина, чрез USB или по мрежата. Проблемът е, че DOS не поддържа нито USB, нито има какви да е мрежови възможности. На тази{.broken_link} или на тази{.broken_link} страници има решение на първия проблем. А на тази страница - и на втория. Следвайки напътствията успях да подкарам 2GB флаш памет да се вижда като C: под DOS. След още малко чесане по главата успях да направя и boot диск, който да ми позволява да виждам другите компютри в мрежата под DOS, т.е. “\SERVER\INSTALL\WINXP” вече не е недостижима директория. Оттук нататък, след като веднъж съм стартирал DOS в един от двата режима, форматирам и sys-вам твърдия диск, копирам инсталационните файлова на Windows XP от USB или от друг компютър и рестартирам нормално. Веднъж след като съм boot-нал под DOS от твърдия диск, просто стартирам I386\WINNT.EXE и съм в играта.

Като бонус, от сайта на Avira{.broken_link} може да се свали ntfs4dos. Това е безплатна за лични цели програмка, която позволява NTFS форматиран диск да се вижда под DOS за четене/запис. Просто копирайте ntfs4dos.exe в стартовия DOS image. За редакция на image може да се използва WinImage.

И понеже все пак цялата операция не е съвсем тривиална, ето тук съм сложил работещ вариант, който позволява PXE network boot под DOS с USB и NTFS support. Инструкциите са пределно прости. Разархивирайте файла в “C:\PXE”. Стартирайте “tftpd32.reg” (само един път е достатъчно), а след това и “tftpd32.exe”. И това е. Сега пуснете другия компютър, изберете network boot и следвайте инструкциите на екрана.