एक पार्टीशन से दूसरे पार्ट में कॉपी करने के बाद विंडोज को बूट करने योग्य बनाएं


0

मैंने बचाव डीवीडी से विंडोज 7 बरामद किया है, जो मेरे लैपटॉप के साथ आया था। पुनर्प्राप्ति एसएसडी ड्राइव को कारखाने की चूक के रूप में फिर से विभाजित करती है, लेकिन मैं इसे बदलना चाहूंगा। ठीक होने के बाद, ठीक होने के बाद विभाजन निम्नलिखित हैं:

root@ubuntu:~# fdisk -l /dev/sda

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419432447   209715200   27  Hidden NTFS WinRE
/dev/sda2   *   419432448   419637247      102400    7  HPFS/NTFS/exFAT
/dev/sda3       419637248   839067647   209715200    7  HPFS/NTFS/exFAT

टिप्पणियाँ:

  • /dev/sda2 छोटा विभाजन है bootmgr तथा Boot
  • विंडोज 7 स्थापित है /dev/sda3, जिसके पास नहीं है bootmgr उस विभाजन पर।

अब मैं विंडोज 7 से कॉपी करना चाहूंगा /dev/sda3 सेवा मेरे /dev/sda1 और इसे बूट करने योग्य बनाएं। चूंकि विभाजन का आकार समान है, यह लिनक्स में बहुत सरल है:

root@ubuntu:~# dd if=/dev/sda3 of=/dev/sda1 bs=4096

उसके बाद मैंने विभाजन प्रकार बदल दिया है:

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048   419432447   209715200    7  HPFS/NTFS/exFAT
/dev/sda2   *   419432448   419637247      102400    7  HPFS/NTFS/exFAT
/dev/sda3       419637248   839067647   209715200    7  HPFS/NTFS/exFAT

तब मैंने रिबूट किया है। से विंडोज 7 बूट /dev/sda3 (जो बन जाता है C: ) तथा /dev/sda1 हो जाता है D:। अब मैं विंडोज 7 कॉपी बूट करने योग्य बनाता हूं (देखें) BCDBoot के साथ मेरे विंडोज 7 बूट डिस्क को D से C पर स्विच करना तथा क्या एक से दूसरे में सभी विंडोज 7 फाइलों को कॉपी करना संभव है? ):

C:\> bcdboot d:\windows /s d:
Boot files successfully created.

C:\> bootsect /nt60 d: /mbr
Target volumes will be updated with BOOTMGR compatible bootcode.
F: (\\?\Volume{b6e65e71-6179-11e5-82c7-806e6f6e6963})
Successfully updated NTFS filesystem bootcode.
\??\PhysicalDrive0
Successfully updated disk bootcode.
Bootcode was successfully updated on all targeted volumes.

दोहरी जाँच:

C:\> bcdedit

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {0b9ac05e-6182-11e5-b742-8dbb81fd6d74}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {0b9ac060-6182-11e5-b742-8dbb81fd6d74}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {0b9ac05e-6182-11e5-b742-8dbb81fd6d74}
nx                      OptIn

C:\> bcdedit /store D:\Boot\BCD

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=D:
description             Windows Boot Manager
locale                  en-us
inherit                 {globalsettings}
default                 {default}
resumeobject            {f38db522-680d-11e5-829a-18f46ae2d7b0}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {default}
device                  partition=D:
path                    \windows\system32\winload.exe
description             Windows 7
locale                  en-us
inherit                 {bootloadersettings}
osdevice                partition=D:
systemroot              \windows
resumeobject            {f38db522-680d-11e5-829a-18f46ae2d7b0}
nx                      OptIn
detecthal               Yes

जब मैंने लिनक्स को बूट किया है और विभाजन को बूट करने योग्य (एक विंडोज पर ऐसा कर सकता है, लेकिन मैं उन उपकरणों का उपयोग करता हूं जिनसे मैं परिचित हूं):

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   419432447   209715200    7  HPFS/NTFS/exFAT
/dev/sda2       419432448   419637247      102400    7  HPFS/NTFS/exFAT
/dev/sda3       419637248   839067647   209715200   27  Hidden NTFS WinRE

की सामग्री /dev/sda1 निम्नलिखित है (दोहराव):

root@ubuntu:~# ls -l /mnt/sda1
total 10749077
drwxrwxrwx 1 root root       4096 Sep 25 06:11 Boot
-rwxrwxrwx 1 root root     383786 Nov 20  2010 bootmgr
drwxrwxrwx 1 root root          0 Sep 23 21:50 Config.Msi
lrwxrwxrwx 2 root root         60 Jul 14  2009 Documents and Settings -> /mnt/sda1/Users
-rwxrwxrwx 1 root root 4717092864 Sep 23 21:50 hiberfil.sys
-rwxrwxrwx 1 root root 6289461248 Sep 23 21:50 pagefile.sys
drwxrwxrwx 1 root root          0 Jul 14  2009 PerfLogs
drwxrwxrwx 1 root root       4096 Sep 23 20:35 ProgramData
drwxrwxrwx 1 root root       8192 Sep 23 21:26 Program Files
drwxrwxrwx 1 root root      12288 Sep 23 21:12 Program Files (x86)
drwxrwxrwx 1 root root       4096 Sep 22 22:00 $Recycle.Bin
drwxrwxrwx 1 root root      20480 Sep 23 21:50 System Volume Information
drwxrwxrwx 1 root root       4096 Sep 23 21:05 Temp
drwxrwxrwx 1 root root          0 Sep 23 21:50 Update
drwxrwxrwx 1 root root       4096 Sep 22 21:58 Users
-rwxrwxrwx 1 root root       4112 Jul 19  2011 version
drwxrwxrwx 1 root root      24576 Sep 23 21:02 Windows

अछा लगता है। दुर्भाग्य से जब मैं बूट करता हूं तो मुझे मिलता है Bootmgr is missing. Press Ctrl+Alt+Del to restart

मैंने Grub को स्थापित किया है /dev/sda1 (डिफ़ॉल्ट बूट लोडर को ओवरराइट करता है):

grub-install --force --no-floppy --boot-directory=/mnt/sda1/Boot /dev/sda1

निम्नलिखित के साथ /mnt/sda1/Boot/grub/grub.cfg:

menuentry "Windows 7" {
    insmod ntfs
    insmod ntldr
    ntldr (hd0,msdos1)/bootmgr
}

ग्रब ने नियंत्रण को पास कर दिया bootmgr सही ढंग से, लेकिन यह लगातार बूट करता है /dev/sda3। जब मैं विभाजन को हटाता हूं /dev/sda3, को प्रारंभिक बूट स्क्रीन दिखाया गया है, लेकिन तब कुछ भी नहीं होता है (बस लटका हुआ है)।

आगे मैंने स्थापित किया है ntldr सेवा मेरे /dev/sda1 (कॉपी किया NTDETECT.COM, NTLDR से 64ntfile.zip ) "देशी" बूट सेक्टर के साथ:

C:\> bootsect /nt52 d:

और इस boot.ini:

[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="Windows 7 (boot.ini)" /fastdetect

बूट होने के बाद यह प्रदर्शित होता है "डिस्क रीड एरर हुआ"। यह सुनिश्चित करने के लिए कि इस तरह एसएसडी ड्राइव विफल होने की संभावना नहीं है, इसलिए मुझे लगता है कि समस्या बूट बायटेकोड / लॉजिक में है जो ड्राइव के एड्रेसिंग / लेआउट को सही ढंग से नहीं संभाल सकता है। मैंने इस विन्यास के साथ ग्रब (ऊपर के रूप में) स्थापित किया है:

menuentry "Windows 7" {
    insmod ntfs
    insmod ntldr
    ntldr (hd0,msdos1)/ntldr
}

और फिर मैं अपने मेनू को देख सकता था boot.ini ऊपर। जब मैं जारी रखता हूं, तो कंप्यूटर बिना किसी त्रुटि संदेश के रिबूट करता है (इसलिए मुझे लूप में मिला)।

समस्या को कैसे ठीक करें? 1 विभाजन से विंडोज बूट करने के लिए किसी भी समाधान का स्वागत किया जाता है।

इस विषय पर अन्य पोस्ट जिनका मैंने निरीक्षण किया है:

पी। एस .: परीक्षण करते समय कोई अन्य ड्राइव या यूएसबी स्टिक नोटबुक से नहीं जुड़े हैं।


जब आप linux / Windows ड्यूल बूट का उपयोग कर रहे हों, तो मैं ग्रब बूट मैनेजर का उपयोग करने की सलाह दूंगा।
Ivan Viktorovic

मैं विंडोज / लिनक्स दोहरी बूट का उपयोग नहीं कर रहा हूं। मेरे पास केवल विंडोज है।
dma_k

आप यह गलत कर रहे है। फिर से शुरू करें। इस बार आपने इसे कॉपी और करने के बाद दूसरे विभाजन को हटा दिया नहीं विंडोज में वापस बूट करें। WinRE डिस्क या पुनर्प्राप्ति से अपने बूट प्रविष्टियों को अपडेट करें।
qasdfdsaq

यह बात है - मेरे पास रिकवरी डिस्क नहीं है। आपके कहने का अर्थ है कि मैं इसके बिना ठीक नहीं हो सकता bootrec /rebuildbcd या ऐसा। अंत में कोशिश करने के दिनों के बाद मैंने हार मान ली और विंडोज को 3 पार्टीशन पर छोड़ दिया ( /dev/sda3 मेरे उदाहरण में), हालांकि मैं नकल करने में सक्षम था bcdboot छिपे हुए विभाजन से उस एक तक। ड्राइव की शुरुआत में जो स्थान मैंने ड्राइव के लिए आवंटित किया है D:। यदि आप समझा सकते हैं कि मैं पहले विभाजन से बूट क्यों नहीं कर सकता ( /dev/sda1 ) मैं प्रशंसा करूंगा। फिर भी एक अंतिम उपाय के रूप में मैंने पुनर्स्थापना फ़ंक्शन का उपयोग किया है। इसने फिर से छिपे हुए विभाजन को बनाया है, हालाँकि बूट विफल हो गया है।
dma_k

जवाबों:


0

आपके द्वारा sda3 को sda1 में कॉपी करने के बाद भी sda1 पर विंडोज की रजिस्ट्री में कुछ "पॉइंटर्स" हैं जो sda3 की ओर इशारा करते हैं। HKLM \ SYSTEM \ MountedDevices \ DosDevices \ C: और D: की सामग्री की जाँच करें यदि वे विभाजन को सही करने के लिए इंगित करते हैं। ((DosDevices \ C: मान विभाजन हस्ताक्षर है - sda1 के लिए हस्ताक्षर होना चाहिए)

Sda1 के लिए बूट फाइल बनाने के लिए: (जब sda3 से मैप किया गया c :, sda1 मैप किया गया d :)

  1. bootect / nt60 d: / mbr - sda1 पार्टीशन बूट कोड सेट करने के लिए (MB पर Windows बूट कोड लिखने के लिए कोई नुकसान नहीं है)

  2. bcdboot d: \ windows / s d: - sda1 पर BCD बनाने के लिए

आपको sda2 पर मौजूदा सिस्टम BCD और sda1 पर BCD को संपादित करने की आवश्यकता नहीं है !!!

अंतिम परिवर्तन में sda1 के लिए सक्रिय विभाजन।

रीबूट।

देख विंडोज 7 बूट फ़ाइलों को किसी अन्य ड्राइव / विभाजन में कैसे स्थानांतरित करें मदद के लिए।


मैंने किया bcdboot d:\windows /s d: तथा bootsect /nt60 d: /mbr जैसा कि आपने सुझाव दिया (यह भी कि मैंने कुछ अतिरिक्त जानकारी के साथ सवाल अपडेट किया है, अर्थात् bcdedit उत्पादन)। मुझे अब भी मिलता है Bootmgr is missing। मुझे लगता है कि यह बूट सेक्टर में कोड द्वारा निर्मित है - यह विंडोज रजिस्ट्री तक नहीं पहुंच सकता है। किसी भी अन्य सलाह का स्वागत किया है।
dma_k
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.