[+] Odzyskanie mbr i uruchomienie dwóch systemów - grub

Problemy dotyczące innych systemów operacyjnych
mlodir
Posty: 30
Rejestracja: 31 maja 2009, 16:45

[+] Odzyskanie mbr i uruchomienie dwóch systemów - grub

Post autor: mlodir »

Mam problem z wystartowaniem systemu Windows XP (niestety nie jestem sam inni też korzystają z tego komputera). Podczas gdy wybieram system Windows XP otrzymuję jedynie komunikat

Kod: Zaznacz cały

Starting up...GRUB
Przeinstalowałem gruba komendą

Kod: Zaznacz cały

grub-install /dev/hda
Niestety nic to nie dało. Domyśliłem się, że chodzi o MBR więc odpaliłem płytę instalacyjną Windows XP i wykonałem

Kod: Zaznacz cały

fixmbr
i

Kod: Zaznacz cały

fixboot
Dalej nic. Mój plik menu.lst:

Kod: Zaznacz cały

# menu.lst - See: grub(8), info grub, update-grub(8)
#            grub-install(8), grub-floppy(8),
#            grub-md5-crypt, /usr/share/doc/grub
#            and /usr/share/doc/grub-legacy-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not change this entry to 'saved' or your
# array will desync and will not let you boot your system.
default		3

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout		5

# Pretty colours
color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line)  and entries protected by the
# command 'lock'
# e.g. password topsecret
## password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title		Windows 95/98/NT/2000
# root		(hd0,0)
# makeactive
# chainloader	+1
#
# title		Linux
# root		(hd0,1)
# kernel	/vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
##      kopt_2_6_8=root=/dev/hdc1 ro
##      kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/hdb1 ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd1,0)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
##      alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
##      lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=vga=773

## should update-grub lock old automagic boot options
## e.g. lockold=false
##      lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
##      altoptions=(single-user) single
# altoptions=(single-user mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
##      howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
##      memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##

title		Debian GNU/Linux, kernel 2.6.26-2-686
root		(hd1,0)
kernel		/boot/vmlinuz-2.6.26-2-686 root=/dev/hdb1 ro vga=773
initrd		/boot/initrd.img-2.6.26-2-686

title		Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
root		(hd1,0)
kernel		/boot/vmlinuz-2.6.26-2-686 root=/dev/hdb1 ro single
initrd		/boot/initrd.img-2.6.26-2-686

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title		Other operating systems:
root

title		Windows XP
root		(hd0,0)
makeactive
chainloader	+1



# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda1
title		Microsoft Windows XP Professional
root		(hd0,0)
savedefault
makeactive
chainloader	+1
fdisk -l

Kod: Zaznacz cały

Disk /dev/hda: 40.0 GB, 40060403712 bytes
255 heads, 63 sectors/track, 4870 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xa4c3a4c3

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1        2167    17406396    c  W95 FAT32 (LBA)
/dev/hda2            2168        4334    17406427+   f  W95 Ext'd (LBA)
/dev/hda3            4335        4870     4305420    7  HPFS/NTFS
/dev/hda5            2168        4334    17406396    7  HPFS/NTFS

Disk /dev/hdb: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xa9b3a9b3

   Device Boot      Start         End      Blocks   Id  System
/dev/hdb1               1         637     5116671   83  Linux
/dev/hdb2            3825        4865     8361832+   7  HPFS/NTFS
/dev/hdb3            1732        3824    16812022+   5  Extended
/dev/hdb4             638        1731     8787555   83  Linux
/dev/hdb5            1732        3735    16097098+  83  Linux
/dev/hdb6            3736        3824      714861   82  Linux swap / Solaris

Partition table entries are not in disk order

Martwi mnie to ,,W95...'' Liczę na odpowiedź.
ArnVaker

Post autor: ArnVaker »

Spróbuj takim wpisem:

Kod: Zaznacz cały

title Windows
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd0,0)
makeactive
savedefault
chainloader +1
Jak nie podziała, to przedstaw okoliczności wystąpienia sytuacji. Dodałeś drugi dysk, jakaś aktualizacja, a może to świeża instalacja Debiana lub Windowsa? Masz Windowsa XP na systemie plików fat32? hda1 to na pewno partycja z Windowsem?

PS Na drugim dysku masz partycje w nieodpowiedniej kolejności.
Awatar użytkownika
Katiusha
Beginner
Posty: 368
Rejestracja: 23 lipca 2008, 23:47
Lokalizacja: Z repo :P

Post autor: Katiusha »

A czemu na pierwszym dysku (hda) partycja C (tam gdzie jest flaga "boot") jest logiczna a nie podstawowa?
Poza tym z tego co wiem Windows bardzo nie lubi być instalowany na innej partycji niż pierwsza i podstawowa.
Może to miesza i Grub lub MBR głupieje?

Też mam dwa dyski i na każdym osobny Windows, ale na pierwszych partycjach dysku i podstawowych, a Linuksy (Debian i Kubuntu) na logicznych i wszystko działa jak należy.

Tak to wygląda:

Kod: Zaznacz cały

root@debian:/home/kati# fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x751d751d

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        5222    41945683+   7  HPFS/NTFS
/dev/sda2            5223       60801   446438317+   f  W95 Ext'd (LBA)
/dev/sda5            5223       31330   209712478+   7  HPFS/NTFS
/dev/sda6           31331       33197    14996646   83  Linux
/dev/sda7           33198       35064    14996646   83  Linux
/dev/sda8           35065       37554    20000893+  83  Linux
/dev/sda9           37555       53206   125724658+  83  Linux
/dev/sda10          53207       56941    30001356   83  Linux
/dev/sda11          56942       60676    30001356    7  HPFS/NTFS
/dev/sda12          60677       60801     1003999+  82  Linux swap / Solaris

Disk /dev/sdb: 160.0 GB, 160040803840 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x188c188b

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1        2550    20482843+   7  HPFS/NTFS
/dev/sdb2            2551       19456   135797445    f  W95 Ext'd (LBA)
/dev/sdb5            2551       16573   112639716    7  HPFS/NTFS
/dev/sdb6           16574       19456    23157666    7  HPFS/NTFS
root@debian:/home/kati#
mlodir pisze:Martwi mnie to W95...
U mnie to wskazuje gdzie zaczynają się (i kończą) partycje logiczne na dysku. Tej "partycji" fizycznie nie ma tzn jako takiej nie widać normalnie, a składają się na nią wszystkie partycje logiczne na dysku i te widać tj. od sda5 do sda12.

Kod: Zaznacz cały

/dev/sda2     początek--> 5223   koniec--> 60801   446438317+   f  W95 Ext'd (LBA)
ArnVaker

Post autor: ArnVaker »

Katiusha pisze:A czemu na pierwszym dysku (hda) partycja C (tam gdzie jest flaga "boot") jest logiczna a nie podstawowa?
Dlaczego uważasz, że to nie jest partycja podstawowa?
Awatar użytkownika
Katiusha
Beginner
Posty: 368
Rejestracja: 23 lipca 2008, 23:47
Lokalizacja: Z repo :P

Post autor: Katiusha »

Z tego co wiem to "LBA" (Logical Block Addressing) oznacza partycje logiczne.

Kod: Zaznacz cały

/dev/hda1   *           1        2167    17406396    c  W95 FAT32 (LBA)
Zobacz sam:

http://pl.wikipedia.org/wiki/LBA_(informatyka)
thalcave
Junior Member
Posty: 526
Rejestracja: 03 maja 2007, 19:57
Lokalizacja: gdynia

Post autor: thalcave »

Logical Block Addressing to nie partycja logiczna. To przeczyłoby zasadzie oznaczania dysków w Linuksie. Partycje logiczne oznaczone są od numeru 5, 1-4 to partycje podstawowe i rozszerzona.
Wiki o LBA nic nie mówi, żeby to była partycja.
Awatar użytkownika
Katiusha
Beginner
Posty: 368
Rejestracja: 23 lipca 2008, 23:47
Lokalizacja: Z repo :P

Post autor: Katiusha »

Informatyczką nie jestem, ale wg mnie "LBA" oznacza partycje rozszerzoną na której są (mogą być stworzone) partycje logiczne.
Po prostu podczas tworzenia partycji zamiast zaznaczenia aby to była podstawowa została zaznaczona jako rozszerzona.
Upierać się jednak nie będę, bo to tylko moje gdybanie "dlaczego MBR może nie działać?" i mogę być oczywiście w błędzie.

Ważne aby dojść dlaczego MBR u mlodir jest popsuty.
fnmirk
Senior Member
Posty: 8273
Rejestracja: 03 grudnia 2007, 06:37

Post autor: fnmirk »

mlodir pisze:

Kod: Zaznacz cały

Partition table entries are not in disk order 
Niby takie nic i niegroźne przeważnie, świadczy o tym że właściciel niezbyt się angażuje w rozwiązania problemów tylko dokonuje rozwiązań drastycznych w postaci usuwania i ponownego zakładania partycji. A jak zakłada nowe to nie dokonuje przebudowy tablicy partycji. Takie drastyczne posunięcia wykonywane co rusz mogą owocować dziwnym zachowaniem zainstalowanych systemów.

Aby to wszystko ogarnąć wypadałoby zrobić jakiś porządek na dyskach i partycjach.
Dyski należy podpiąć do płyty głównej w kolejności takiej jakiej mają pracować i jeżeli zainstalujemy program rozruchowy w mbr pierwszego dysku to niewolno dopuszczać do zamiany miejscami dysków.

Powinno się naprawić uruchamianie Windowsa zainstalowanego na pierwszym dysku. W tym celu wystarczy nadpisanie mbr z poziomu płytki instalacyjnej systemu Windows. Aby można nadpisać mbr należy sprawdzić czy bios nie posiada blokady takiej operacji.
Po uruchomieniu Windows, sprawdzamy wszystkie jego partycje narzędziami dostępnymi w systemie: scandisk, defrag. Inne programy narzędziowe usprawniające konserwację sytemu. Po wykonaniu sprawdzania partycji Windows przystępujemy do naprawy Linuksa/Debiana.
Awatar użytkownika
ryba84
Beginner
Posty: 340
Rejestracja: 08 lipca 2007, 14:55
Lokalizacja: LDZ

Post autor: ryba84 »

To jest partycja rozszerzona ;)
/dev/hda2 2168 4334 17406427+ f W95 Ext'd (LBA)
@Katiusha u Ciebie również druga partycja jest rozszerzoną. Informuje o tym W95 Ext'd.
ArnVaker

Post autor: ArnVaker »

Katiusha pisze:Z tego co wiem to "LBA" (Logical Block Addressing) oznacza partycje logiczne.
Jest to sposób adresowania danych na dysku, nie określa typu partycji w sensie podstawowa/rozszerzona.

>>Typy partycji rozpoznawane przez fdisk'a<<

Określające partycję rozszerzoną to:
Extended
oraz
W95 Ext'd (LBA)
============================================
W95 FAT32 (LBA)

Jest to windowsowa partycja z systemem plików fat32. Swoją drogą dziwi mnie trochę, że ktoś instaluje obecnie Windowsa XP na fat32.

Katiusha pisze:Po prostu podczas tworzenia partycji zamiast zaznaczenia aby to była podstawowa została zaznaczona jako rozszerzona.
Taka sytuacja nie jest możliwa. Na dysku z intelowską tablicą partycji może być tylko jedna partycja rozszerzona, a w tym przypadku jest nią hda2. Ponadto na partycji rozszerzonej jako takiej, nie można nic zainstalować/zapisać. Można tego dokonać dopiero na dysku logicznym utworzonym wewnątrz partycji rozszerzonej.
ODPOWIEDZ