• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

[howto] nanobsd custom compact flash image size

Scheduled Pinned Locked Moved Problems Installing or Upgrading pfSense Software
7 Posts 4 Posters 4.3k Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L
    lsense
    last edited by Jan 12, 2013, 10:59 AM

    Here is how I managed to install pfSense using a larger Compact Flash card. You can use any size CF and use its all sectors.
    I'm quite new to pfSense and freeBSD so this might not be the best procedure but it worked for me and I wanted to share it.

    PfSense version: nanobsd vga 2.0.2
    Target Box:  alix 3d3
    support pc: freebsd 9.1

    Get CF sector size:

    freebsd# dmesg | grep -e '^da0:' | grep sectors
    da0: 7647MB (15662304 512 byte sectors: 255H 63S/T 974C)

    Calc slices size (see footer example script)

    start         size         slice
    63 7779681 da0s1
    7779744 63
    7779807 7779681 da0s2
    15559488 102816 da0s3

    make mount dirs

    freebsd# mkdir /mnt/nanobsd
    freebsd# mkdir /mnt/nanobsd-conf
    freebsd# mkdir /mnt/cf-s1a
    freebsd# mkdir /mnt/cf-s3

    Get and mount pfSense image (here the source is a 512M image)

    freebsd# wget http://files.nl.pfsense.org/mirror/downloads/pfSense-2.0.2-RELEASE-512mb-i386-nanobsd[_vga].img.gz
    freebsd# gunzip pfSense-2.0.2-RELEASE-512mb-i386-nanobsd.img.gz
    freebsd# mdconfig -a -t vnode -f pfSense-2.0.2-RELEASE-512mb-i386-nanobsd[_vga].img -u 1
    freebsd# mount /dev/md1s1a /mnt/nanobsd
    freebsd# mount /dev/md1s3 /mnt/nanobsd-conf

    Create CF slices

    freebsd# gpart add -b 63 -s 7779681  -t freebsd da0
    da0s1 added
    freebsd# gpart add -b 7779807 -s 7779681  -t freebsd da0
    da0s2 added
    freebsd# gpart add -b 15559488 -s 102816 -t freebsd da0
    da0s3 added
    freebsd# gpart set -a active -i 1 da0
    active set on da0s1

    freebsd# bsdlabel -w -B -b /mnt/nanobsd/boot/boot /dev/da0s1
    freebsd# bsdlabel -w -B -b /mnt/nanobsd/boot/boot /dev/da0s2

    freebsd# newfs -E -L pfsense0 /dev/da0s1a
    freebsd# newfs -E -L pfsense1 /dev/da0s2a
    freebsd# newfs -E -L cf /dev/da0s3

    Copy data from image to CF

    freebsd# mount /dev/da0s1a /mnt/cf-s1a
    freebsd# mount /dev/da0s3 /mnt/cf-s3
    freebsd# cp -a /mnt/nanobsd/* /mnt/cf-s1a/
    freebsd# cp -a /mnt/nanobsd-conf/* /mnt/cf-s3/

    note: put what you want in /mnt/cf-s1a/etc/nanosize.txt (now it's 512mb image source -> 8gb)

    freebsd# boot0cfg -B -b /mnt/cf-s1a/boot/boot0[sio] -m3 -s1 da0
    note: "sio" for serial console output

    Umount and clean

    freebsd# umount /mnt/cf-s* /mnt/nanobsd*
    freebsd# rm -rf /mnt/cf-s* /mnt/nanobsd*
    freebsd# mdconfig -d -u 1

    Remove the CF and put it in your box.

    – To calculate slices size using all CF available sectors --

    
    #!/bin/csh
    
    set geom="da0"
    set start=63
    set confSize="102816"
    
    if ($#argv == 1) then
    	set geom=$1
    endif
    
    set sectors=`diskinfo $geom | awk '{print $4}'`
    
    if ($sectors <= 0 ) then
    	exit 1
    endif
    
    set sliceSize=`expr \( $sectors - $confSize - 126 \) / 2`
    set slice2=`expr $sliceSize + 126`
    set slice3=`expr $slice2 + $sliceSize`
    
    echo "start - size - slice"
    printf "$start - $sliceSize - $geom\s1a\n"
    printf "$slice2 - $sliceSize - $geom\s2a\n"
    printf "$slice3 - $confSize - $geom\s3\n"
    
    
    1 Reply Last reply Reply Quote 0
    • J
      jimp Rebel Alliance Developer Netgate
      last edited by Jan 12, 2013, 4:38 PM

      Looks ok though you probably want to use something more like cpio, rsync, or dump/restore to duplicate because a cp alone may miss (or mishandle) some special files or file settings.

      Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

      Need help fast? Netgate Global Support!

      Do not Chat/PM for help!

      1 Reply Last reply Reply Quote 0
      • L
        lsense
        last edited by Jan 14, 2013, 10:54 AM

        ok, thanks!
        I tried to duplicate with tar and it worked fine as well. Is this a more proper way?

        
        cd /mnt/nanobsd
        tar cf - * | ( cd /mnt/cf-s1a ; tar xf - )
        
        
        1 Reply Last reply Reply Quote 0
        • J
          jimp Rebel Alliance Developer Netgate
          last edited by Jan 14, 2013, 12:32 PM

          tar may work ok so long as it's set to perserve permissions (-p)

          Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

          Need help fast? Netgate Global Support!

          Do not Chat/PM for help!

          1 Reply Last reply Reply Quote 0
          • E
            Efonnes
            last edited by Jan 24, 2013, 2:26 AM

            If you set up your slices properly, upgrades should still work; however, you will need to create appropriately sized upgrade images or when you upgrade the file system will not fill the whole slice (which is typical when using an upgrade image smaller than intended for your base image size).

            1 Reply Last reply Reply Quote 0
            • M
              matguy
              last edited by Jan 24, 2013, 6:35 PM

              It's been asked other places, but I never really saw an answer.  What's the benefit of having more available space on a Compact Flash card?  As long as your packages fit, it's not like you should be using the space for any dynamic data (since you'd wear out the flash cells.)

              1 Reply Last reply Reply Quote 0
              • J
                jimp Rebel Alliance Developer Netgate
                last edited by Jan 24, 2013, 6:50 PM

                There really isn't any benefit, aside from fitting more user/package data.

                If your card does wear leveling it's actually better to use a small image size and leave more cells free to disappear as they wear out.

                Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                Need help fast? Netgate Global Support!

                Do not Chat/PM for help!

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post
                Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.
                  [[user:consent.lead]]
                  [[user:consent.not_received]]