Dfly Multiboot Installation Notes: Feedback

Siju George sgeorge.ml at gmail.com
Tue Apr 28 09:40:42 PDT 2020


I was wanting to find out something like this. I think directions to add a
small vfat/msdos/fat32 partition to share files between these OSes in the
documentation would be great :-)

Thank you.

--Siju

On Tue, Apr 21, 2020 at 4:10 PM Martin Ivanov <martin.ivanov at greenpocket.de>
wrote:

> Hello,
>
> I promised to prepare a page on multiboot installation of DragonFly. My
> notes are at the end of this message. Approximately 95% of the suggested
> procedure have been tested. I would be happy to get your feedback and
> critics. I would like to know whether you think the notes are worthy of
> getting space in the documentation and if yes, where, in which part of
> the documentation.
>
> Thank you very much in advance!
>
>
> DragonFlyBSD Multiboot Installation Notes
>
> Note that there are non-existent as well as empty directories on the
> installation medium. These are:
> Non-existent:
> /usr/distfiles
> /usr/dports
> /usr/src
> Empty:
>   /usr/obj
>   /var/cache
>   /tmp
>
> Installation steps:
> Do:
>
> nvmectl info
> camcontrol devlist
>
> to see which devices you have. We assume we have nvme0. Then:
>
> dd if=/dev/zero of=/dev/nvme0 count=1024 bs=1m
>
> Partition the hard drive:
>
> gpt destroy nvme0
> gpt create -f nvme0
> gpt -v show nvme0
>
> Add a slice with index 0.
> -s specifies the slice size in sectors. A sector has 512 bytes. For an
> EFI Partition of half a GiB oder 512 MiB: (512 * 1024 ** 2) / 512= 1048576
> -t specifies slice type: efi, swap, ufs, hfs, linux, dfly, hammer2.
>
> gpt add -i 0 -s 1048576 -t efi nvme0
>
> Add labels: labels must be UTF-8
>
> gpt label -i 0 -l "EFI System" nvme0
>
> gpt -v show nvme0
>
> Add a 200GiB DragonFly partition
>
> gpt add -i 1 -s 419430400 -t dfly nvme0
>
> gpt -v show nvme0
> gpt label -i 1 -l "DragonFly BSD" nvme0
> disklabel64 -r -w nvme0s1 auto
> disklabel64 -e nvme0s1
> # a: 1G * 4.2BSD
> # b: 16G * swap
> # d: * * HAMMER2
> gpt add -i 2 -s  419430400 -t "Unused" nvme0
>
> Add a 200 GiB OpenBSD slice
>
> gpt label -i 2 -l "OpenBSD" nvme0
> gpt -v show nvme0
> gpt add -i 3 -t linux nvme0
>
> Use the remaining free space for Slackware
>
> gpt label -i 3 -l "Slackware Linux" nvme0
> gpt -v show nvme0
>
> Make filesystems and mount them:
>
> newfs_msdos nvme0s0
> newfs nvme0s1a
> newfs_hammer2 -L ROOT /dev/nvme0s1d
> mount_hammer2 nvme0s1d /mnt
> mkdir /mnt/boot
> mount nvme0s1a /mnt/boot
>
> Special care for the EFI System partition (ESP):
>
> mkdir /efimnt
> mount_msdos /dev/nvme0s0 /efimnt
>
> Take care of the ESP:
>
> mkdir -p /efimnt/EFI/BOOT
>
> Install rEFInd:
>
> cd /efimnt/EFI/BOOT
> mount_? /dev/da?s? /usb
> cp -r /usb/*/refind-bin-0.12.0/refind/* .
>
> Remove the unnecessary drivers, efi executables and tools. E.g, for an
> amd64 machine you have to remove the *aa64* and *ia32* files and
> directories.
>
> mv refind_x64.efi bootx64.efi
> cp /boot/boot1.efi bootx64-dragonflybsd.efi
> mv refind.conf-sample refind.conf
> vi refind.conf
> menuentry "DragonFly BSD" {
>    loader /EFI/BOOT/bootx64-dragonflybsd.efi
>    icon /EFI/BOOT/icons/os_dragonflybsd.png
> }
> menuentry OpenBSD: analogical
> menuentry Slackware: analogical
>
> cd
>
> Create the H2 PFSs:
>
> hammer2 -s /mnt pfs-create usr
> hammer2 -s /mnt pfs-create usr.dports
> hammer2 -s /mnt pfs-create usr.local
> hammer2 -s /mnt pfs-create usr.src
> hammer2 -s /mnt pfs-create var
> hammer2 -s /mnt pfs-create home
> hammer2 -s /mnt pfs-create build
>
> Create the mount points for the PFSs:
>
> mkdir /mnt/usr
> mkdir /mnt/usr/dports
> mkdir /mnt/usr/local
> mkdir /mnt/usr/src
> mkdir /mnt/var
> mkdir /mnt/home
> mkdir /mnt/build
>
> Null-mount the non-empty PFSs:
>
> mount_null nvme0s1d at usr /mnt/usr
> mount_null nvme0s1d at usr.local /mnt/usr/local
> mount_null nvme0s1d at var /mnt/var
> mount_null nvme0s1d at build /mnt/build
>
> Create the file systems under /build: these are the file systems that do
> not need backup; /build is something like scratch space in DragonFly:
>
> mkdir /mnt/build/usr.distfiles
> mkdir /mnt/build/usr.obj
> mkdir /mnt/build/var.cache
> mkdir /mnt/build/var.crash
> mkdir /mnt/build/var.log
> mkdir /mnt/build/var.spool
>
> Create the mount points for the non-existent /build null mounts:
>
> mkdir /mnt/usr/distfiles
> Mount the /build null mounts:
> mount_null /mnt/build/usr.distfiles /mnt/usr/distfiles
> mount_null /mnt/build/usr.obj /mnt/usr/obj
> mount_null /mnt/build/var.cache /mnt/var/cache
> mount_null /mnt/build/var.crash /mnt/var/crash
> mount_null /mnt/build/var.log /mnt/var/log
> mount_null /mnt/build/var.spool /mnt/var/spool
>
> Mount the TMPFSs:
>
> mount_tmpfs tmpfs /mnt/tmp
> mount_tmpfs tmpfs /mnt/var/tmp
> mount_tmpfs tmpfs /mnt/var/run
>
> Install DragonFly by copying the non-empty file systems. Luckily, cpdup
> won't cross mount boundaries on the source or destination, so it takes a
> few commands:
>
> cpdup / /mnt
> cpdup /boot /mnt/boot
> cpdup /usr /mnt/usr
> cpdup /usr/local /mnt/usr/local
> cpdup  /var /mnt/var
>
> Copy the non-empty /build null mounts:
>
> cpdup /var/crash /mnt/var/crash
> cpdup /var/log /mnt/var/log
> cpdup /var/spool /mnt/var/spool
>
> Copy the non-empty TMPFSs:
>
> cpdup /var/tmp /mnt/var/tmp
> cpdup /var/run /mnt/var/run
>
> Use the correct /etc:
>
> mv /mnt/etc /mnt/etc.live
> mv /mnt/etc.hdd /mnt/etc
>
> There is no fstab in /etc.hdd. The one from  /etc.live has to be copied
>
> cp /mnt/etc.live/fstab.example /mnt/etc/fstab
>
> Describe ALL mounts in fstab:
>
> vi /mnt/etc/fstab
> #edit
> /dev/nvme0s1a /boot ufs rw 1 1
> /dev/nvme0s1b none swap sw 0 0
> /dev/nvme0s1d / hammer2 rw 1 1
> /dev/nvme0s1d at usr /usr null rw 0 0
> /dev/nvme0s1d at usr.dports /usr/dports null rw 0 0
> /dev/nvme0s1d at usr.local /usr/local null rw 0 0
> /dev/nvme0s1d at usr.src /usr/src null rw 0 0
> /dev/nvme0s1d at var /var null rw 0 0
> /dev/nvme0s1d at home /home null rw 0 0
> /dev/nvme0s1d at build /build null rw 0 0
> /build/usr.distfiles /usr/distfiles null rw 0 0
> /build/usr.obj /usr null rw 0 0
> /build/var.cache /var/cache null rw 0 0
> /build/var.crash /var/crash null rw 0 0
> /build/var.log /var/log null rw 0 0
> /build/var.spool /var/spool null rw 0 0
> tmpfs /tmp tmpfs rw 0 0
> tmpfs /var/tmp tmpfs rw 0 0
> tmpfs /var/run tmpfs rw 0 0
> proc /proc procfs rw 0 0
>
> #nosuid option for /home ?
>
> vi /mnt/boot/loader.conf
> #add
> vfs.root.mountfrom:"hammer2:nvme0s1d"
> umount /efimnt
> umount /mnt/boot
> umount /mnt/
> halt
> # remove the installation media
> # press any key to reboot
>
>
>
> --
> Dr. Martin A. Ivanov
> GreenPocket GmbH - Kundennähe durch Smart Metering -
> Labor 3.09 | Schanzenstraße 6-20 | 51063 Köln
> Telefon           +49 | 221 | 355095-0
> Fax                   +49 | 221 | 355095-99
> E-Mail              martin.ivanov at greenpocket.de
>
> Webadresse  www.greenpocket.de
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.dragonflybsd.org/pipermail/users/attachments/20200428/0dea8557/attachment-0001.htm>


More information about the Users mailing list