sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #78432
Re: Linux boot: ingen BIOS drive! Problemet er løst
Jørgen Heesche wrote:
Hej sslug,
Jeg kan ikke boote mandrake 9.1 efter installation af WindowsXP.
Disken er opdelt i 5 partitioner med filsystemerne
hda1: fat32 WindowsXP
hda5: ext3 Mdk9.1
hda6: swap
hda7: ext3 Suse 9.1
hda8: ext3 Mdk 10.0
Efter installation af XP ville jeg geninstallere grub for mdk9.1 ved
hjælp af mandrakes installations-cd i rescue mode, men det lykkedes ikke.
grub-install finder mdk9.1 på /dev/hda5, men går i fejl med en
meddelelse om, at der ikke findes en BIOS drive.
Fejlmeddelelsen fra grub-install indeholdt ordene: "does not have any
corresponding BIOS drive".
Et forsøg på at boote Mdk9.1 fra Mdk10.0 (krævede geninstallation af
Mdk10.0) gav fejlmeddelelsen:
"Error 13: Invalid or unsupported executable format".
Kan problemet løses ved at bruge grub shell ?, og hvilke kommandoer skal
man give til grub ?
Ovennævnte fejl ledte tanken henimod, at XP havde smadret bootsectoren
på hda5. Opgaven var altså at restore grub på hda5.
En søgning på google på "grub restore boot sector" gav flg. link:
"
Messed up boot sector??
www.linuxforums.org/forum/post-137377.html
"
Her anvises bla. en metode til at restore fra linux:
Brug installations-cd'en i rescue mode, kald grub og giv kommandoerne:
root (ur root partition here)
setup (hd0) #to put it on the mbr
Disse kommandoer og meget andet er beskrevet i
http://www.gnu.org/software/grub/manual/grub.html
Min Mdk9.1 root partition er på hda5, dvs. (hd0,4) i grub terminologi.
Da jeg faktisk kunne boote Mdk10.0 valgte jeg at installere grub for
Mdk9.1 i boot sektoren på hda5. Sådan:
root (hd0,4)
setup (hd0,4)
Bemærk: man kan teste kommandoer til grub ved kalde grub med option
--read-only.
Nu kan Mdk9.1 bootes med Mdk10.0-grub som primær bootloader.
Jeg har endnu ikke lagt Mdk9.1-grub i MBR, men jeg tvivler ikke på, at
det kan gøres med setup (hd0,0).
Jeg har forsøgt med grub-install, med det gik i stykker med en mystisk
fejlmeddelelse:
Unrecognized ls output: Not found or not a block device.
grub.install --debug /dev/hda gav dette output:
[root@x1-6-00-0e-5c-31-e5-a1 jph]# grub-install --debug /dev/hda
+ bootdir=/boot
+ grubdir=/boot/grub
+ device_map=/boot/grub/device.map
+ test -f /usr/sbin/grub
+ :
+ test -d /boot
+ test -d /boot/grub
+ test no = yes
+ test -f /boot/grub/device.map
+ :
++ sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' /boot/grub/device.map
++ sort
++ uniq -d
++ sed -n 1p
+ tmp=
+ test -n ''
++ convert /dev/hda
++ test -e /dev/hda
++ :
+++ echo /dev/hda
+++ sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' -e 's%\(fd[0-9]*\)$%\1%' -e
's%/part[0-
9]*$%/disc%' -e 's%\(c[0-7]d[0-9]*\).*$%\1%'
++ tmp_disk=/dev/hda
+++ echo /dev/hda
+++ sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' -e 's%.*/fd[0-9]*$%%' -e
's%.*/flopp
y/[0-9]*$%%' -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' -e
's%.*c[0-7]d[0-9]*p*%%'
++ tmp_part=
+++ grep -v '^#' /boot/grub/device.map
+++ grep '/dev/hda *$'
+++ sed 's%.*\(([hf]d[0-9][a-g0-9,]*)\).*%\1%'
++ tmp_drive=(hd0)
++ test 'x(hd0)' = x
++ test x '!=' x
++ echo '(hd0)'
+ install_drive=(hd0)
+ test 'x(hd0)' = x
++ find_device
+++ df /
+++ sed -n 's%.*\(/dev/[^ ]*\).*%\1%p'
++ tmp_fname=/dev/hda5
++ test -z /dev/hda5
++ test -L /dev/hda5
+++ ls -al /dev/hda5
+++ sed -n 's%.*-> %\1%p'
sed: -e expression #1, char 12: Invalid reference \1 on `s' command's RHS
++ tmp_new_fname=
++ test -z ''
++ echo 'Unrecognized ls output'
++ exit 1
+ root_device=Unrecognized ls output
++ find_device /boot
+++ df /boot/
+++ sed -n 's%.*\(/dev/[^ ]*\).*%\1%p'
++ tmp_fname=/dev/hda5
++ test -z /dev/hda5
++ test -L /dev/hda5
+++ ls -al /dev/hda5
+++ sed -n 's%.*-> %\1%p'
sed: -e expression #1, char 12: Invalid reference \1 on `s' command's RHS
++ tmp_new_fname=
++ test -z ''
++ echo 'Unrecognized ls output'
++ exit 1
+ bootdir_device=Unrecognized ls output
+ test 'xUnrecognized ls output' '!=' 'xUnrecognized ls output'
++ convert 'Unrecognized ls output'
++ test -e 'Unrecognized ls output'
++ echo 'Unrecognized ls output: Not found or not a block device.'
++ exit 1
+ root_drive=
+ test x = x
+ exit 1
Det ser ud som en bug i grub-install, bootdir_device sættes lig med
'Unrecognized ls output'.
--
Med venlig hilsen
Jørgen Heesche
mailto:heesche@xxxxxxxxxxx
References