Formål: gad vide hvorfor Windows XP eller (Windows Vista) på din dual-boot computer, altså at have Windows XP og Linux installeret, ikke er i stand til at starte? Svaret er, at der enten er en fejl i GRUB2 pakken 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.
  • 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 med 16065 * 512 = 8225280 bytes
Disk-id: 0x2e61c242

Device Boot Start Slut Blocks Id System
/ Dev / sda1 * 1 3315 26627706 7 HPFS / NTFS
/ Dev / sda2 3316 7296 31977382+ 5 Extended
/ Dev / sda5 * 3316 5139 14651248+ 83 Linux
/ Dev / sda6 5140 5200 489951 82 Linux swap / Solaris
/ Dev / sda7 5201 7296 16836088+ 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 ved installation af GRUB2 pakke med succes og genstarte din maskine, vil du se en ændret GRUB menu. Vælg nu "Chainload i GRUB2", og chancerne er, at du ikke selv finde din XP-partition opført i der (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å First partition så er du nødt til at give root = (hd0,0), da det er sådan GRUB brug at nummerere partitioner. Men fra denne nye version og fremefter, skal du 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 ...

Nu gemme 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", og du bør se en post for Windows XP og det bør være i stand til at starte op i 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 i din MBR (Master Boot Record) ved enten at vælge muligheden "opgradering-fra-grub-legacy" fra GRUB menu eller ved at give kommandoen "opgradering-fra-grub-legacy", når du er i dit Linux system.

Yderligere bemærkninger:

  • GRUB2 boot menu 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 ?. Både disse kommando gøre det samme.
  • IKKE vælge muligheden "opgradering-fra-grub-legacy" medmindre og indtil du har kontrolleret, at GRUB2 indlæser operativsystemet korrekt.
  • Grub2 konfigurationsfiler: Alle Grub2 konfigurationsfiler gemmes på det sted /etc/grub.d. Læse filen README under dette sted at få en idé om, hvordan de konfigurationsfil fungerer.
  • 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 på Windows og / eller Linux. Du behøver ikke at starte systemet i Linux, hver gang du har brug for at foretage ændringer af GRUB2 config filer.

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!