On Wed, May 19, 2010 at 12:06 AM, C. P. Ghost <cpgh...@cordula.ws> wrote: > 2010/5/18 Vladimir 'φ-coder/phcoder' Serbinenko <phco...@gmail.com>: >> This bsdlabel has 2 strangenesses. First one is seen in your log: >> >> a: 497936 16 unused 0 0 >> In other words for some strange reason it's declared as unused entry slot. > > Ah, you're right! My mistake. I'll edit the type to "4.2BSD" > and will try again.
Okay, first with the original non-patched 1.98 grub2 version, after setting the type to 4.2BSD in bsdlabel: phenom# bsdlabel /dev/md5555s1 # /dev/md5555s1: 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 48116 16 4.2BSD 0 0 0 c: 48132 0 unused 0 0 # "raw" part, don't edit phenom# newfs /dev/md5555s1a /dev/md5555s1a: 23.5MB (48116 sectors) block size 16384, fragment size 2048 using 4 cylinder groups of 5.88MB, 376 blks, 768 inodes. super-block backups (for fsck -b #) at: 160, 12192, 24224, 36256 phenom# mount /dev/md5555s1a /mnt phenom# grub-install --root-directory=/mnt --modules=ufs2 /dev/md5555 /usr/local/sbin/grub-probe: error: unknown filesystem. Installation finished. No error reported. This copies /boot/grub/* to /mnt as before. Now, if I run qemu, I get dropped into grub-rescue: % qemu -hda bsddisk.img GRUB loading. Welcome to GRUB! error: unknown filesystem. Entering rescue mode... grub rescue> _ grub rescue> insmod part_msdos grub rescue> insmod part_bsd error: unknown filesystem. Unfortunately, the patch doesn't apply cleanly (against the bzr version): % patch -p0 < ../../patch-002 Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- partmap/bsdlabel.c 2010-03-26 14:44:13 +0000 |+++ partmap/bsdlabel.c 2010-05-18 22:13:37 +0000 -------------------------- Patching file partmap/bsdlabel.c using Plan A... Hunk #1 succeeded at 37 with fuzz 1. Hunk #2 succeeded at 46. Hunk #3 failed at 86. 1 out of 3 hunks failed--saving rejects to partmap/bsdlabel.c.rej Hmm... Ignoring the trailing garbage. done % cat partmap/bsdlabel.c.rej *************** *** 68,78 **** p.len = grub_le_to_cpu32 (be.size); p.partmap = &grub_bsdlabel_partition_map; - if (be.fs_type != GRUB_PC_PARTITION_BSD_TYPE_UNUSED) if (hook (disk, &p)) return grub_errno; - - pos += sizeof (struct grub_partition_bsd_entry); } return GRUB_ERR_NONE; --- 86,94 ---- p.len = grub_le_to_cpu32 (be.size); p.partmap = &grub_bsdlabel_partition_map; + if (p.len != 0) if (hook (disk, &p)) return grub_errno; } return GRUB_ERR_NONE; Any idea? Thanks, -cpghost. -- Cordula's Web. http://www.cordula.ws/ _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel