Skip to content

rc.conf read only

FreeBSD Notes
  • When you have made an error in the freebsd rc.conf file, reboot and attempt to edit rc.conf, but the system tells you "this is a read only file" , so you cannot edit the very file which allows your system to boot, do this:

    drop into a shell (which would be the default ‘thing’ to do) then type in this order:

    fsck -y
    mount -u /
    mount -a -t ufs
    swapon -a
    

    Do your thing, and reboot.

    Problem solved

    • Print command name running on port osx

      FreeBSD Notes
      1
      0 Votes
      1 Posts
      255 Views
      No one has replied
    • Format USB FreeBSD gpart

      FreeBSD Notes
      1
      0 Votes
      1 Posts
      863 Views
      No one has replied
    • 0 Votes
      2 Posts
      1k Views
      rickR

      If attempting to install FreeBSD on a disk which previously belongs to a ZFS, and you get this error: Before installing, select the option ‘shell’

      Once in the shell, remove geom protections by running:

      sysctl kern.geom.debugflags=0x10

      When your finished, type exit and return to the install / configure screen.

    • 0 Votes
      1 Posts
      820 Views
      No one has replied
    • 0 Votes
      1 Posts
      796 Views
      No one has replied
    • Bhyve Hypervisor Freebsd ZFS

      FreeBSD Notes
      2
      +0
      0 Votes
      2 Posts
      2k Views
      rickR

      Alternatively or in addition to the above to install bhyve:

      pkg install vm-bhyve bhyve-firmware bhyve-rc-3 grub2-bhyve

      Output:

      To ensure binaries built with this toolchain find appropriate versions of the necessary run-time libraries, you may want to link using

      -Wl,-rpath=/usr/local/lib/gcc48

      For ports leveraging USE_GCC, USES=compiler, or USES=fortran this happens transparently.

      ===> NOTICE:

      This port is deprecated; you may wish to reconsider installing it:

      Unsupported by upstream. Use GCC 6 or newer instead… Message from vm-bhyve-1.1.8_1:

      To enable vm-bhyve, please add the following lines to /etc/rc.conf, depending on whether you are using ZFS storage or not. Please note that the directory or dataset specified should already exist.

      vm_enable="YES" vm_dir="zfs:pool/dataset"

      OR

      vm_enable="YES" vm_dir="/directory/path"

      Then run :

      vm init

      If upgrading from 1.0 or earlier, please note that the ‘guest’ configuration option is no longer used.

      Guests that are not using UEFI boot will need either loader=“grub” or loader=“bhyveload” in their configuration in order to make sure the correct loader is used.

      Message from bhyve-rc-3:

      Configuration is done completely though rc.conf. The rc script won’t touch any devices for you (neither disk, nor tap) so you need to make sure all of those have been initialized properly.

      General setup:

      kldload vmm net.link.tap.up_on_open=1

      Make it persistent:

      echo "net.link.tap.up_on_open=1" >> /etc/sysctl.conf cat >> /boot/loader.conf << EOF vmm_load="YES" EOF

      Minimal example:

      cat >> /etc/rc.conf << EOF cloned_interfaces="tap0 bridge0" bhyve_enable="YES" bhyve_diskdev="/dev/zvol/anything/bhyve/virt" EOF ifconfig tap0 create ifconfig bridge0 create service bhyve start tmux list-sessions tmux attach -t bhyve service bhyve status service bhyve stop

      Multi profile configuration example:

      cat >> /etc/rc.conf << EOF cloned_interfaces="tap0 tap1 bridge0" bhyve_enable="YES" bhyve_profiles="virt1 virt2" bhyve_virt1_diskdev="/dev/zvol/anything/bhyve/virt1" bhyve_virt2_tapdev="tap1" bhyve_virt2_diskdev="/dev/zvol/anything/bhyve/virt2" bhyve_virt2_memsize="8192" bhyve_virt2_ncpu="4" EOF ifconfig tap0 create ifconfig tap1 create ifconfig bridge0 create service bhyve start # start all service bhyve start virt2 # start individual tmux attach -t bhyve_virt1 tmux attach -t bhyve_virt1 service bhyve stop virt2 # stop individual service bhyve stop # stop all

      (by default ctrl-b d detaches from tmux).

    • ssh_copy_id Freebsd

      FreeBSD Notes
      2
      0 Votes
      2 Posts
      1k Views
      rickR

      The scp way:

      You could type the path to id_rsa.pub, or cd into the users home directory:

      scp id_rsa.pub user@ipaddress:.ssh/authorized_keys
    • FreeBSD Basic Commands

      FreeBSD Notes
      1
      0 Votes
      1 Posts
      1k Views
      No one has replied

FreeBSD Notes
  • Print command name running on port

    sudo lsof -iTCP -sTCP:LISTEN -n -P | awk 'NR>1 {print $9, $1, $2}' | sed 's/.*://' | while read port process pid; do echo "Port $port: $(ps -p $pid -o command= | sed 's/^-//') (PID: $pid)"; done | sort -n
    read more

  • Locate devices:

    camcontrol devlist

    Output; in this case only:

    <ST3500418AS CC35> at scbus3 target 0 lun 0 (pass0,ada0) <ST500DM002-1BD142 KC45> at scbus5 target 0 lun 0 (pass1,ada1) <AHCI SGPIO Enclosure 1.00 0001> at scbus9 target 0 lun 0 (ses0,pass2) <Generic STORAGE DEVICE 1532> at scbus10 target 0 lun 0 (da0,pass3) <Generic STORAGE DEVICE 1532> at scbus10 target 0 lun 1 (da1,pass4)

    Where ada0 and ada1 are mechanical drives, da0 is a miniSD card in a USB enclosure da1

    Or to print all partitions:

    gpart show

    Output (after formatting USB device):

    => 63 976773105 ada0 MBR (466G) 63 1 - free - (512B) 64 976773096 1 freebsd [active] (466G) 976773160 8 - free - (4.0K) => 0 976773096 ada0s1 BSD (466G) 0 4194304 1 freebsd-zfs (2.0G) 4194304 4194304 2 freebsd-swap (2.0G) 8388608 968384480 4 freebsd-zfs (462G) 976773088 8 - free - (4.0K) => 63 976773105 ada1 MBR (466G) 63 1 - free - (512B) 64 976773096 1 freebsd [active] (466G) 976773160 8 - free - (4.0K) => 0 976773096 ada1s1 BSD (466G) 0 4194304 1 freebsd-zfs (2.0G) 4194304 4194304 2 freebsd-swap (2.0G) 8388608 968384480 4 freebsd-zfs (462G) 976773088 8 - free - (4.0K) => 32 2012128 da0 MBR (983M) 32 2012128 1 fat32 (982M)

    List partitions on dev da0:

    gpart show da0

    Delete existing partitions:

    gpart delete -i da0

    Destroy label:

    gpart destroy da0

    Create new mbr spanning entire disk:

    gpart create -s mbr da0

    Create new fat32 partition spanning entire disk:

    gpart add -t fat32 da0

    Initialize fat32 file system:

    newfs_msdos -F32 /dev/da0s1

    Lets break something!

    Don’t do any of this unless you are prepared to break it all, or better yet, you read the man pages and find out what they actually do, very useful tools however.

    I’m just making notes from other notes, various resources on the net.

    gpart destroy -F da0

    Zero out the drive === !!!Don’t do this jazz regularly on any USB!!! The type of memory has a finite read/write number===

    dd if=/dev/zero of=/dev/da0 bs=2m count=1

    Format the drive

    newfs_msdos -F32 /dev/da0s1
    read more

  • Alternatively or in addition to the above to install bhyve:

    pkg install vm-bhyve bhyve-firmware bhyve-rc-3 grub2-bhyve

    Output:

    To ensure binaries built with this toolchain find appropriate versions of the necessary run-time libraries, you may want to link using

    -Wl,-rpath=/usr/local/lib/gcc48

    For ports leveraging USE_GCC, USES=compiler, or USES=fortran this happens transparently.

    ===> NOTICE:

    This port is deprecated; you may wish to reconsider installing it:

    Unsupported by upstream. Use GCC 6 or newer instead… Message from vm-bhyve-1.1.8_1:

    To enable vm-bhyve, please add the following lines to /etc/rc.conf, depending on whether you are using ZFS storage or not. Please note that the directory or dataset specified should already exist.

    vm_enable="YES" vm_dir="zfs:pool/dataset"

    OR

    vm_enable="YES" vm_dir="/directory/path"

    Then run :

    vm init

    If upgrading from 1.0 or earlier, please note that the ‘guest’ configuration option is no longer used.

    Guests that are not using UEFI boot will need either loader=“grub” or loader=“bhyveload” in their configuration in order to make sure the correct loader is used.

    Message from bhyve-rc-3:

    Configuration is done completely though rc.conf. The rc script won’t touch any devices for you (neither disk, nor tap) so you need to make sure all of those have been initialized properly.

    General setup:

    kldload vmm net.link.tap.up_on_open=1

    Make it persistent:

    echo "net.link.tap.up_on_open=1" >> /etc/sysctl.conf cat >> /boot/loader.conf << EOF vmm_load="YES" EOF

    Minimal example:

    cat >> /etc/rc.conf << EOF cloned_interfaces="tap0 bridge0" bhyve_enable="YES" bhyve_diskdev="/dev/zvol/anything/bhyve/virt" EOF ifconfig tap0 create ifconfig bridge0 create service bhyve start tmux list-sessions tmux attach -t bhyve service bhyve status service bhyve stop

    Multi profile configuration example:

    cat >> /etc/rc.conf << EOF cloned_interfaces="tap0 tap1 bridge0" bhyve_enable="YES" bhyve_profiles="virt1 virt2" bhyve_virt1_diskdev="/dev/zvol/anything/bhyve/virt1" bhyve_virt2_tapdev="tap1" bhyve_virt2_diskdev="/dev/zvol/anything/bhyve/virt2" bhyve_virt2_memsize="8192" bhyve_virt2_ncpu="4" EOF ifconfig tap0 create ifconfig tap1 create ifconfig bridge0 create service bhyve start # start all service bhyve start virt2 # start individual tmux attach -t bhyve_virt1 tmux attach -t bhyve_virt1 service bhyve stop virt2 # stop individual service bhyve stop # stop all

    (by default ctrl-b d detaches from tmux).

    read more

  • If attempting to install FreeBSD on a disk which previously belongs to a ZFS, and you get this error: Before installing, select the option ‘shell’

    Once in the shell, remove geom protections by running:

    sysctl kern.geom.debugflags=0x10

    When your finished, type exit and return to the install / configure screen.

    read more

  • Which means geom is protecting the disk.

    Running the following clears the protection:

    sysctl kern.geom.debugflags=0x10

    Output:

    kern.geom.debugflags: 0 -> 16

    Clearing MBR and partitions:

    dd if=/dev/zero of=/dev/ada0 bs=512 count=1 conv=notrunc
    read more