[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] fix for partmap detection on RAID/LVM
From: |
Sam Morris |
Subject: |
Re: [PATCH] fix for partmap detection on RAID/LVM |
Date: |
Fri, 08 Feb 2008 19:20:31 +0000 |
On Fri, 2008-02-08 at 15:52 +0100, Robert Millan wrote:
> New patch to fix partmap detection in LVM/RAID. Changes in comparison to
> previous patch:
(gdb) run -t partmap /boot/grub/
Starting program: /home/sam/grub/grub2/grub-probe -t partmap /boot/grub/
Program received signal SIGSEGV, Segmentation fault.
0x0806035a in grub_raid_scan_device (name=0x806b080 "hd3,2") at
disk/raid.c:442
442 if (array->device[sb.this_disk.number]->name != 0)
(gdb) print array
$1 = (struct grub_raid_array *) 0x806f1f8
(gdb) print array->device
$2 = {0x806b118, 0x0 <repeats 31 times>}
(gdb) print sb.this_disk.number
$3 = 1
(gdb) bt full
#0 0x0806035a in grub_raid_scan_device (name=0x806b080 "hd3,2")
at disk/raid.c:442
err = <value optimized out>
disk = <value optimized out>
size = 578415649617870848
sb = {md_magic = 2838187772, major_version = 0, minor_version =
90,
patch_version = 3, gvalid_words = 0, set_uuid0 = 395026485,
ctime = 1139358627, level = 1, size = 292519488, nr_disks = 2,
raid_disks = 2, md_minor = 0, not_persistent = 0, set_uuid1 =
2852015029,
set_uuid2 = 1808090526, set_uuid3 = 3461511789, gstate_creserved = {
0 <repeats 16 times>}, utime = 1202498002, state = 1, active_disks
= 2,
working_disks = 2, failed_disks = 0, spare_disks = 0, sb_csum =
1132908899,
events_lo = 14301400, events_hi = 0, cp_events_lo = 14301400,
cp_events_hi = 0, recovery_cp = 4294967295, gstate_sreserved = {
0 <repeats 20 times>}, layout = 0, chunk_size = 0, root_pv = 0,
root_block = 0, pstate_reserved = {0 <repeats 60 times>}, disks = {{
number = 0, major = 3, minor = 66, raid_disk = 0, state = 6,
reserved = {
0 <repeats 27 times>}}, {number = 1, major = 34, minor = 2,
raid_disk = 1, state = 6, reserved = {0 <repeats 27 times>}}, {
number = 0, major = 0, minor = 0, raid_disk = 0, state = 0,
reserved = {
0 <repeats 27 times>}} <repeats 25 times>}, reserved =
0xbfb8175c,
this_disk = {number = 1, major = 34, minor = 2, raid_disk = 1, state
= 6,
reserved = {0 <repeats 27 times>}}}
p = (struct grub_raid_array *) 0x806f1f8
array = (struct grub_raid_array *) 0x806f1f8
#1 0x0804b69e in iterate_partition (disk=0x806b008,
partition=0xbfb81b94)
at kern/device.c:132
partition_name = 0x806f378 "\001"
ret = 1
hook = (int (*)(const char *)) 0x80601c0 <grub_raid_scan_device>
#2 0x0805cd0c in pc_partition_map_iterate (disk=0x806b008,
hook=0xbfb81c9e)
at partmap/pc.c:153
i = <value optimized out>
e = (struct grub_pc_partition_entry *) 0xbfb81a2a
p = {start = 1060290, len = 585039105, offset = 0, index = 1,
data = 0xbfb81bb8, partmap = 0x8063a1c}
pcdata = {dos_part = 1, bsd_part = -1, dos_type = 253, bsd_type
= -1,
ext_offset = 0}
mbr = {
code =
"��\000\020\216м\000��\000\000\216�\216���\000|�\000\006�\000\002���!\006\000\000��\a8\004u\v\203�\020\201��\au��\026�\002�\001�\000|�\200\212t\001\213L\002�\023�\000|\000\000��",
'\0' <repeats 365 times>, "\204�\002\000\000",
entries = {{flag = 0 '\0', start_head = 1 '\001', start_sector = 1
'\001',
start_cylinder = 0 '\0', type = 130 '\202', end_head = 254 '�',
end_sector = 63 '?', end_cylinder = 65 'A', start = 63,
length = 1060227}, {flag = 0 '\0', start_head = 0 '\0',
start_sector = 1 '\001', start_cylinder = 66 'B', type = 253 '
end_head = 254 '�', end_sector = 255 '�', end_cylinder = 255 '�',
start = 1060290, length = 585039105}, {flag = 0 '\0',
start_head = 0 '\0', start_sector = 0 '\0', start_cylinder = 0
'\0',
type = 0 '\0', end_head = 0 '\0', end_sector = 0 '\0',
end_cylinder = 0 '\0', start = 0, length = 0}, {flag = 0 '\0',
start_head = 0 '\0', start_sector = 0 '\0', start_cylinder = 0
'\0',
type = 0 '\0', end_head = 0 '\0', end_sector = 0 '\0',
end_cylinder = 0 '\0', start = 0, length = 0}}, signature = 43605}
label = {magic = 0, padding = '\0' <repeats 127 times>, magic2
= 0,
checksum = 0, num_partitions = 0, boot_size = 0, superblock_size = 0,
entries = {{size = 0, offset = 0, fragment_size = 0, fs_type = 0
'\0',
fs_fragments = 0 '\0', fs_cylinders = 0}, {size = 0, offset = 0,
fragment_size = 0, fs_type = 0 '\0', fs_fragments = 0 '\0',
fs_cylinders = 0}, {size = 0, offset = 0, fragment_size = 0,
fs_type = 0 '\0', fs_fragments = 0 '\0', fs_cylinders = 0}, {
size = 134656064, offset = 134625056, fragment_size = 3216513864,
fs_type = 255 '�', fs_fragments = 225 '�', fs_cylinders = 2053}, {
size = 128, offset = 131, fragment_size = 0, fs_type = 0 '\0',
fs_fragments = 0 '\0', fs_cylinders = 0}, {size = 134625820,
offset = 3216514036, fragment_size = 3216513880, fs_type = 158
'\236',
fs_fragments = 227 '�', fs_cylinders = 2053}, {size = 0, offset =
0,
fragment_size = 3216513928, fs_type = 131 '\203',
fs_fragments = 220 '�', fs_cylinders = 2052}, {size = 134615777,
offset = 134625820, fragment_size = 0, fs_type = 255 '�',
fs_fragments = 255 '�', fs_cylinders = 65535}}}
raw = {name = 0x806b040 "hd3", dev = 0x8063720,
total_sectors = 586114704, has_partitions = 128, id = 131, partition
= 0x0,
read_hook = 0, data = 0x0}
#3 0x0804e1bf in grub_partition_iterate (hook=0xbfb81c9e)
at kern/partition.c:126
ret = <value optimized out>
partmap = (grub_partition_map_t) 0x8063a1c
disk = (struct grub_disk *) 0x806b008
#4 0x0804b812 in iterate_disk (disk_name=0xbfb81c42 "hd3")
at kern/device.c:101
dev = (grub_device_t) 0x806b030
hook = (int (*)(const char *)) 0x80601c0 <grub_raid_scan_device>
#5 0x08049810 in grub_util_biosdisk_iterate (hook=0xbfb81c94)
at util/biosdisk.c:131
i = 131
#6 0x0804b914 in grub_disk_dev_iterate (hook=0xbfb81c94) at
kern/disk.c:205
p = (grub_disk_dev_t) 0x8063720
#7 0x0804b614 in grub_device_iterate (hook=0x80601c0
<grub_raid_scan_device>)
at kern/device.c:138
No locals.
#8 0x0805f9e2 in grub_mod_init (mod=0x0) at disk/raid.c:563
No locals.
#9 0x0805fa02 in grub_raid_init () at disk/raid.c:561
No locals.
#10 0x0804927c in main (argc=Cannot access memory at address 0xa9fe4bb5
) at util/grub-probe.c:338
c = <value optimized out>
dev_map = 0x0
path = 0xbfb83bd7 "/boot/grub/"
I'll debug this further later if you don't know why it happened.
--
Sam Morris
http://robots.org.uk/
PGP key id 1024D/5EA01078
3412 EA18 1277 354B 991B C869 B219 7FDB 5EA0 1078
signature.asc
Description: This is a digitally signed message part