Subject: Re: bootable amd64 installation CD
To: Ray Phillips <r.phillips@jkmrc.com>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: port-amd64
Date: 07/12/2007 11:49:54
On Thu, Jul 12, 2007 at 09:56:22AM +1000, Ray Phillips wrote:
> Thanks Manuel and Blair.
>
> >We now have the 'makefs' tool which makes an iso image from a
> >directory tree. What is it exactly that you'd like to change?
>
> I was curious to know how you might put some other files on the boot
> CD, perhaps the NetBSD source, or whatever was convenient.
> Admittedly that's a problem easily solved by putting the source onto
> a second, normal CD. A better example might be to make a CD from
> which you can boot and install, say, port-alpha, port-sparc and
> port-amd64.
Look at the stuff in src/distrib/cdrom/ :)
>
> By the way, I suppose it would be possible to make a CD which would
> boot an i386 with an i386 install kernel and also an amd64 machine
> with an amd64 install kernel? Are the boot loaders the same for both
> ports?
No, but they could I think. The amd64 boot loader can load an i386 kernel.
> If so, you could make it boot into the i386 install kernel by
> default, but if you stopped it during the five second countdown
> before the kernel had begun to load and told it to boot from an amd64
> install kernel, e.g.:
>
> > boot cd0a:netbsd.amd64
This would work, expect that right now the bootable files are restrictecd to
8 characters in their name (it's a limitation of our libsa cd9660 support I
guess)
>
> you could proceed with an amd64 installation. Is that correct?
>
> Of course it would be much easier to use a different boot CD for each
> port, I was just wondering how it worked.
>
>
> >Read the stuff in distrib/common/Makefile.bootcd :)
> >basically you use makefs -t cd9660 and installboot /usr/mdec/bootxx_cd9660
> >(don't forget to put a INSTALL kernel with populated ramdisk on the root
> >of the CD, and /usr/mdec/boot :)
>
> No doubt the kernel in amd64/installation/cdrom/boot.iso would be suitable?
Yes. It's the same as amd64/binary/kernel/netbsd-INSTALL.gz
>
> By the way, is it possible (or easy) to reassemble the single file
> system image contained in
> amd64/installation/floppy/{boot1.fs,boot2.fs,boot3.fs} which could be
> mounted using:
>
> # vnconfig -c vnd0 boot.fs
> # mount_ffs /dev/vnd0d /mnt
I don't know how to do this; maybe with some trick using tar.
But you'll see only one file: the same as
amd64/binary/kernel/netbsd-INSTALL.gz :)
>
>
> There are instructions for making a kernel containing a ramdisk here:
>
> http://netbsd.org/docs/guide/en/chap-misc.html#chap-misc-creating-bootfloppies
>
> but they don't work in a source tree after building an amd64 release
> (not in the sources I CVS updated on 21 June anyway):
>
> # pwd
> /usr/src/distrib/amd64/ramdisks/ramdisk
> # ls -l
> total 10
> drwxr-xr-x 2 root wheel 512 Jan 18 13:01 CVS
> -rw-r--r-- 1 root wheel 343 Jun 3 2006 Makefile
> -rw-r--r-- 1 root wheel 1072 Jun 3 2006 disktab.preinstall
> -rw-r--r-- 1 root wheel 1562 Jan 18 13:01 list
> -rw-r--r-- 1 root wheel 140 Jun 3 2006 list.inet6
> # make
> # compile ramdisk/getcap.o
> /usr/src/obj/tooldir.NetBSD-3.99.20-i386/bin/i386--netbsdelf-gcc -Os
> -fno-asynchronous-unwind-tables -Werror -DSMALL -nostdinc
> -isystem /usr/include -c
> /usr/src/distrib/utils/libhack/../../../lib/libc/gen/getcap.c
> make:
> exec(/usr/src/obj/tooldir.NetBSD-3.99.20-i386/bin/i386--netbsdelf-gcc)
> failed (No such file or directory)
> *** Error code 1
>
> Stop.
> make: stopped in /usr/src/distrib/amd64/ramdisks/ramdisk
> #:
>
> Is it possible to tell make to use the amd64 tools instead of i386
> ones? I built the release using:
Yes, just use the nbmake-amd64 wrapper in $TOOLDIR/bin instead of the
system's make
--
Manuel Bouyer <bouyer@antioche.eu.org>
NetBSD: 26 ans d'experience feront toujours la difference
--