Formål: Gad vide hvorfor Windows XP eller (Windows Vista) på din dual-boot computer, dvs at have Windows XP og Linux installeret, ikke er i stand til at starte op? Svaret er, at der enten er en fejl i grub2 pakke eller IDE-disk navngivningskonvention har ændret sig i grub2 fra legacy GRUB.

Får du følgende fejlmeddelelser fra Grub2 når du forsøger at starte Windows XP?

  • chainloader: Ingen sådan kommando.
  • ingen sådan partition
  • du nødt til at indlæse kerne først

Hvis du derefter følge trinene nedenfor for at forsøge at løse dit problem.

Set-up:

En bærbar computer med dual-boot - Windows XP og Debian (Lenny) på separate partitioner på en enkelt harddisk. Her er min partition struktur:
# fdisk -l /dev/sda

Disk / dev / sda: 60.0 GB, 60011642880 bytes
255 hoveder, 63 sektorer / spor, 7296 cylindre
Enheder = cylindre af 16065 * 512 = 8225280 byte
Disk identifier: 0x2e61c242

Device Boot Start End Blocks Id System
/ Dev/sda1 * 1 3315 26.627.706 7 HPFS / NTFS
/ Dev/sda2 3316 7296 31977382 + 5 Udvidet
/ Dev/sda5 * 3316 5139 14651248 + 83 Linux
/ Dev/sda6 5140 5200 489.951 82 Linux swap / Solaris
/ Dev/sda7 5201 7296 16.836.088 + b W95 FAT32

Trin 1: Installer grub2

Antag, at du opgraderet til Grub2 gøre følgende:

#apt-get update
#apt-get install grub2

Trin 2: Genstart systemet

Nu når du installerer grub2 pakke med succes og genstarte din maskine, vil du se en ændret GRUB menu. Nu skal du vælge "Chainload i grub2", og chancerne er, at du ikke engang finde din XP-partition listet derinde (jeg ikke finde mine).

Trin 3: Opret en boot-fil til Windows XP/Vista/7

Opstart dit Linux-system ved at vælge din kerne (hvis der er flere) fra grub2 menu og se, om den starter fint. Ved opstarter Linux gøre følgende:
# nano /etc/grub.d/11_Windows (this will essentially create a new file)

og tilføje følgende linjer:

#! /bin/sh -e
echo "Adding Windows" >&2
cat << EOF
menuentry "Windows XP" {
set root= (hd0,1)
chainloader +1
}
EOF

Bemærk: I tidligere version af GRUB, hvis din Windows er installeret på Første partition, så er du nødt til at give root = (hd0, 0), da det er hvordan GRUB brug at nummerere partitioner. Men fra denne nye version og fremefter, er du nødt til at give root = (hd0, 1), hvis din Windows er installeret på første partition på harddisken.

Update: En af kommentator (tak Jorge), foreslog, at han skulle give følgende yderligere kommando:

chmod a+x /etc/grub.d/11_Windows

Så under nye grub2:

Windows på:

Første partition (/ dev/sda1): root = (hd0, 1)

Udvidet Første partition (/ dev/sda5): root = (hd0, 5)

Udvidet anden partition (/ dev/sda6): root = (hd0, 6)

og så videre ...

Gem nu filen (11_Windows), og giver følgende kommando:

# update-grub2

Du bør være i stand til at se noget som dette:
# update-grub2
Updating /boot/grub/grub.cfg ...
Found Debian background: moreblue-orbit-grub.png
Found linux image: /boot/vmlinuz-2.6.26-rt1-rt
Found initrd image: /boot/initrd.img-2.6.26-rt1-rt
Found linux image: /boot/vmlinuz-2.6.26-1-686
Found initrd image: /boot/initrd.img-2.6.26-1-686
Found linux image: /boot/vmlinuz-2.6.25-2-686
Found initrd image: /boot/initrd.img-2.6.25-2-686
Adding Windows
done

Trin 4: Genstart igen

Nu genstarte dit system og igen gå til "Chainload i grub2" valgmulighed, og du bør se en post for Windows XP og det bør være i stand til at starte Windows XP.

Trin 5: Opgrader til Grub2 "virkelig"

Når du er overbevist om, at den nye grub2 er at lade dig starte op i Linux og Windows ordentligt, kan du installere grub2 ind i din MBR (Master Boot Record) ved enten at vælge indstillingen "opgradering-fra-grub-legacy" fra GRUB menu eller ved at give kommandoen "opgradering-fra-grub-legacy", når du er i dit Linux-systemet.

Yderligere bemærkninger:

  • Grub2 startmenu konfigurationsfil: Filen / boot / grub / grub.cfg svarer til / boot / grub / menu.lst af den gamle GRUB. Denne fil er selv-genereret af kommandoen "update-grub" og opgradere-grub2?. Begge disse kommando gøre det samme.
  • IKKE vælge indstillingen "opgradering-fra-grub-legacy" medmindre og indtil du har kontrolleret, at grub2 indlæser dit OS ordentligt.
  • Grub2 konfigurationsfiler: Alle grub2 konfigurationsfiler opbevares på placering / etc / grub.d. Læse filen README under dette sted at få en idé om, hvordan disse konfigurationsfil virker.
  • Endelig kan du redigere grub2 boot config fil (/ boot / grub / grub.cfg) on-the-fly fra grub2 menuen. Bare tryk "e", og du vil være i en editor mode og du kan ændre linjerne og eksperimentere med det, indtil du er i stand til at starte med succes ind i Windows og / eller Linux. Du behøver ikke at starte systemet i Linux, hver gang du har brug for at foretage ændringer af grub2 konfigurationsfilerne.

Som sædvanlig, kan du efterlade en kommentar / feedback, hvis du har nogen. Kommentarer opfordrer bloggere til at skrive mere og holde deres humør højt.

Også glem ikke at vurdere dette indlæg nedenfor.
Pass din eksamen med testkings online prep kursus og forbedre din score i det virkelige test med TestKing VCP-410 praksis spørgsmål og testking 350-001 mock test.

Være selskabelig, Del!