मैंने सभी कल अनुसंधान के साथ बिताए, और अंत में विंडोज एक्सपी बूट बनाने में सक्षम था। यह अन्य OS-es के लिए भी कुछ समान होना चाहिए। लेकिन ऑपरेशन सब कुछ है, लेकिन तुच्छ नहीं।
क्योंकि यह एक खतरनाक ऑपरेशन है, मैं आपके कीमती डेटा का बैकअप लेने की सलाह देता हूं।
यहाँ कदम है:
तैयारी
विंडोज़ एक्सपी के मामले में आपको इसे वर्तमान डिस्क लेटर और पार्टीशन सेटिंग्स को भूलने की ज़रूरत है, इसलिए आपको माइग्रेशन से पहले वर्चुअल मशीन पर HKEY_LOCAL_MACHINE / MountedDevices कुंजी से सभी मानों को मिटाने की आवश्यकता है। कर्नेल इसे अगले रिबूट पर पुनर्निर्माण करेगा। लिनक्स वर्चुअल मशीनों पर, इसका मतलब माइग्रेशन के बाद fstab को ठीक करना है।
VDI छवि माउंट करना
आप संपूर्ण VDI को किसी विभाजन में कॉपी नहीं कर सकते, क्योंकि इसमें MBR भी है। आपको केवल आभासी विभाजन की प्रतिलिपि बनाने की आवश्यकता है, इसलिए पहले आपको VDI माउंट करने का एक तरीका खोजने की आवश्यकता है।
आपको nbdड्राइवर और qemu-nbdकमांड की आवश्यकता है। उबंटू में यह qemu-kvmपैकेज में है।
पहले nbd ड्राइवर लोड करें:
# modprobe nbd
इसमें कुछ nbdडिवाइस बनाने चाहिए /dev।
फिर VDI माउंट करें:
# qemu-nbd -c /dev/nbd0 path_to.vdi
यह सुनिश्चित करना चाहिए /dev/nbd0p1, /dev/nbd0p2, /dev/nbd0p3सब आभासी विभाजन के लिए आदि। इन्हें किसी भी आम डिवाइस की तरह लगाया जा सकता है।
विभाजन का पलायन
इसके लिए उपयोग करें dd, ऑपरेशन से पहले दोनों विभाजनों को अनमाउंट करें :
# dd -if=<nbd_device> -of=<real_partition>
उदा .:
# dd -if=/dev/nbd0p3 -of=/dev/sda4
ऑपरेशन ddचुप है, इसमें कई मिनट लग सकते हैं, यहां तक कि आधा घंटा भी। ऑपरेशन के दौरान आप एक टर्मिनल खोल सकते हैं और fdisk -lयह देखने के लिए उपयोग कर सकते हैं कि सब ठीक चल रहा है।
अपडेट करें:
जाहिरा तौर पर nbd एक मूर्खतापूर्ण समाधान नहीं है। यह I / O त्रुटि का कारण हो सकता है और dd को विफल कर सकता है। इसके अलावा अगली कोशिश तुरंत विफल हो जाती है। आप इस कमांड के साथ एक कच्ची डिस्क VMDK बनाने की कोशिश कर सकते हैं (लिनक्स के तहत):
$ VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sda
आपको diskइसे काम करने के लिए समूह में होना चाहिए । फिर इस vmdk को द्वितीयक हार्ड ड्राइव के रूप में वर्चुअल मशीन में जोड़ें, फिर ddविभाजन के लिए लाइव लिनक्स आईएसओ का उपयोग करें ।
NTFS विभाजन के बूट सेक्टर को ठीक करना
यह हैकिश पार्ट है।
हम लगभग तैयार हैं, लेकिन विंडोज एक्सपी बूट नहीं करेगा, क्योंकि हमें ऑफसेट पर फाइल सिस्टम के छिपे हुए क्षेत्रों की संख्या निर्धारित करने की आवश्यकता है 0x1C। यह मूल रूप से NTFS विभाजन से पहले कई सेक्टर हैं। हम इस नंबर को fdisk -ulकमांड से प्राप्त कर सकते हैं । startआउटपुट का क्षेत्र बताता है कि दिए गए विभाजन किस सेक्टर से शुरू होते हैं, जो मूल रूप से विभाजन से पहले सेक्टरों की संख्या है। इसलिए वहां से नंबर प्राप्त करें, उदाहरण के लिए gcalctool का उपयोग करके इसे हेक्साडेसिमल में बदलें।
विभाजन को hexeditइस तरह खोलें :
# hexedit /dev/sda4
फिर 1Cऑफ़सेट में थोड़े एंडियन ऑर्डर में छिपे हुए सेक्टरों की संख्या लिखें । थोड़ा एंडियन का अर्थ है: 0xABCDEFGHहोगा GH EF CD AB। यदि हेक्सा संख्या 8 अंक से कम है, तो इसे शून्य से पूर्व दें।
जब हो जाए, तो इसे सहेजें और बाहर निकलें (Ctrl + X)।
GRUB की स्थापना
आपको GRUB को सीधे उस विभाजन को बूट करने के लिए बताना होगा, GRUB के लिए निम्नलिखित मेनू प्रविष्टि जोड़ें:
title Microsoft Windows XP Professional
root (hd0,3)
savedefault
makeactive
chainloader +1
जहां (hdX, Y)विभाजन की पहचान करता है। X डिफ़ॉल्ट हार्डडिस्क के लिए 0 है, 1 के लिए /dev/sda2, /dev/sdbआदि के लिए Y विभाजन संख्या है। 0 के लिए /dev/sda1, 1 के लिए /dev/sda2, आदि।
यह GRUB2 के लिए भी समान होना चाहिए, लेकिन यह मेनू प्रविष्टियों के लिए थोड़ा अलग सिंटैक्स का उपयोग करता है।
अंतिम स्पर्श
नया NTFS विभाजन बूट अप करने के लिए तैयार है। लेकिन विंडोज एक्सपी डेस्कटॉप तक पहुंचने के लिए आपको अभी भी कुछ हैकिंग की आवश्यकता है। अन्य प्रणालियों को अलग-अलग हैक की आवश्यकता हो सकती है। पहले boot.ini को ठीक करना होगा।
[boot loader]
timeout=1
default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
तदनुसार क्रम संख्या निर्धारित करें। मैंने इसे / dev / sda4 पर स्थापित किया। तो विभाजन संख्या 3 होनी चाहिए।
यदि लॉगऑन स्क्रीन से ठीक पहले विंडोज फ्रीज हो जाता है तो आपको रजिस्ट्री में माउंटेडडेविसेस प्रविष्टि को ठीक करने की आवश्यकता हो सकती है।
रजिस्ट्री आपके द्वारा देखी <path to windows>/system32/config/systemजा सकती है chntpw। यह एक समस्या हो सकती है यदि आपका सिस्टम ड्राइव लेटर C. नहीं है। चूंकि chntpwरजिस्ट्री की लेखन क्षमताएं काफी सीमित हैं, इसलिए आपको इसे ठीक करने के लिए ghex2 की तरह हीबैकबैक करने और उपयोग करने की आवश्यकता है। आपको मेरे मामले में \DosDevices\C:एक अलग ड्राइव पत्र के साथ सी को खोजने और बदलने की आवश्यकता है F।
इन के बाद, आपको डेस्कटॉप तक पहुंचने में सक्षम होना चाहिए, अब आपको सभी ड्राइवरों का शिकार करने की आवश्यकता है, लेकिन यह इस ट्यूटोरियल के दायरे से बाहर है।
सूत्रों का कहना है
विंडोज एक्सपी को एक अलग विभाजन में ले जाना
लिनक्स के तहत एक वीडीआई माउंट करें