NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

NetBSD 8.0_RC1 (May 22 build) install on GPT/UEFI system



Saw the traffic about doing an install on a GPT/UEFI system that referenced the setup I’d used and posted about a year ago.  It worked back then.

So I dug out my old script, updated it to do an install of NetBSD 8.0_RC1 on a system with GPT disk layout and UEFI booting.  The script put everything on the newly formatted disk and it all looked correct, so I tried booting and I’m getting:

efi: systbl at pa cad2ef18
uvm_fault …
fatal page fault in supervisor mode …

What’s interesting is when the banner came up it showed total memory of 527 MB with 487 MB available.  This system actually has 8 Gig of RAM.

So, has anyone tried doing an install of the May 22nd build on a system with GPT disk layout and UEFI booting?  Was it successful?

And, does anyone have a clue what could be happening here?  Is it possible my system has a totally screwed up setup for UEFI?

Thanks,
-bob

Oh, If anyone would be interested, here’s the script I used:

#!/bin/csh
#
# Set install parameters
#
set ver = 8.0
set net = wm0
set dsk = wd0
#
# NOTE: You MUST use the uefi-install image for this to work properly.
#  But, when you boot this image after placing it on a USB stick it
#  will create two wedges for what's on the USB.  Therefore the wedge
#  references in this script are "off by 2" to account for this.  If
#  you attempt this with the non-uefi-install image it will fail for
#  two reasons.  First the wedge numbering won't be correct and second
#  the kernel file loaded into your new disk won't boot properly since
#  it knows nothing about how to obtain information from the EFI, it
#  assumes a BIOS instead.
#
# Installs NetBSD onto $dsk as a UEFI bootable disk
#	Download the USB install image - NetBSD-$ver-amd64-uefi-install.img.gz
#	Unpack the instlal image
#		gunzip NetBSD-$ver-amd64-uefi-install.img.gz
#	Place the image on a USB stick
#		dd if=NetBSD-$ver-amd64-uefi-install.img of=/dev/rsd0d bs=32k
#	Mount the USB
#		mount /dev/dk1 /mnt
#	Copy this script to the USB filesystem
#		cp <this script> /mnt/uefi_install
#		chmod +x /mnt/uefi_install
#	Boot up the target system from the USB stick
#	Exit the sysinst to get a command line prompt
#	Invoke this script to install onto the $dsk disk
#		./uefi_install
#
# Create the GPT segments
#
echo "Creating GPT segments on $dsk disk"
gpt destroy $dsk
dd if=/dev/zero of=/dev/r${dsk}d count=1000
gpt create -f $dsk
gpt add -s 131072 -t efi -l "EFI System" $dsk
gpt add -s 524288 -t ffs -l "NetBSD-root" $dsk
gpt add -s 524288 -t swap -l "NetBSD-swap" $dsk
gpt add -s 32768000 -t ffs -l "NetBSD-var" $dsk
gpt add -s 32768000 -t ffs -l "NetBSD-usr" $dsk
gpt add -s 32768000 -t ffs -l "NetBSD-home" $dsk
gpt add -t windows -l “unallocated" $dsk
gpt show -l $dsk
#
# Initialize the NetBSD wedges
#
echo "Initializing new disk wedges"
newfs_msdos /dev/rdk2
newfs /dev/rdk3
newfs /dev/rdk5
newfs /dev/rdk6
newfs /dev/rdk7
#
# Mount the new filesystems
#
echo "Mounting new target disk wedges"
mount /dev/dk3 /targetroot
cd /target root
mkdir var usr home cdrom kern mnt proc
mount /dev/dk5 /targetroot/var
mount /dev/dk6 /targetroot/usr
mount /dev/dk7 /targetroot/home
#
# Load NetBSD
#
echo "Loading kernel(s) to new disk"
cd /targetroot
cp /amd64/binary/kernel/netbsd-GENERIC.gz .
cp /amd64/binary/kernel/netbsd-XEN3_DOM0.gz .
gunzip netbsd-GENERIC.gz
mv netbsd-GENERIC netbsd
echo "Loading base"
tar -xzpf /amd64/binary/sets/base.tgz
echo "Loading comp"
tar -xzpf /amd64/binary/sets/comp.tgz
echo "Loading etc"
tar -xzpf /amd64/binary/sets/etc.tgz
echo "Loading games"
tar -xzpf /amd64/binary/sets/games.tgz
echo "Loading man"
tar -xzpf /amd64/binary/sets/man.tgz
echo "Loading misc"
tar -xzpf /amd64/binary/sets/misc.tgz
echo "Loading modules"
tar -xzpf /amd64/binary/sets/modules.tgz
echo "Loading text"
tar -xzpf /amd64/binary/sets/text.tgz
echo "Loading xbase"
tar -xzpf /amd64/binary/sets/xbase.tgz
echo "Loading xcomp"
tar -xzpf /amd64/binary/sets/xcomp.tgz
echo "Loading xetc"
tar -xzpf /amd64/binary/sets/xetc.tgz
echo "Loading xfont"
tar -xzpf /amd64/binary/sets/xfont.tgz
echo "Loading xserver"
tar -xzpf /amd64/binary/sets/xserver.tgz
#
# Make devices
#
echo "Making devices in new system"
cd /targetroot/dev
sh ./MAKEDEV all
#
# Create the target system's fstab
#
echo "Creating fstab for new system"
cd /targetroot/etc
cat >fstab <<END
# NetBSD /targetroot/etc/fstab
# See /usr/share/examples/fstab/ for more examples.
NAME=NetBSD-root  /       ffs     rw               1 1
NAME=NetBSD-swap  none    swap    sw,dp            0 0
NAME=NetBSD-usr   /usr    ffs     rw               1 2
NAME=NetBSD-var   /var    ffs     rw               1 2
NAME=NetBSD-home  /home   ffs     rw               1 2
kernfs            /kern   kernfs  rw
ptyfs             /dev/pts        ptyfs   rw
procfs            /proc   procfs  rw
/dev/cd0a         /cdrom  cd9660  ro,noauto
tmpfs             /var/shm        tmpfs   rw,-m1777,-sram%25
END
#
# Adjust /etc/rc.conf to come up in multi-user mode with a network
#
echo "Adjusting rc.conf so system comes up multiuser"
sed 's/rc_configured=NO/rc_configured=YES/' <rc.conf >x
mv x rc.conf
echo "random_file=/etc/entropy-file" >>rc.conf
echo “hostname=bandit” >>rc.conf
echo "dpcpcd=YES" >>rc.conf
echo “dhcpcd_flags=\”-qM $net\” ” >>rc.conf
echo "sshd=YES" >>rc.conf
echo "xdm=YES" >>rc.conf
echo "wscons=YES" >>rc.conf
#
# Set timezone for system
#
echo "Setting timezone to Central"
cd /targetroot/etc
rm localtime
ln -s ../usr/share/zoneinfo/America/Chicago localtime
#
# Install the loaders
#
echo "Installing EFI loaders"
mount_msdos -l /dev/dk2 /mnt2
mkdir -p /mnt2/EFI/boot
cp /targetroot/usr/mdec/*.efi /mnt2/EFI/boot/
#
# Install pkgin and update packages database
#
#echo “Installing pkgin”
#dhcpc -n $net
#pkg_add http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/${ver}/All/pkgin
#/targetroot/usr/bin/pkgin -y update
#
# Unmount the target filesystems
#
echo “Unmounting target filesystems”
cd /
umount /targetroot/home
umount /targetroot/usr
umount /targetroot/var
umount /targetroot
#
# System should be bootable at this point.
#
echo "Complete.  System should be bootable at this point."



Home | Main Index | Thread Index | Old Index