Subject: updated restorecd script for 4.0_RC3 (Re: netboot via native bootloader)
To: None <>
From: Izumi Tsutsui <>
List: port-cobalt
Date: 10/28/2007 23:13:57 wrote:

> Excellent work!

Thanks :-)

> I'd like to get this submitted as a pullup request to the netbsd-4
> branch, but I'm 3000 miles from home.  I'll submit the request when I
> get back in a week if no-one beats me to it.  [;-)

There are some minor tweaks in my working sources, so
I'll commit changes tomorrow, then send pullup a request later.

Note some kernel sources (autoconf.c and machdep.c) should
also be updated.

> They probably won't accept it for 4.0, but it should be in 4.1.

Next, today I've been playing on updating Dennis' new
restorecd script (which was written for 3.99.17)
to 4.0_RC3.

It also consumed another set of ~six hours due to mysterious
fdisk(8) behavior etc., but I've managed to get it.

I've put a new restorecd tar archive here:

and I've also updated README "how to create restorecd.iso image"
from scratch (not how to install NetBSD ;-):

--- restorecd/README ---

Typical 'restorecd' script invocation:

0. fetch and extract newer restorecd-*.tar.gz

% ftp
    (or from appropriate server)
% tar zxf restorecd-20071028.tar.gz
% cd restorecd

1. read data/i386/root/instructions.txt first

2. fetch NetBSD binaries and sources (for i386 and cobalt) into download dir

% rsync -va --files-from=restorecd-fetch.lst \
    rsync:// download

3. fetch and extract e2fsprogs package binary

% (cd download ; \
% tar -C data/cobalt/usr/pkg -zxf download/e2fsprogs-1.32.tgz sbin/mke2fs

4. extract NetBSD sources

% tar zxf download/source/sets/gnusrc.tgz
% tar zxf download/source/sets/sharesrc.tgz
% tar zxf download/source/sets/src.tgz
% tar zxf download/source/sets/syssrc.tgz

4a. fetch new bootloader binary (until it's pulled up to netbsd-4)

% (cd download; \
% mkdir usr/mdec
% zcat download/boot-cobalt-20071028.gz > usr/mdec/boot
% gunzip download/cobalt/binary/sets/base.tgz
% tar rf download/cobalt/binary/sets/base.tar ./usr/mdec/boot
% gzip download/cobalt/binary/sets/base.tar && \
    mv download/cobalt/binary/sets/base.tar.gz \

4b. fetch patched cobalt GENERIC kernel which recognizes boot device tlp0
    (until it's pulled up to netbsd-4)

% (cd download; ftp \
% cp download/netbsd-GENERIC-cobalt-20071028.gz \

 Or if you want to build a GENERIC kernel by yourself (for newer RC),
 use the following patch to build it from sources:

 % (cd download; ftp \
 % (cd usr/src; patch -p < ../../download/cobalt-netbootdev-20071028.diff)
 % (cd usr/src; sh -m cobalt -U -T tooldir tools)
 % (cd usr/src; sh -m cobalt -T tooldir kernel=GENERIC)
 % gzip -9c usr/src/sys/arch/cobalt/compile/obj/GENERIC/netbsd \
    > download/cobalt/binary/kernel/netbsd-GENERIC.gz

5. build tools to build i386 server's kernel and boot image

% (cd usr/src; sh -m i386 -U -T tooldir tools)

   NOTE1: check your TOOLDIR in the build log here.
   NOTE2: make sure /etc/mk.conf not to override $TOOLDIR

6. execute restorecd script

% su
# sh restorecd server=/path/to/restorecd/download \
              client=/path/to/restorecd/download \
              source=/path/to/restorecd/usr/src  \
              tooldir=/path/to/restorecd/usr/src/tooldir -v

   NOTE1: use absolute paths to extracted restorecd dir (otherwise it fails)
   NOTE2: use your TOOLDIR for tooldir= arg if it isn't .../usr/src/tooldir 

  Then you'll get restorecd.iso in cd.tmp dir.

--- EOF ---
(BTW, is there any good rsync mirror which serves whole NetBSD-daily?)

Note this script will use the new bootloader to load a bootstrap
kernel via network. If you want to use old netbsd-INSTALL.gz
in release set binaries, check and modify commented out lines
in "prepare_nfsroot()" function in "restorecd/restorecd" script
as old one.

I've created an image on NetBSD/i386 4.99.34, and checked
restorecd installation with Dell GX260 server and RaQ1 client,
but any tests/reports/suggestions are appreciated.

Izumi Tsutsui