يوراميوم
06-09-2007, 16:26
كل من حاول أن ينصب Windows XP على الفلاش ديسك سيواجه رسالة من نظام ال Setup تنبهه بأن هذا الأمر غير مدعوم، تظهر هذه الرسالة عند محاولة اختيار الفلاش ديسك على أنه القرص الصلب المطلوب لعملية التنصيب.
Windows cannot boot from an USB drive. If your computer supports
booting from such device, you can load a boot loader to the USB device
which starts Windows XP from the HDD.
هذه العملية كونت لدي هاجساً لفترة من الزمن إلى أن وجدت بعض الحلول المقنعة التي عملت عليها، وإليكم ماسنفعله:
سنقوم بتحويل نسخة القرص الليزري إلى ملف ISO ومن ثم سنخرج بعض ملفات التنصيب ونعدل عليها بعض السطور ومن ثم نعيدها إلى ملف ال ISO الذي سنقوم بنسخه من جديد إلى قرص ليزري ولذلك نحتاج مايلي:
1. فلاش ديسك أو قرص صلب USB خارجي يدعم USB 2.0
2. قرص تنصيب windows XP
3. برنامج WinISO أو أي برنامج آخر يقوم السماح بتحرير مكونات نسخة الISO وهذا رابطه (http://www.winiso.com/down/WINISO.EXE) حجمه 1.3 ميغابايت
4. برنامج سيساعدنا في التعامل مع الملفات ذات اللاحقة CAB أو ال Cabinet files اسمه CAB SDK حجمه أقل من 1 ميغا وهذا رابطه (http://download.microsoft.com/download/platformsdk/cab/2.0/w98nt42kmexp/en-us/Cabsdk.exe)
5. نيرو أو أحد البرامج التي تنسخ ISO إلى القرص الليزري
العملية:
1. هل يقبل حاسبك الإقلاع عبر الفلاش ديسك؟
يجب أن تتأكد من هذا الأمر، فاللوحات القديمة لاتدعم الإقلاع من خلال أقراص USB لربما احتاج الأمر منك تحديث معلومات ال BIOS
2. اختبار قابلية الإقلاع لدى الفلاش لديك:
قم بتعطيل جميع الأقراص الصلبة لديك ومن ثم ضع قرص تنصيب windows عادي واعمل كأنك تنوي تنصيب النظام، في نافذة اختيار القرص إذا ظهر الفلاش ديسك فهو جاهز وإلا قم بتهيئة "Format" الفلاش باستخدام البرنامج التالي من HPوهذا رابطه (http://h18000.www1.hp.com/support/files/serveroptions/us/locate/69_6073.html)
3. تحويل قرص تنصيب WINDOWS إلى ملف ISO
افتح برنامج winiso ومن قائمة Actions اختر Make ISO From CDROM وقم بتحديد مكان تخزين الملف وانتظر حتى الانتهاء ومن ثم أغلق برنامج winiso وأعد فتحه وافتح الملف الذي قمت بتخزينه من قائمة File ثم open
4. توجه نحو مجلد i386 ضمن ال ISO المفتوح واستخرج الملفات التالية:
TXTSETUP.SIF
DOSNET.INF
USB.IN_
USBPORT.IN_
USBSTOR.IN_
وذلك بتحديدهم ومن ثم اختيار الأمر Extract من قائمة Actions في برنامج winISO قم بحفظهم في مجلد محدد للعمل عليهم لاحقاً
يجب الآن علينا فك ضغط الملفات الثلاثة الأخيرة في اقاشمة أعلاه، كيف؟
نقوم بتنزيل برنامج CABSDK المشار له في الأعلى ثم نستخدم موجه الأوامر CMD لكتابة الأمر التالي:
cabarc x z:\usb.in_
وذلك من مكان تواجد ملف CABARC والذي هو مجلد Bin في مجلد CABSDK
وبالتالي ستتحول الملفات الثلاثة إلى اللاحقة inf
5. الآن سنقوم بتعديل البيانات الموجودة داخل الملفات التي قمنا بإخراجها
أولاً TXTSETUP.SIF قم بفتحه عن طريق المفكرة
سنقوم بنقل 4 أسطر من مكان فيه إلى مكان آخر
pci = pci.sys
acpi = acpi.sys
isapnp = isapnp.sys
acpiec = acpiec.sys
ohci1394 = ohci1394.sys
[B]usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbstor = usbstor.sys
[InputDevicesSupport.Load]
usbehci = usbehci.sys
usbohci = usbohci.sys
usbuhci = usbuhci.sys
usbhub = usbhub.sys
usbccgp = usbccgp.sys
hidusb = hidusb.sys
serial = serial.sys
serenum = serenum.sys
usbstor = usbstor.sys
طبعاً العناصر الملونة يجب أن تنقلها من القائمة السفلى إلى العليا وقد أظهرتها بالعليا بخط عريض، لاتعتمد على تصفح المستند لإيجاد المكان المطلوب فيه وإنما ابحث عن عنوان الفقرة بالكامل
وفي نفس الملف أيضاً قم بتبديل
pci = "PCI-Bustreiber",files.pci,pci
acpi = "ACPI Plug & Play-Bustreiber",files.acpi,acpi
isapnp = "ISA Plug & Play-Bustreiber",files.isapnp,isapnp
acpiec = "Integrierter ACPI-Controllertreiber",files.none,acpiec
ohci1394 = "IEEE-1394-Bus-OHCI-konformer Anschlusstreiber",files.ohci1394,ohci1394[B]
usbehci = "Erweiterter Hostcontroller",files.usbehci,usbehci
usbohci = "Open Hostcontroller",files.usbohci,usbohci
usbuhci = "Universeller Hostcontroller",files.usbuhci,usbuhci
usbhub = "Standard-USB-Hubtreiber",files.usbhub,usbhub
usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor
[InputDevicesSupport]
usbehci = "Erweiterter Hostcontroller",files.usbehci,usbehci
usbohci = "Open Hostcontroller",files.usbohci,usbohci
usbuhci = "Universeller Hostcontroller",files.usbuhci,usbuhci
usbhub = "Standard-USB-Hubtreiber",files.usbhub,usbhub
hidusb = "HID-Parser",files.hidusb,hidusb
serial = "Treiber f�r seriellen Anschluss",files.none,serial
serenum = "Enumerator f�r seriellen Anschluss",files.none,serenum
usbstor = "USB-Speicherklassentreiber",files.usbstor,usbstor
usbccgp = "USB Generic Parent Driver",files.usbccgp,usbccgp
سنبحث عن قسم HiveInfs.Fresh ونضيف له السطر التالي
AddReg = usbboot.inf,usbservices
وسنضيف أيضاً إلى قسم SourceDisksFiles وإلى أوله السطر التالي
usbboot.inf = 1,,,,,,_x,3,,3
أخيراً قم بحفظ الملف وإغلاقه
ثانياً ملف dosnet.inf
قم بإضافة السطر التالي إلى بداية قسم files
d1,usbboot.inf
ثالثاً ملف usb.inf
قم بتغيير السطور المغمقة بالطريقة المكتوبة أدناه
[StandardHub.AddService]
DisplayName = %StandardHub.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender
[CommonClassParent.AddService]
DisplayName = %GenericParent.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbccgp.sys
LoadOrderGroup = Boot Bus Extender
رابعاً ملف usbport.inf
عدل القيم التي غمقت لونها
[EHCI.AddService]
DisplayName = %EHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbehci.sys
LoadOrderGroup = Boot Bus Extender
[OHCI.AddService]
DisplayName = %OHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbohci.sys
LoadOrderGroup = Boot Bus Extender
[UHCI.AddService]
DisplayName = %UHCIMP.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbuhci.sys
LoadOrderGroup = Boot Bus Extender
[ROOTHUB.AddService]
DisplayName = %ROOTHUB.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 0 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\usbhub.sys
LoadOrderGroup = Boot Bus Extender
خامساً ملف usbstor.inf
عدل وأضف السطور التي غمقتها في التالي
[USBSTOR.AddService]
DisplayName = %USBSTOR.SvcDesc%
ServiceType = 1
StartType = 0
Tag = 3
ErrorControl = 1
ServiceBinary = %12%\USBSTOR.SYS
LoadOrderGroup = Boot Bus Extender
سادساً أنشئ ملفاً اسمه USBBOOT.INF وأضف إليه السطور التالية
[usbservices]
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","DisplayName",0x00000000,"USB Mass Storage Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","ImagePath",0x00020000,"system32\DRIVERS\USBSTOR.SYS"
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\USBSTOR","Type",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","DisplayName",0x00000000,"USB 2.0 Enhanced Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","ImagePath",0x00020000,"system32\DRIVERS\usbehci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbehci","Type",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","DisplayName",0x00000000,"USB2 Enabled Hub"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","ImagePath",0x00020000,"system32\DRIVERS\usbhub.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbhub","Type",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","DisplayName",0x00000000,"Microsoft USB Universal Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","ImagePath",0x00020000,"system32\DRIVERS\usbuhci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbuhci","Type",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","DisplayName",0x00000000,"Microsoft USB Open Host Controller Miniport Driver"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ErrorControl",0x00010001,1
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Group",0x00000000,"System Reserved"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","ImagePath",0x00020000,"system32\DRIVERS\usbohci.sys"
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Start",0x00010001,0
HKLM,"SYSTEM\CurrentControlSet\Services\usbohci","Type",0x00010001,1
أخيراً سنعيد الملفات المذكورة إلى وضعها الطبيعي باستخدام الأمر Cabarc
مثال على الأمر
cabarc n z:\usb.in_ z:\usb.inf
حيث z يعبر عن المسار الذي وضعت به الملفات
ومن ثم سنمحي أشباهها من ملف ال ISO الذي قمنا بتكوينه بأول المشروع ونضيف ملفاتنا التي قمنا بصناعتها بدلاً عنها، وفي النهاية سننسخ ملف ال ISO إلى قرص ليزري من جديد.
عندها سيكون هذا القرص يقبل تنصيب WIndows XP على فلاش ديسك
لمن واجه صعوبة في تعديل الملفات سأرفق نسخاً معدلة منها لاحقاً في هذا الموضوع