Date: Mon, 10 Nov 2008 07:17:32 -0800 From: Jeremy Chadwick <koitsu@FreeBSD.org> To: freebsd-fs@freebsd.org Subject: boot0: Unable to boot DOS slices/partitions Message-ID: <20081110151732.GA72926@icarus.home.lan>
next in thread | raw e-mail | index | archive | help
I've been working for the past 2-3 days on a Wiki entry describing how to get two versions or architecture types of FreeBSD, and MS-DOS, all on a USB stick. The intended goal is to allow an administrator to install FreeBSD i386 or FreeBSD amd64 from a USB stick, while also providing the ability to boot DOS for BIOS upgrades and so forth. Please note the below is a complete mess, due to the fact that I have spent the past 9 hours editing things off and on. http://wiki.freebsd.org/JeremyChadwick/Installing_from_USB_flash_drive So far, I've had great success with the FreeBSD part of it -- no issues or oddities. The problem I'm running into is the DOS part. I've been completely unable to get boot0 to boot MS-DOS 6.22 (on a FAT16 slice), MS-DOS 7.10 (on a FAT16 or FAT32 slice), or FreeDOS 1.0 (on a FAT16 or FAT32 slice). With MS-DOS, COMMAND.COM, IO.SYS, and MSDOS.SYS are all copied on to the slice. With FreeDOS, COMMAND.COM and KERNEL.SYS are all copied on to the slice. boot0 shows "F1 DOS" as a choice, but depending upon where I formatted the slice (on Windows XP or via newfs_msdos), I get one of the following two error messages from the bootstraps installed on /dev/da0s1: Non-system disk Disk error I've even gone so far to try using FAT32LBA.BIN from the FreeDOS project as the bootstrap, e.g. newfs_msdos -B FAT32LBA.BIN /dev/da0s1 which just causes a hard-lock. Enabling packet mode in boot0cfg makes no difference. What *does* work, however, is using FAT32LBA.BIN and SYSLINUX together as the actual boot loader itself (e.g. at sector 0). I can successfully boot FreeDOS using this method. I'd advocate using SYSLINUX entirely, but it doesn't appear possible to get SYSLINUX to boot a slice/partition, only refer to actual files on the FAT16/FAT32 partition. I'd try GRUB, except that all of my BSD boxes at home are amd64 (sans the one I'm trying to boot the USB stick on, but that doesn't have FreeBSD installed on it), and sysutils/grub only builds on i386. Slice layout: DISK Geometry: 977 cyls/255 heads/63 sectors = 15695505 sectors (7663MB) Offset Size(KB) End Name PType Desc Subtype Flags 0 31 62 - 12 unused 0 63 5759271 11518604 da0s1 4 fat (32-bit,LBA) 12 A 11518605 1044225 13607054 da0s2 8 freebsd 165 13607055 1044225 15695504 da0s3 8 freebsd 165 15695505 183 15695870 - 12 unused 0 I don't have boot0cfg output immediately on hand, but can get it if need be. Ideas? -- | Jeremy Chadwick jdc at parodius.com | | Parodius Networking http://www.parodius.com/ | | UNIX Systems Administrator Mountain View, CA, USA | | Making life hard for others since 1977. PGP: 4BD6C0CB |
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081110151732.GA72926>