On Thu 05 Jul 2018 at 10:52:12 +0300, Andreas Gustafsson wrote:
> MLH wrote:
> > Boot Options are:
> > Hard Drive, CDROM, USB-FDD, USB-ZIP, USB-CDROM, USB-HDD, Legacy LAN
>
> A USB memory stick emulates a hard drive, so USB-HDD should work.
A USB stick formatted like a hard drive *should* always work.
Many BIOSes also allow booting from a USB stick formatted as a cdrom,
i.e. filled with an .iso image.
Here is a script I once made to create a bootable dvd from the install
sets. I made it to have a non-standard live and install dvd that also
includes all sources. I had also been trying to include (apart from the
amd64 version) i386 and VAX on the same dvd, but I didn't get far with
that.
This one was working for 7.1.1/amd64.
#!/bin/sh
# Make a bootable cd for amd64.
# If the same method works for VAX, I have to look into.
#
#set -x
arch=amd64
sets="kern-GENERIC modules base comp etc games man misc text"
xsets="xbase xcomp xetc xfont xserver"
work=work.$arch
top=$(pwd)
what=${top##*/}
mkdir $work
cd $work
umask 0000
echo "Creating a ${what} dvd image:"
for set in $sets $xsets
do
echo "Extracting ${set} (using chroot)..."
tar --chroot -x -p -z -f $top/$arch/binary/sets/${set}.tgz
done
# Put bootfiles in place:
# For amd64:
cp -p ./usr/mdec/boot .
cp -p ./usr/mdec/bootxx_cd9660 ./bootxx_cd9660.${arch}
cat >boot.cfg <<EOF
banner=Welcome to the ${what} ${arch} installation CD
banner================================================================================
banner=
banner=ACPI (Advanced Configuration and Power Interface) should work on all modern
banner=and legacy hardware. However if you do encounter a problem while booting,
banner=try disabling it and report a bug at http://www.NetBSD.org/.
menu=Install NetBSD:boot netbsd
menu=Install NetBSD (no ACPI):boot netbsd -2
menu=Install NetBSD (no ACPI, no SMP):boot netbsd -12
menu=Drop to boot prompt:prompt
timeout=30
EOF
cat >etc/rc.d/filltmpfs <<'EOF'
# PROVIDE: filltmpfs
# REQUIRE: root
# BEFORE: mountcritlocal
$_rc_subr_loaded . /etc/rc.subr
name="filltmpfs"
rcvar="filltmpfs"
start_cmd="filltmpfs_start"
stop_cmd=":"
filltmpfs_start()
{
# hack to get around bugs in kernfs's rootdev/rrootdev lookup.
ls -l /dev/* > /dev/null 2>&1
# prepare important directories in the tmpfses, so dhcpcd and vi will work
echo "Prepare important directories in the tmpfses, so dhcpcd and vi will work."
mount_critical_filesystems local
/bin/mkdir -p /var/run /var/db /var/log /var/tmp /var/spool /var/cron
touch /var/log/messages /var/log/authlog /var/log/cron /var/log/xferlog
touch /var/log/lpd-errs /var/log/maillog
}
load_rc_config $name
run_rc_command "$1"
EOF
chmod a+x etc/rc.d/filltmpfs
cat >etc/fstab <<EOF
# device mount fstype ro/rw
/dev/cd0a / cd9660 ro 0 0
tmpfs /etc tmpfs rw,union 0 0
tmpfs /tmp tmpfs rw 0 0
tmpfs /var tmpfs rw 0 0
kernfs /kern kernfs rw
ptyfs /dev/pts ptyfs rw
procfs /proc procfs rw
EOF
cat >>etc/rc.conf <<'EOF'
critical_filesystems_local="$critical_filesystems_local /tmp"
rc_configured=YES
filltmpfs=YES
mountall=YES
hostname="installer"
postfix=NO
no_swap=YES
wscons=YES
EOF
sed <etc/ttys >etc/ttys.new \
-e '/^console/s/on /off /' \
-e '/^ttyE/s/off /on /'
mv etc/ttys.new etc/ttys
mkdir mnt2 targetroot kern proc
ln -s . release
echo "Link in distribution:"
ln ${top}/CHANGES* ${top}/LAST_MINUTE ${top}/README.files .
(cd ${top}; find ${arch} source shared -type d ) |
while read dir
do
echo " ${dir}"
mkdir -p ${dir}
ln ${top}/${dir}/* ${dir}/ 2>/dev/null
done
cd dev
rm -f console # force the system to make a tmpfs /dev
# ./MAKEDEV all
cd ..
echo "Creating the iso image..."
makefs -t cd9660 \
-o "bootimage=i386;usr/mdec/bootxx_cd9660,no-emul-boot,rockridge,allow-deep-trees,allow-multidot,volumeid=${what}.${arch}" \
${top}/live-and-install.$arch.iso .
cd $top
echo "Testing the image:"
echo dd if=/dev/zero of=disk.img bs=1m count=1536
echo qemu-system-x86_64 -cdrom boot.amd64.iso -drive file=disk.img,index=0,media=disk,format=raw # -netdev user,id=mynet0 -device e1000,netdev=mynet0
-Olaf.
--
___ Olaf 'Rhialto' Seibert -- Wayland: Those who don't understand X
\X/ rhialto/at/falu.nl -- are condemned to reinvent it. Poorly.
Attachment:
signature.asc
Description: PGP signature